从不同的应用程序复制和粘贴剪贴板

时间:2014-06-18 15:23:04

标签: c++ windows mfc

我需要从一个应用程序中复制信息并将其粘贴到另一个应用程序中 或以某种方式从剪贴板获取信息。我知道如何将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,而这是该应用程序中的热键,文本不在窗口中,但它将所需信息复制到剪贴板。

1 个答案:

答案 0 :(得分:0)

剪贴板有一个API。您的申请将定义,必须转移的内容,例如作为文本,位图或其他内容。您需要获得一本书或on-line tutorial