From 8b47c28c950598a6c476430b782239d4a2bd303a Mon Sep 17 00:00:00 2001 From: qiuapeng Date: Sun, 3 Dec 2023 01:07:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E7=AA=97=E5=8F=A3=E5=8F=A5?= =?UTF-8?q?=E6=9F=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/dnf/helper/Process.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/dnf/helper/Process.java b/src/main/java/com/dnf/helper/Process.java index 0ae000b..aa9b618 100644 --- a/src/main/java/com/dnf/helper/Process.java +++ b/src/main/java/com/dnf/helper/Process.java @@ -5,6 +5,8 @@ import com.sun.jna.platform.win32.*; public class Process { + static Kernel32 kernel32 = Kernel32.INSTANCE; + static User32 user32 = User32.INSTANCE; /** * 获取指定进程名的进程id @@ -13,8 +15,6 @@ public class Process { * @return int */ public static int getProcessId(String processName) { - Kernel32 kernel32 = Kernel32.INSTANCE; - Tlhelp32.PROCESSENTRY32.ByReference pe = new Tlhelp32.PROCESSENTRY32.ByReference(); // 创建进程快照 @@ -48,8 +48,6 @@ public static int getProcessId(String processName) { * @return long */ public static long getProcessModuleHandle(int processId, String moduleName) { - Kernel32 kernel32 = Kernel32.INSTANCE; - long result = 0; WinNT.HANDLE hModuleSnap = kernel32.CreateToolhelp32Snapshot(Tlhelp32.TH32CS_SNAPMODULE, new WinBase.DWORD(processId)); Tlhelp32.MODULEENTRY32W me = new Tlhelp32.MODULEENTRY32W(); @@ -69,4 +67,15 @@ public static long getProcessModuleHandle(int processId, String moduleName) { kernel32.CloseHandle(hModuleSnap); return result; } -} + + /** + * 获取窗口句柄 + * + * @param lpClassName 类名称 + * @param lpWindowName 窗口名称 + * @return WinDef.HWND + */ + public static WinDef.HWND FindWindowW(String lpClassName, String lpWindowName) { + return user32.FindWindow(lpClassName, lpWindowName); + } +} \ No newline at end of file