我有代码;
HWND MShwnd = FindWindowA("MapleStoryClass", NULL);
PostMessage(MShwnd, WM_KEYDOWN, 0x09, MapVirtualKeyA(0x09, 0) << 16);
效果很好。在此之前,我将一个文本复制到剪贴板。
我想知道的是如何使用postmessage并粘贴文本。
我到处搜索,不明白。
感谢。
答案 0 :(得分:1)
这是一个C#代码转换它或用我的代码制作一个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
我想你需要本机代码,所以你没有使用那些不需要句柄的代码,如果你实现了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