PDA

View Full Version : سوال: چگونه با SendKeys دابل کلیک چپ بفرستیم ؟



scarce
چهارشنبه 09 دی 1388, 17:26 عصر
سلام
من می خوام روی یک Texbox عمل Ctrl +A رو اجرا کنم چون برنامه با وی بی نوشته شده عمل Ctrl+A روی textbox عمل نمی کنه .

تصمیم گرفتم با SendKeys این کار رو انجام بدم که نشد آیا کسی راهی بلده .

ƒxmahdi
چهارشنبه 09 دی 1388, 19:06 عصر
Ok
download Simple

vbhamed
چهارشنبه 09 دی 1388, 22:41 عصر
سلام

نيازي به اون كار نيست


text1.selstart = 0
text1.sellength = len(text1)

xxxxx_xxxxx
پنج شنبه 10 دی 1388, 04:00 صبح
سلام
من می خوام روی یک Texbox عمل Ctrl +A رو اجرا کنم چون برنامه با وی بی نوشته شده عمل Ctrl+A روی textbox عمل نمی کنه .

تصمیم گرفتم با SendKeys این کار رو انجام بدم که نشد آیا کسی راهی بلده .
سلام،
کلاً تکست باکس های عادی فاقد چنین خاصیتی هستند که با کلید ترکیبی Ctrl+A محتوای درونشان به حالت انتخاب شده درآید، ارتباطی به اینکه برنامه با چه زبانی نوشته شده باشه نداره.
عنوان تاپیک یه چیزی میگه، محتواش یه چیز دیگه! جریان چیه؟



Ok
download Simple

دوست عزیز، برنامه شما که به صورت زیر هست یه اشکال کوچیک داره:


If KeyCode = 17 And GetAsyncKeyState(65) Then Text1.SelStart = 0: Text1.SelLength = Len(Text1.Text)
معنی دستور فوق چنین می شود:
اگر کلید A نگه داشته شده است و اکنون کلید Ctrl رها می شود ...
یعنی اگر فرضاً اول کلید Ctrl فشرده بشه و بعد A زده بشه، دستور مقابل شرط انجام نمیشه.
تابع GetAsyncKeyState میگه آیا این کلید الان نگه داشته شده یا نه و باید حتماً زمانی که Ctrl زده میشه کلید A از قبل فشرده شده باشه تا شرط درست عمل کنه.

از طرفی رویداد KeyUp خودش دو پارامتر داره که میشه به راحتی باهاشون این کار انجام داد. به این صورت:


If Shift = 2 And KeyCode = 65 Then Text1.SelStart = 0: Text1.SelLength = Len(Text1.Text)

ƒxmahdi
پنج شنبه 10 دی 1388, 10:07 صبح
نوشته شده توسط xxxxx_xxxxx http://barnamenevis.org/forum/images/buttons/viewpost.gif (http://barnamenevis.org/forum/showthread.php?p=878112#post878112)
معنی دستور فوق چنین می شود:
اگر کلید A نگه داشته شده است و اکنون کلید Ctrl رها می شود ...


صحیح اما عملکرد دیگری هم داره :
اگر دو کلید هم زمان فشرده شوند !

scarce
پنج شنبه 10 دی 1388, 17:47 عصر
دوستان ممنون از پاسختون
ولی منظورم چیز دیگه بود که مشکلشو حل کردم.من می خواستم با برنامه ای که نوشتم بر روی یک برنامه دیگر ( منظور تکس باکس برنامه دیگر ) عمل دابل کلیک را انجام بدم
که با استفاده از کدی زیر میشه این عمل رو انجام داد



PostMessage hWnd, WM_LBUTTONDBLCLK, 1, &H700032
PostMessage hWnd, WM_LBUTTONUP, 0, &H700030