gune_baxan
پنج شنبه 22 مرداد 1388, 15:13 عصر
سلام،
بنده برنامه ای نوشتم که میخوام در این برنامه با انتخاب متن توسط کاربر در محیط ویندوز و زدن کلید ترکیبی اون متن انتخاب شده کپی بشه و در داخل برنامه پیست بشه.
برای این کار این کد رو نوشتم:
Private Sub ProcessMessages()
Dim Message As msg
Do While Not Isnot
WaitMessage
If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
Clipboard.Clear
SendKeys "^c"
WindowState = vbrestore
txtSearch.SetFocus
txtSearch.Text = ""
cpy = Clipboard.GetText
txtSearch.Text = Trim(cpy)
End If
DoEvents
Loop
End Sub
Private Sub Form_Load()
Dim Retval As Long
Isnot = False
Retval = RegisterHotKey(Me.hWnd, &HBFFF&, MOD_ALT, vbKeyD)
Me.AutoRedraw = True
Show
ProcessMessages
End Sub
این کد در xp جواب میده ولی مشکل اینجاست در محیط ویستا نمیشه از sendkeys استفاده کرد.
سعی کردم با استفاده از keybd_event کار ctrl+c شبیه سازی کنم ولی در این تابع جواب نداد.
برای حل این مشکل چه پیشنهادی دارید؟
ممنون.
بنده برنامه ای نوشتم که میخوام در این برنامه با انتخاب متن توسط کاربر در محیط ویندوز و زدن کلید ترکیبی اون متن انتخاب شده کپی بشه و در داخل برنامه پیست بشه.
برای این کار این کد رو نوشتم:
Private Sub ProcessMessages()
Dim Message As msg
Do While Not Isnot
WaitMessage
If PeekMessage(Message, Me.hWnd, WM_HOTKEY, WM_HOTKEY, PM_REMOVE) Then
Clipboard.Clear
SendKeys "^c"
WindowState = vbrestore
txtSearch.SetFocus
txtSearch.Text = ""
cpy = Clipboard.GetText
txtSearch.Text = Trim(cpy)
End If
DoEvents
Loop
End Sub
Private Sub Form_Load()
Dim Retval As Long
Isnot = False
Retval = RegisterHotKey(Me.hWnd, &HBFFF&, MOD_ALT, vbKeyD)
Me.AutoRedraw = True
Show
ProcessMessages
End Sub
این کد در xp جواب میده ولی مشکل اینجاست در محیط ویستا نمیشه از sendkeys استفاده کرد.
سعی کردم با استفاده از keybd_event کار ctrl+c شبیه سازی کنم ولی در این تابع جواب نداد.
برای حل این مشکل چه پیشنهادی دارید؟
ممنون.