Я хочу, чтобы моя программа запускала действие, только когда в данный момент используются некоторые другие программы.Я получаю текущий передний план HWND с GetForegroundWindow()
.Но HWND меняются со временем, так что это не способ идентифицировать эти программы.То же самое касается идентификаторов процессов и дескрипторов.Как определить программу переднего плана по перезагрузкам?
Сначала я подумал, что GetModuleFileNameExA
должно работать, но мой код падает, потому что он не найден:
Handle handle = GetProcessHandleFromHwnd(hWID);
String Name = null;
GetModuleFileNameExA(
handle,
null,
Name,
2147483647
);
[DllImport("Kernel32.dll", CharSet = CharSet.Ansi)]
private static extern IntPtr GetModuleFileNameExA(
Handle hProcess,
Object hModule,
String lpFilename,
Int32 nSize
);