【问题标题】: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-rctrl-c 是该程序中的热键。但是ctrl-c 没有运行。
我发现我需要以某种方式控制剪贴板,但我不知道如何。
它没有运行。 OpenClipboard 等,我需要通过发送 ctrl-c 来完成,而这是该应用程序中的热键并且文本不在窗口中,但它将所需的信息复制到剪贴板。

【问题讨论】:

  • 我不认为按键生成是一个好主意。您有窗口句柄,因此您可以更好地将registered 消息发送到您要从中复制信息和粘贴信息的窗口。您需要将这些消息的处理程序包含到相应的消息映射中。您还应该阅读 Windows 剪贴板 here,它提供了一个 API。

标签: c++ windows mfc


【解决方案1】:

剪贴板有一个 API。您的应用程序将定义必须传输的内容,例如作为文本、位图或其他内容。你需要买一本书或on-line tutorial

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-19
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    相关资源
    最近更新 更多