如何从剪贴板粘贴文本?

如何从剪贴板粘贴文本?

问题描述:

我有代码;如何从剪贴板粘贴文本?

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 
+0

我会在我回家时尝试,如果这样做,你会得到你的答案标记正确。 – Andrew 2012-02-20 15:22:54

+0

我需要它使用postmessage执行ctrl + v功能。 – Andrew 2012-02-20 22:07:43

+0

我试过这个文本框句柄的句柄,它的工作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