2010-11-03 150 views
1

我正在使用Java Native Access(JNA)使用Win32 API(kernel32.dll)来设置应用程序的priroty和affinity。应用程序名称(名称字符串的一部分)是已知的,我需要找出该应用程序的进程的HANDLE。一旦我知道该进程的HANDLE,我可以使用Win32 API SetPriorityClass和SetProcessAffinityMask来修改应用程序优先级和CPU关联性。如何使用Win32 API在Windows中获取应用程序的进程HANDLE

SetPriorityClass和SetProcessAffinityMask都需要将进程的HANDLE作为输入。

更多的信息。我有一个Java应用程序调用VM容器来启动名为​​“Mylinux”的VM实例。 “Mylinux”的VM实例将在Windows中作为应用程序运行,但VM容器附加了附加字符串以形成应用程序名称,即“Mylinux(snapshot3)...”作为显示在Windows任务管理器中的应用程序名称。我希望Java应用程序使用JNA(Win32 API接口)来修改应用程序的优先级和CPU关联性。

我需要知道WIN32 API可以为给定的应用程序名称(应用程序的一部分,而不是整个字符串)返回进程的HANDLE。

感谢 约翰

+0

Taskmgr的进程选项卡中显示的名称是什么? VM窗口的标题栏说什么? – 2010-11-03 17:42:01

+0

可能的重复[如何在C++中通过其名称获取进程句柄?](http://stackoverflow.com/questions/865152/how-can-i-get-a-process-handle-by-its-名称中-C) – 2010-11-04 00:28:15

回答

2

GetCurrentProcess()为当前进程。

OpenProcess()用于远程进程。 See the example

您可以在MSDN中找到更多信息。

相关问题