已知某个窗口的句柄,如何获取拥有这个窗口的进程的句柄

已知某个窗口的句柄,如何获取拥有这个窗口的进程的句柄,第1张

The GetProcessHandleFromHwnd function retrieves a process handle from a window handle

HANDLE WINAPI GetProcessHandleFromHwnd(

HWND hwnd,

);

这个函数通过窗口句柄获得进程句柄。有了进程句柄,PID是不是就知道怎么获得了?什么?不知道?那我告诉你,GetProcessId可以通过进程句柄获得进程ID:

DWORD WINAPI GetProcessId(

__in HANDLE Process

);

DWORD PID;

PID = GetProcessPID(L"testexe");

//获取进程pid函数

DWORD GetProcessPID(LPCTSTR pName)

{

HANDLE hSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);

if (INVALID_HANDLE_VALUE == hSnapshot) {

return NULL;

}

PROCESSENTRY32 pe = { sizeof(pe) };

BOOL fOk;

for (fOk = Process32First(hSnapshot, &pe); fOk; fOk = Process32Next(hSnapshot, &pe)){

if (!_tcsicmp(peszExeFile, pName)) {

CloseHandle(hSnapshot);

return peth32ProcessID;

}

}

return NULL;

}

//由进程pid获取进程句柄,置顶

HWND hh = GetProcessTopWindows(PID);

HWND GetProcessTopWindows(DWORD dwPID){

count = 0;

EnumWindows((WNDENUMPROC)EnumWndProc, (LPARAM)dwPID);

if(count > 0) {

//cout << "窗口句柄是:" << nhWnd[count -1] << endl;//输出句柄,可用spy++工具核对

return (nhWnd[count -1]);

}

return NULL;

}

别忘了添加对应头文件。

通过在正在运行的进程上设置 SeDebugPrivilege 权限,您可以获取进程句柄的任何运行的应用程序。获取进程句柄,然后可以指定 PROCESS_ALL_ACCESS 标志,这将允许该进程句柄,您通常不能在不同 Win32 Api 调用。一些可以成功调用 Win32 Api 包括以下︰

TerminateProcess

CreateRemoteThread

应用程序 #1 (Term01exe)

在 Visual Basic 50 中创建一个新的标准 EXE 项目。

将项目名称更改为 Term01。

将 Form1 重命名为 frmTerm01。

将命令按钮添加到 frmTerm01 中。

为向"终止记事本。"Command1 设置标题

将下面的代码添加到 frmTerm01 中︰

Option Explicit

Private Sub Command1_Click()

' This is a simple application that attempts

' to shut down any process that is passed in through

' the command line

Call TerminateProcess(CLng(Command$), 0)

End Sub

向项目中添加一个标准模块并将其重命名为 MdlApi01。

将下面的代码添加到 MdlApi01 中︰

Option Explicit

Declare Function TerminateProcess Lib "kernel32" _

(ByVal hProcess As Long, _

ByVal uExitCode As Long) As Long

保存项目并使 exe 文件 (Term01exe)。

以上就是关于已知某个窗口的句柄,如何获取拥有这个窗口的进程的句柄全部的内容,包括:已知某个窗口的句柄,如何获取拥有这个窗口的进程的句柄、C语言中如何获得当前进程句柄,谢谢!、如何使用该 SeDebugPrivilege 获取任何进程句柄等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9748787.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存