ايران ويج

نسخه‌ی کامل: پیغام اینتر تو تابع SendMessage چی میشه؟
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
میخواهم برای یک تکس باکس یک برنامه exe یک متن و یک پیغام اینتر بفرستم من فقط اون پیغام اینتر رو میخواهم
ممنون
با دستور SendKeys دکمه اینترو نمیدونم اما فقط کافیه تو گول sendkes vb6 را جستجو کنی.با دستور senkeys میشه یه دکمه را فشار داد من تو برنامم واسه دکمه end رو کیبرد زیاد استفاده میکردم.
برای باتون ها میدونم پیغامش میشه BM_CLICK اما من برای تکس باکسها میخواهم اون چیزی که شما هم گفتین این میشه
SendKeys "~" که مد نظر من نیست
کد:
"Salam" & Chr(10)
کد:
Call SendMessage(hWnd, WM_SETTEXT, 0&, ByVal Text1.Text & Chr(10))
اگه منظورتون اینه برنامه خطا میده و میگه dll رو درست صدا نزدین اگه اشتباه نکنم chr با ارگومتن 10 برای کلید اینتر باشه که تو خود vb استفاده میشه ایا این کد خارج از محیطvb هم جواب میده ؟
کد:
Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Const WM_SETTEXT = &HC

Private Sub Command1_Click()
'hwnd = FindhWnd
Call SendMessageByString(hwnd, WM_SETTEXT, 0, Text1.Text & Chr(10))
End Sub
سلام
نتیجه با دستور شما این شد عکس سمت چپ یک حرف ح فقط بهش اضافه شد ولی کلید اینتر زده نشد علتش به نظر شما چیه؟
ممنون
کد:
RET = SendMessage(hWnd, WM_KEYDOWN, VK_RETURN, 0&)

من این رو پیدا کردم همونی بود که میخواستم چون میتونه مورد استفاده بقیه هم قرار بگیره گذاشتم تا بقیه هم استفاده کنن

هنوز هم دوست دارم ببینم جواب پست 7 چی میشه ممنون
سلام

احتمالا text1 خاصیت multi line نداره !!
(۲۰-خرداد-۱۳۸۸, ۰۷:۴۴:۵۴)red11011 نوشته است: [ -> ]میخواهم برای یک تکس باکس یک برنامه exe یک متن و یک پیغام اینتر بفرستم من فقط اون پیغام اینتر رو میخواهم
ممنون
سلام دوست عزیز
ببین من یه vb نویس نیستم ولی یه وقتایی باش کد مینویسم
تا اونجایی که من خبر دارم هر جا که از keydown استفاده میکنی باید بلافاصله بعدش از key up استفاده کنی چون معمولا عملیاتی که با کلید ها قرار انجام بشه رو تو key press می نویسند.
خوب یه راه ساده تر هم هست شما با استفده از کد زیر متن را به اون جعبه متن ارسال کنید به با انتقال فوکوس به اون پنجره از تابع SENDKEY استفاده کنید.
1.ارسال متن:
کد:
Private Sub Command1_Click()
     Call SendMessageByString(hwnd, WM_SETTEXT, 0, Text1.Text & Chr(13) + Chr(10))
End Sub

با این کد مشکلت حل میشه

اگه دقت کنی می بینی که کاراکتر کد اسکی 10 یعنی LF، کاراکتر کد اسکی 13 هم میشه CR
توی ویبی هم VbCrLf رو می زنی پس 10 + 13 میشه همون اینتر خودمون
آقا این کارها چیه دیگه !
اون کلید اینتر را که میزنی ، میره دکمه دیفالت صفحه را پیدا میکنه و رویداد onclick اش را فراخوانی میکنه !!

خوب شما hwnd اون دکمه را پیدا کن و با sendmessage کلیکش کن دیگه !
صفحه‌ها: 1 2