zoukankan      html  css  js  c++  java
  • 获取当前活动窗口后(前景窗口)可以做好多事情

    相关函数:
    //获取当前活动窗口
    HWND GetForegroundWindow(VOID);

    //获取窗口名
    int GetWindowText(  HWND
    hWnd,        // handle to window or control
                                        LPTSTR
    lpString,  // text buffer
                                        int
    nMaxCount     // maximum number of characters to copy);

    //获取窗口的进程ID和主线程ID,线程ID作为返回值,进程ID作为传出参数

    DWORD GetWindowThreadProcessId(  HWND
    hWnd,             // handle to window
                                                                       LPDWORD
    lpdwProcessId  // process identifier);

    有了进程ID后我们就可以做很多的事情,比如OpenProocess,枚举进程的信息,最后与此进程相关的用户名,用户ID,SessionID,都会搜索出来。。。。。。,可以根据自己的喜好继续往下写
    上面的几个函数都比较简单,不做过多的说明。接下来写一个小练习:

    void main()
    
    {
    
       HWND hWindow = GetForegroundWindow();
    
       wchar_t szCaption[MAX_PATH] = { 0 };
       GetWindowText(hWindow, szCaption, MAX_PATH * sizeof(WCHAR)); 
       wstring strCaption = szCaption;
    		
       DWORD dwProcessId;
       GetWindowThreadProcessId(hWindow, &dwProcessId);
    
       HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, dwProcessId);
       WCHAR szFileName[MAX_PATH] = { 0 };
       //GetModuleFileNameEx(hProcess, NULL, szFileName, MAX_PATH);
       wchar_t wszImageFileName[MAX_PATH] = { 0 };
       GetProcessImageFileName(hProcess, wszImageFileName, MAX_PATH);
    	
    
       wstring strFilePath;
       wstring strExeName;
    
       if (szFileName)
       strFilePath = wszImageFileName;
    
       int nPos = strFilePath.find_last_of('\');
       if (nPos > 0)
       {
    	strExeName = strFilePath.substr(nPos + 1, strFilePath.length() - nPos - 1);
       }
    
       wprintf(L"processName:%ws  ProcessId:%d,  Caption:%ws 
    ", strExeName.c_str(), dwProcessId, szCaption);
    
      Sleep(1000 * 2);
    
    }
    
  • 相关阅读:
    Socket与系统调用深度分析
    需求分析:未来的图书会是怎么样的?
    构建调试Linux内核网络代码的环境MenuOS系统
    jmeter--开始
    pytest---api
    pytest---mark
    pytest---数据处理
    pytest---fixture运行规则
    pytest---allure(mac版本)
    pytest---pytest.ini
  • 原文地址:https://www.cnblogs.com/priarieNew/p/9755562.html
Copyright © 2011-2022 走看看