PDA

View Full Version : نحوه شناسایی هاندل تکست باکس پنجره های مختلف



amir-haghighi
یک شنبه 15 اردیبهشت 1387, 12:12 عصر
به نام خدا::

با سلام.نمیدونم سوالم تکرار یه یا نه ؟

جستجو کردم اما به جوابم نرسیدم.امیدوارم که تکراری نباشه.

میخوام بدونم که چطور باید پنجره هایی که فورگراند میشن رو شناسایی کرد؟

مثلا چطور میشه فهمید که چه زمانی ویندوز مسنجر فعال شده و یا چه زمانی ورد و ....

و اینکه چطور باید هاندل تکست باکسهاشون رو گرفت به همراه مقادیر؟

و آیا میشه مقادیری رو خودمون وارد این هاندلها بکنیم؟

razavi_university
سه شنبه 17 اردیبهشت 1387, 00:21 صبح
در مورد WinPrograming و اسمبلي تحت ويندوز جستجو كن
قبلا ديدم با اسمبلي تحت ويندوز اين كار شدني بود. روش‌هاي ديگه‌اي هم كه وجود داره رو نمي‌دونم
جزوه آموزش اسمبلي تحت ويندوز از جناب وحيد نصيري در همين سايت هست

amir-haghighi
پنج شنبه 26 اردیبهشت 1387, 14:30 عصر
به نام او::
من که گشتم چیزی نصیبم نشد.
اگه میشه دوستان کمک کنن.
مقاله زبان اصلی هم در موردش گیر آوردید من خودم ترجمش میکنم !!!

mdssoft
پنج شنبه 26 اردیبهشت 1387, 17:03 عصر
در مورد WinPrograming و اسمبلي تحت ويندوز جستجو كن
قبلا ديدم با اسمبلي تحت ويندوز اين كار شدني بود. روش‌هاي ديگه‌اي هم كه وجود داره رو نمي‌دونم
جزوه آموزش اسمبلي تحت ويندوز از جناب وحيد نصيري در همين سايت هست

خوب لینکش رو می دادی

razavi_university
جمعه 27 اردیبهشت 1387, 03:39 صبح
خوب لینکش رو می دادی
با جستجوي ساده پيدا مي‌شد ! ! !

