PDA

View Full Version : خواندن هندل‌های برنامه‌های در حال اجرا



روح اله معینی زاده
شنبه 14 آبان 1384, 15:11 عصر
سلام خدمت دوستان گرامی

چه جوری باید هندل برنامه‌های در حال اجرای ویندوز رو به دست آورد، وقتی که موس روی آن برنامه قرار می گیرد؟

با احترام- خدانگهدار

Hamedm
شنبه 14 آبان 1384, 16:11 عصر
سلام

من این روشو با توابع API بلدم، نمیدونم برای این کار در .NET کلاسی وجود داره یا نه.
اگه با توابع API میخواهی، بگو تا برات موضیح بدم.

در پناه حق موفق باشید و پرتوان

مجتبی کریمی
شنبه 14 آبان 1384, 23:41 عصر
سلام
من این قسمتو دارم
چه جوری باید هندل برنامه‌های در حال اجرای ویندوز رو به دست آورد،
ولی باقیشو شرمنده
اگه خواستی بگو بزارم(دات نت)

روح اله معینی زاده
یک شنبه 15 آبان 1384, 09:00 صبح
سلام دوست گرامی

فعلا چاره‌ای نیست همون رو هم اگه بذارید متشکر می شم.

با احترام- خدانگهدار

محمد میرمصطفی
یک شنبه 15 آبان 1384, 23:02 عصر
مجتبی جان میشه بگی چطوری؟

مجتبی کریمی
دوشنبه 16 آبان 1384, 08:06 صبح
سلام
این برنامه خیلی ناقصه ، هنوز وقت نکردم کاملش کنم
به بزرگی خودتون ببخشید

