PDA

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



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 شبیه سازی کنم ولی در این تابع جواب نداد.

برای حل این مشکل چه پیشنهادی دارید؟

ممنون.

butterfly8528
پنج شنبه 22 مرداد 1388, 15:37 عصر
سلام به جای Sendkeys از تابع SendMessage استفاده کن .