2012-02-20 1 views
1

У меня есть код;Как вставить текст из буфера обмена?

HWND MShwnd = FindWindowA("MapleStoryClass", NULL); 
     PostMessage(MShwnd, WM_KEYDOWN, 0x09, MapVirtualKeyA(0x09, 0) << 16); 

который работает просто отлично. Перед рукой я скопировал в буфер обмена текст.

Что я хочу знать, так как я могу использовать postmessage и вставлять текст.

Я искал везде и не понимаю.

Спасибо.

ответ

1

Это C# код преобразовать его или сделать переменный ток DLL # с моим кодом: (Вы должны добавить ссылку Microsoft.VisualBasic)

public string GetClipboardText() 
{ 
    Microsoft.VisualBasic.Devices.Computer c = new Microsoft.VisualBasic.Devices.Computer(); 
    return c.Clipboard.GetText(); 
} 

public void SetClipboardText(string stext) 
{ 
    Microsoft.VisualBasic.Devices.Computer c = new Microsoft.VisualBasic.Devices.Computer(); 
    c.Clipboard.SetText(stext); 
} 

Обновление C++ код:

System::String^ GetClipboardText() 
{ 
    Microsoft::VisualBasic::Devices::Computer^ c = gcnew Microsoft::VisualBasic::Devices::Computer(); 
    return c->Clipboard->GetText(); 
} 

void SetClipboardText(System::String^ stext) 
{ 
    Microsoft::VisualBasic::Devices::Computer^ c = gcnew Microsoft::VisualBasic::Devices::Computer(); 
    c->Clipboard->SetText(stext); 
} 

Обновление 2

Я полагаю, что вам нужно натив e code, так что вы не использовали мой код там, где не нужен дескриптор, плюс, если вы достигли HWND MShwnd = FindWindowA("MapleStoryClass", NULL);, так что у вас есть ручка ... В любом случае я предлагаю один из последних способов:

keybd_event(0x11, 0, 0, 0); // press ctrl 
keybd_event(0x56, 0, 0, 0); // press v 
keybd_event(0x56, 0, 2, 0); // release v 
keybd_event(0x11, 0, 2, 0); // release ctrl 
+0

Я попробую, когда вернусь домой, и если это сработает, вы получите ответ правильно. – Andrew

+0

Мне нужно это, чтобы выполнить функцию ctrl + v, используя postmessage. – Andrew

+0

Я пробовал это на дескрипторе дескриптора текстового поля, и он работает PostMessage (textBox1.Handle, 0x302, 0, 0); Для получения дополнительной информации: http://social.msdn.microsoft.com/forums/en-US/csharplanguage/thread/891a05ca-2d39-4f9e-9922-df69c9c2a4b1/ –