• 获取当前活动窗口后(前景窗口)可以做好多事情


    相关函数:
    //获取当前活动窗口
    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);
    
    }
    
  • 相关阅读:
    What's the most secure desktop operating system?
    合肥一中在校学生丁雯琪(中美班)被麻省理工学院(MIT)录取
    Classic Computer Science 1980s-1990s
    HOWTO do Linux kernel development
    选择器zuoye
    HTML+css 小组件
    弹性盒子
    CSS3 学习笔记(动画 多媒体查询)
    CSS3 学习笔记(边框 背景 字体 图片 旋转等)
    学习笔记css3
  • 原文地址:https://www.cnblogs.com/priarieNew/p/9755562.html
Copyright © 2020-2023  润新知