从不同的应用程序复制和粘贴剪贴板
Posted
技术标签:
【中文标题】从不同的应用程序复制和粘贴剪贴板【英文标题】:Copy and paste Clipboard from different application 【发布时间】:2014-06-18 15:23:04 【问题描述】:我需要从一个应用程序复制信息并将其粘贴到另一个应用程序..
或以某种方式从剪贴板获取信息。我知道如何将 ctrl-r
发送到该应用程序并运行它。
我也想发送ctrl-c
,但它什么也没做。我在剪贴板中有一些信息(程序完成后它仍然存在),我尝试将数据粘贴到记事本。它也不运行。我在网上找到了一些想法,但我不知道如何运行它。 ctrl-v
仅将 v
写入记事本。
这是我的代码:
INPUT Refrk1;
INPUT Refrk2;
INPUT Refrk3;
INPUT Refrk4;
INPUT Inputs[2];
Refrk1.type = 1;
Refrk1.ki.wVk = 0x11;
Refrk1.ki.wScan = 0;
Refrk1.ki.dwFlags = 0;
Refrk1.ki.dwExtraInfo = 0;
Refrk1.ki.time = 1;
Refrk2.type = 1;
Refrk2.ki.wVk =0x43;
Refrk2.ki.wScan = 0;
Refrk2.ki.dwFlags = 0;
Refrk2.ki.dwExtraInfo = 0;
Refrk2.ki.time = 0;
Refrk3.type = 1;
Refrk3.ki.wVk =0x56;
Refrk3.ki.wScan = 0;
Refrk3.ki.dwFlags = 0;
Refrk3.ki.dwExtraInfo = 0;
Refrk3.ki.time = 0;
Refrk4.type = 1;
Refrk4.ki.wVk =0x0D;
Refrk4.ki.wScan = 0;
Refrk4.ki.dwFlags = 0;
Refrk4.ki.dwExtraInfo = 0;
Refrk4.ki.time = 0;
ShowWindow(hAMIDST, SW_SHOWNORMAL);
SetForegroundWindow(hAMIDST);
SendInput(2, Inputs,sizeof(Inputs[2]));
Refrk1.ki.dwFlags = KEYEVENTF_KEYUP;
Refrk2.ki.dwFlags = KEYEVENTF_KEYUP;
Inputs[0] = Refrk1;
Inputs[1] = Refrk2;
SendInput(2, Inputs,sizeof(Inputs[2]));
ShowWindow(hNOTE, SW_SHOWNORMAL);
SetForegroundWindow(hNOTE);
Inputs[0] = Refrk1;
Inputs[1] = Refrk3;
SendInput(2, Inputs,sizeof(Inputs[2]));
Sleep(10);
Refrk1.ki.dwFlags = KEYEVENTF_KEYUP;
Refrk3.ki.dwFlags = KEYEVENTF_KEYUP;
Inputs[1] = Refrk1;
Inputs[0] = Refrk3;
SendInput(2, Inputs,sizeof(Inputs[2]));
SendInput(1, &Refrk4,sizeof(INPUT));
Refrk4.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &Refrk4,sizeof(INPUT));
ShowWindow(hAMIDST, SW_SHOWNORMAL);
SetForegroundWindow(hAMIDST);
ctrl-r
和 ctrl-c
是该程序中的热键。但是ctrl-c
没有运行。
我发现我需要以某种方式控制剪贴板,但我不知道如何。
它没有运行。 OpenClipboard 等,我需要通过发送 ctrl-c
来完成,而这是该应用程序中的热键并且文本不在窗口中,但它将所需的信息复制到剪贴板。
【问题讨论】:
我不认为按键生成是一个好主意。您有窗口句柄,因此您可以更好地将registered 消息发送到您要从中复制信息和粘贴信息的窗口。您需要将这些消息的处理程序包含到相应的消息映射中。您还应该阅读 Windows 剪贴板 here,它提供了一个 API。 【参考方案1】:剪贴板有一个 API。您的应用程序将定义必须传输的内容,例如作为文本、位图或其他内容。你需要买一本书或on-line tutorial。
【讨论】:
以上是关于从不同的应用程序复制和粘贴剪贴板的主要内容,如果未能解决你的问题,请参考以下文章