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

相关函数:
//获取当前活动窗口
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 \n", strExeName.c_str(), dwProcessId, szCaption);

  Sleep(1000 * 2);

}

 

转载于:https://www.cnblogs.com/priarieNew/p/9755562.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值