如何从剪贴板粘贴文本?
问题描述:
我有代码;如何从剪贴板粘贴文本?
HWND MShwnd = FindWindowA("MapleStoryClass", NULL);
PostMessage(MShwnd, WM_KEYDOWN, 0x09, MapVirtualKeyA(0x09, 0) << 16);
它工作得很好。在我之前,我复制了一个文本到剪贴板。
我想知道的是如何使用postmessage并粘贴文本。
我到处搜索,不明白。
谢谢。
答
这是一个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
我想你需要nativ e代码,所以你没有使用我的代码在那里,不需要处理,再加上如果你获得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
我会在我回家时尝试,如果这样做,你会得到你的答案标记正确。 – Andrew 2012-02-20 15:22:54
我需要它使用postmessage执行ctrl + v功能。 – Andrew 2012-02-20 22:07:43
我试过这个文本框句柄的句柄,它的工作PostMessage(textBox1.Handle,0x302,0,0);对于详细信息:http://social.msdn.microsoft.com/forums/en-US/csharplanguage/thread/891a05ca-2d39-4f9e-9922-df69c9c2a4b1/ – 2012-02-21 06:21:50