PDA

View Full Version : ایجاد کنترل در پنجره دیگر



lord_viper
یک شنبه 30 دی 1386, 09:43 صبح
با سلام
ایا میتونیم از برنامه خودمون مثلا داخل اینترنت اکسپلورر یه button ایجاد و ازش استفاده کرد؟
با تشکر

SUNMOON
یک شنبه 30 دی 1386, 10:22 صبح
برای اینترنت اکسپلور که مثال زدید یه کدی هست(که البته امتحانش نکردم اگه جواب داد میزارمش همین جا) که از طریق ریجستری عمل می کنه .

SUNMOON
یک شنبه 30 دی 1386, 11:10 صبح
نمی دونم دقیقاً چی می خواین اما این همون چیزی که گفتم.

lord_viper
یک شنبه 30 دی 1386, 14:57 عصر
ممنون منظورم هر برنامهای بود مثل نوتپد با یاهو که بشه در یک قسمتی ازش یک button یا edit وچیزهای دیگر ایجاد واستفاده کرد

SUNMOON
یک شنبه 30 دی 1386, 18:16 عصر
فکر نکنم هر نرم افزاری این اجازه رو بده(شاید هم من اشتباه می کنم!)

lord_viper
دوشنبه 01 بهمن 1386, 21:27 عصر
با سلام
من با این کد روی پنجره اکسپلورر یه باتن قرار میدم
procedure TForm1.Timer1Timer(Sender: TObject);
var
s,a,d:hwnd;
q:tbutton;
begin
d:=FindWindow('CabinetWClass',nil);
s:=findwindowex(d,0,'tbutton',nil);
if s=0 then
begin
q:=tbutton.Create(self);
q.ParentWindow:=form1.Handle;
q.Caption:='hi';
q.OnClick:=show;
q.Left:=940;
q.Top:=30;
windows.SetParent(q.Handle,d);
end;
end;
چطور میتونم برای این باتن یه رویداد onclick قرار بدم؟
با تشکر

Inprise
دوشنبه 01 بهمن 1386, 21:32 عصر
اگر مشخصا به IE فکر میکنی میتونی براش BHO یا Browser Helper Object بنویسی . یه سری کامپوننت هم برای ساده تر کارن اینکار هست . اگر منظورت اضافه کردن کد به برنامه های دیگه هست به این سادگی نیست و نمیشه جواب کلی ای داد . میتونی با دستکاری ریسورس های بعضی از برنامه ها بهشون چیزهائی مثل کلید یا منو اضافه یا کم کنی ، و این هم به شرایط بستگی داره . اما برای اینکه به خود اون برنامه کدی رو اضافه کنی در حقیقت باید یه قطعه باینری بهش اضافه کنی و مسائل مختلفی رو در نظر بگیری که شرحش از این تاپیک خارج هست . برنامه های نوشته شده با دلفی و برنامه های نوشته شده مثلا با MFC از روش مختلفی برای مدیریت واقعه و تعامل با ریسورس ها استفاده میکنن . نمیتونی یک جواب کلی بگیری که "چطور یه دکمه و رخداد گردان واقعه به هر برنامه ای اضافه کنم "

lord_viper
سه شنبه 02 بهمن 1386, 08:39 صبح
ممنون جناب اینپرایز اونقدر پیچیده نیمخواهم در این حد که برنامم دکمه رو قرار بده و کنترلش کنه که وقتی روی اون دکمه کلیک شد دستورات رو اجرا کنه .
بجز استفاده از hook با توابع دیگه میشه تشخیص داد که روی اون دکمه کلیک شده یا نه؟

Inprise
سه شنبه 02 بهمن 1386, 09:12 صبح
گفتم که جواب کلی نداره . آسون و سختش مطرح نیست ، مسئله اینه که به موارد متعددی وابسته هست که باید مشخص باشن . هوک هم اینجا نقشی ایفا نمیکنه .

lord_viper
پنج شنبه 04 بهمن 1386, 14:40 عصر
ببخشید من برای این buttonدر رویداد onclick یه showmessage نوشتم وقتی button به پرنت جدید منتقل میشه روش کلیک میکنم هیچ عکس عملی نشان نمیده ولی وقتی اینshowmessage رو تو رویداد onmouseup مینویسم وروش کلیک میکنمکد اجرا میشه
وقتی پرنت عوض میشه دیگه نباید message ها به پرنت قبلی ارسال بشه(این جریانش چیه؟)
با تشکر