通过c++与操作系统函数交互



我正在尝试在c++中制作一个与操作系统功能交互的工具,但我以前从未做过类似的事情,所以我甚至不知道在哪里搜索答案。

下面是我想做的一个概括性示例:

假设我在一个文件夹中存储了许多文本文件。每个文件都有一些文本和一个密码(只是字符串,没有加密)。我要做的是输入一个关键字(例如"1",或"2",或任何关键字),然后在文件中选择一个密码。现在,我知道如何做所有这些"简单"的东西,我的问题接下来:

一旦我找到密码-假设密码将存储在字符串psw变量中-我想将psw字符串复制到我的操作系统(假设Windows)用于"复制"函数(Ctrl + C)的"缓冲区"(或其他什么)。这导致:下次我按Ctrl+V时,psw将被粘贴。

使用示例:用户运行.exe,打开一个窗口。然后他输入一个关键字,并选择一个密码,并将其添加到处理"复制"功能的"缓冲区"中。程序可能在此状态终止,或者等待另一个密码(我们不再关心它)。现在,让我们假设用户创建了一个文本文件,按Ctrl + V,并将密码粘贴到文本文件中,其间没有来自用户端的任何其他交互。

以下是我的问题:这可能吗,还是我应该放弃这个想法?如果是,我将感谢任何帮助,教程,或一些模式在哪里搜索这个。

这更像是一个"Windows"的答案,而不是一个"c++"的答案,但下面的代码将在C或c++中工作。

在windows上,你可以通过Win32 API将字符串"粘贴"到剪贴板中。

void PasteString(const char* pszPhrase)
{
    int len = strlen(pszPhrase);
    BOOL fResult = FALSE;
    fResult = OpenClipboard(GetDesktopWindow());
    if (fResult == FALSE)
    {
        return;
    }
    HGLOBAL hglob = GlobalAlloc(GHND, len+1);
    void* pGlobalMemory = GlobalLock(hglob);
    strcpy((char*)pGlobalMemory, pszPhrase);
    GlobalUnlock(hglob);
    EmptyClipboard();
    SetClipboardData(CF_TEXT, hglob);
    CloseClipboard();
}

最新更新