آشنایی با برنامه نویسی اسمبلی ویندوز (http://barnamenevis.org/forum/showthread.php?t=20091) از جناب استاد وحيد نصيري

sinpin
جمعه 27 اردیبهشت 1387, 14:19 عصر
میخوام بدونم که چطور باید پنجره هایی که فورگراند میشن رو شناسایی کرد؟
مثلا چطور میشه فهمید که چه زمانی ویندوز مسنجر فعال شده و یا چه زمانی ورد و ....



[ DllImport("user32.dll") ]
static extern int GetForegroundWindow();
[ DllImport("user32.dll") ]
static extern int GetWindowText(int hWnd, StringBuilder text, int count);

private void GetActiveWindow()
{

const int nChars = 256;
int handle = 0;
StringBuilder Buff = new StringBuilder(nChars);

handle = GetForegroundWindow();

if ( GetWindowText(handle, Buff, nChars) > 0 )
{
this.captionWindowLabel.Text = Buff.ToString();
this.IDWindowLabel.Text = handle.ToString();
}

}
private void timer1_Tick(object sender, System.EventArgs e)
{
GetActiveWindow();
}http://www.csharphelp.com/archives2/archive301.html

amir-haghighi
یک شنبه 29 اردیبهشت 1387, 13:08 عصر
به نام او::
من این یه تیکه رو خوب متوجه نشدم.


[ DllImport("user32.dll") ]
static extern int GetForegroundWindow();
[ DllImport("user32.dll") ]
static extern int GetWindowText(int hWnd, StringBuilder text, int count);


خوب راستش من نمیدونم مفهوم این قسمت چیه؟

اصلا این یعنی چی؟


[ DllImport("user32.dll") ]


آیا این dll باید به برنامه اظافه بشه؟

و اگه باید اظافه بشه چرا تو قسمت choos item در تب brows من هیچ dll با این نام ندیدم؟

ASKaffash
یک شنبه 29 اردیبهشت 1387, 13:17 عصر
با سلام
دوست عزیز این دستور روش استفاده از API Function در #C است وارتباطی با بخش Refrence ندارد

amir-haghighi
یک شنبه 29 اردیبهشت 1387, 13:23 عصر
به یاد او::
خوب یعنی چی؟
یعنی نباید داخل پروژه کدهایی رو که در داخل [] هستند رو وارد کنم؟

و فقط باید این کدها رو به برنامه اظافه کنم؟



static extern int GetForegroundWindow();
static extern int GetWindowText(int hWnd, StringBuilder text, int count);

razavi_university
دوشنبه 30 اردیبهشت 1387, 02:04 صبح
كدهايي كه جناب Sinpin گذاشتن رو كامل كپي كنين
براي اطلاعات بيشتر در مورد نحوه‌ كار با API هاي ويندوز به اينجا (http://barnamenevis.org/forum/showpost.php?p=493683&postcount=14)مراجعه كنيد
موفق باشيد

amir-haghighi
شنبه 04 خرداد 1387, 20:35 عصر
به نام او::

من جوابمو نگرفتم.میشه این رو توضیح بدید.


دوست عزیز این دستور روش استفاده از API Function در #C است وارتباطی با بخش Refrence ندارد

amir-haghighi
سه شنبه 07 خرداد 1387, 16:42 عصر
به نام خدا::

آقا من اگه بخوام هاندل تکست باکس برنامه ای مثل یاهو مسنجر رو بگیرم باید دقیقا چه کاری رو انجام بدم؟

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



باید کلاس یاهو و تکست باکس رو پیدا کنی که توی Visual Studio ابزاری به نام Spy ++ برای این کار هست بعد با کمک api های FindWindow و FindWindowEx میتونی این کارو بکنی ...


در حالی که در روشی که مدریت مطرح کردند اصلا این روش به کار نرفته!

دوستانی که در این زمینه اطلاعات دارن لطفا یه کم توضیح بدن که داستان از چه قراره؟

sinpin
سه شنبه 07 خرداد 1387, 18:55 عصر
شما ميتونيد در ليست پنجره هاي فعال نگاه كرده و هندل هركدوم كه عنوان اون "Yahoo messenger..." بود رو بدست آورده و ساير كارها رو روي اون انجام بديد.

مهران موسوی
چهارشنبه 08 خرداد 1387, 14:28 عصر
نحوه ي استفاده از توابع API رو كه دوستان بيان كردن ... خوب شما ميتوني با مراجع به MSDN و جست جوي توابع مرتب با موضوع درخواستي اطلاعات ارزشمندي رو بدست بياريد ...

مثلا كاربردي ترين تابع براي شما


HWND FindWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName
);

خواهد بود كه خودم در ضمينه هاي مختلفي ازش استفاده ميكنم ...

amir-haghighi
پنج شنبه 09 خرداد 1387, 10:26 صبح
به نام او::

خوب این قسمتش رو یه کم توضیح بیشتر plz

خوب من با این قسمتش کمی مشکل دارم::


HWND FindWindow(
LPCTSTR lpClassName,
LPCTSTR lpWindowName
);

amir-haghighi
پنج شنبه 09 خرداد 1387, 15:59 عصر
به نام او::


شما ميتونيد در ليست پنجره هاي فعال نگاه كرده و هندل هركدوم كه عنوان اون "Yahoo messenger..." بود رو بدست آورده و ساير كارها رو روي اون انجام بديد.


خوب من این کار رو هم کردم .منظورتون از سایر کارها به چه کارهایی است؟

آیا هر تکست باکس برای خودش هاندل متفاوتی دارد؟