گرفتن هندل برنامه های در حال اجا (http://www.barnamenevis.org/forum/attachment.php?attachmentid=1327&stc=1)

kablayi
سه شنبه 17 آبان 1384, 01:42 صبح
میشه بگید هندل چیه؟ :متفکر:

white fox
سه شنبه 17 آبان 1384, 01:55 صبح
میشه بگید هندل چیه؟ :متفکر:
دوست عزیز شما برنامه نویسید؟ و اینو نمیدونید؟؟؟
هندل به بیان ساده شماره ای هست که سیستم عامل به هر پنجرهای که در سیستم ایجاد میشه داده میشه...
منظور از پنجره فقط خود پنجره نیست هر چیزی مثل TxtBox .. Label , button یا هرچی که مثل اینا باشه...

کلا برنامه نویسی ویندوز پایش بر سه چیز استواره Windows,Events and Message
که این سه چیزه مهم رو در کتابهای ترجمه فارسی معمولا نمیبینید...در خیلی از کلاسها هم عنوان نمیشه
اما در واقع اگر شما این سه چیز رو نفهمید نمیتونید برنامه نویس قابلی بشید

محمد میرمصطفی
پنج شنبه 19 آبان 1384, 00:33 صبح
دوست عزیز شما برنامه نویسید؟ و اینو نمیدونید؟؟؟

اما در واقع اگر شما این سه چیز رو نفهمید نمیتونید برنامه نویس قابلی بشید
خیلی مغروری داداش. خوب جناب آقای برنامه نویس قابل، بگو ببینم، چرا بعضی از کامپونتا Handle ندارن؟ (مثل اونایی که از TWinControl ارث برده نشدن.)

white fox
پنج شنبه 19 آبان 1384, 03:23 صبح
خیلی مغروری داداش. خوب جناب آقای برنامه نویس قابل، بگو ببینم، چرا بعضی از کامپونتا Handle ندارن؟ (مثل اونایی که از TWinControl ارث برده نشدن.)

مغرور؟؟!! من خودم اینطوری حس نمیکنم....اما خوب قبول دارم یه ذره تند رفتم اما از دست این دوستمون عصبانی نشدم آخه یه سری مباحث مهم هست در زمینه برنامه نویسی کامپیوتر خیلی ها نمیگن تو کتابهای ترجمه شده ما هم کمن یا اصلا نیستش....
به هر حال اگر شما فکر میکنی من مغرورم..تصحیح کنید فکرتونو :D

به عنوان یه برنامه نویس مبتدی نه قابل من همینقدر میدونم که:
هر کامپوننتی که در نهایت دیده میشه و میتونه فوکوس دریافت کونه باید قاعدتا Handle داشته(مثلا کنترل تایمر هندل نداره چون نه UserInterface اون دیده میشه و مهمتر از اون اینکه نه قراره فوکوس دریافت کنه)
حالا در مورد TWinControl گفتید....یه توضیحی بدم

تا اونجایی که بازم من خودم کار کردم TComponent ها به خود VB ربطی ندارند و در دلفی و Delphi.NET کاربرد دارند..
کلاس اصلی یا به قولی کلاس ریشه اینها کلاسی به نام TObject هستش که خود این هم شامل کلاس های مختلفی هستش که یکی از کلاسهاش TPersistent هستش که خود اینم شامل کلاسهای مختلفی هست که یکی از اون کلاسها TComponent هست خود این هم همونطوری که خود عزیزت میدونی یه سری کلاس داره...سرتو درد نیام ....
کلاسی که ما اینجا کارش داریم TControl هست خود اینم دو قسمت میشه یکی TWinControl هست اون یکی TGraphicControl تفاوت اصلی این دو تا هم با هم اینه که TGraphicControl خود Window Handle ندارند برای همین نمیتونند فوکوس رو به عنوان ورودی دریافت کنند.

در کل برای همینه که کامپوننت هایی که از TWinControl به ارث میرسند هندل دارند و اونایی که از این به ارث نمیرسند از TGraphicControl به ارث میرسند که گفتم چرا هندل ندارند.
ساختار کل این کامپوننت هم به صورت عکس دارم اگر خواستی بگو برات بزارم.(گرچه خودت استادی)


حالا اگر من بازم اشتباه گفتم ...خودت توضیح بده که منم یه چیزی یاد گرفته باشم....
با تشکر...

محمد میرمصطفی
جمعه 20 آبان 1384, 18:19 عصر
کامل و گویا بود، ممنون و شرمنده. (کاش همه -از علی‏الخصوص خود من- اخلاق شما رو داشتیم.

روح اله معینی زاده
شنبه 21 آبان 1384, 14:04 عصر
با سلام

آقا بیایید یه جور دیگه این سوال رو مطرح کنم و اون هم این که :

چه طوری می تونم بفهمم نام برنامه‌ای که زیر موس است (و در حال اجرا یا هر حالت دیگه) چیه؟

مثلا وقتی موس رو روی پنجره‌ی اینترنت اکسپلورر حرکت می کرد، مثلا در یک تکست باکس بگه که نامش Internet Explorer هست و اگر مثلا روی ترجمه‌گر Babylon، نام این برنامه رو به ما بده.

من در حقیقت می خوام همچنین استفاده‌ای از برنامه بکنم.

با احترام- خدانگهدار

kablayi
یک شنبه 22 آبان 1384, 23:41 عصر
دوست عزیز شما برنامه نویسید؟ و اینو نمیدونید؟؟؟
هندل به بیان ساده شماره ای هست که سیستم عامل به هر پنجرهای که در سیستم ایجاد میشه داده میشه...
منظور از پنجره فقط خود پنجره نیست هر چیزی مثل TxtBox .. Label , button یا هرچی که مثل اینا باشه...

کلا برنامه نویسی ویندوز پایش بر سه چیز استواره Windows,Events and Message
که این سه چیزه مهم رو در کتابهای ترجمه فارسی معمولا نمیبینید...در خیلی از کلاسها هم عنوان نمیشه
اما در واقع اگر شما این سه چیز رو نفهمید نمیتونید برنامه نویس قابلی بشید

جناب اقای استاد و روباه سفید ..... شرمندم از اینکه عصبانی تون کردم ....

گمونم با سوال من شبیهه این :عصبانی++: شدید .... :قهقهه:

میگم دوستان گمون کنم اقای بیل گیتس به ما افتخار دادن و سری به فوروم برنامه نویس زدن.. :قهقهه:

مجتبی کریمی
یک شنبه 22 آبان 1384, 23:51 عصر
شاید اصلا بدون ای پی ای نشه!!!!
شاید..

MohsenB
چهارشنبه 29 تیر 1390, 19:28 عصر
سلام

درسته خیلی دور این جواب رو میدم . دنبال چیزی میگشتم که اینو دیدم .

شما باید از این چنین کدی استفاده کنید :


var
Hw:HWND;
Pnt:TPoint;
begin
GetCursorPos(Pnt);
hw := WindowFromPoint(Pnt);

Felony
چهارشنبه 29 تیر 1390, 20:04 عصر
سلام

درسته خیلی دور این جواب رو میدم . دنبال چیزی میگشتم که اینو دیدم .

شما باید از این چنین کدی استفاده کنید :


var
Hw:HWND;
Pnt:TPoint;
begin
GetCursorPos(Pnt);
hw := WindowFromPoint(Pnt);
با این کد هندل پنجره ای که زیر Cursor موس هست به دست میاد ، بعدش هم میتونید با تابع GetWindowText عنوان پنجره مربوطه رو به دست بیارید .

روح اله معینی زاده
شنبه 01 مرداد 1390, 11:59 صبح
سلام مجدد خدمت تمامی دوستان
دوستان گرامی، اول تشکر می کنم که در گوشه ذهن​تان به سوال من هم توجه داشتید و هر جور شده، جواب رو پیدا کردید اما
من در VB.NET این را می خوام و کدی که شما نوشته​اید ظاهراً مربوط به دلفی است.
اگه راه حلی برای ترکیب داره بفرمایید چون من که بلد نیستم.
تشکر و خدانگه دار