Hier ist der Code, den ich einen Prozess zu öffnen, schrieb:C# Open gibt Fehler 1150
[DllImport("kernel32.dll", SetLastError = true)]
private static extern UIntPtr OpenProcess(uint dwDesiredAccess, bool bInheritHandle, uint dwProcessId);
[DllImport("kernel32.dll", SetLastError = true)]
private static extern bool CloseHandle(UIntPtr hObject);
private const uint PROCESS_QUERY_INFORMATION = 0x0400;
public static void processInfo() {
uint PID = 3144;
UIntPtr handle = UIntPtr.Zero;
handle = OpenProcess(PROCESS_QUERY_INFORMATION, false, PID);
Console.WriteLine(Marshal.GetLastWin32Error());
Console.WriteLine(handle);
if (!handle.Equals(UIntPtr.Zero)) {
CloseHandle(handle);
}
}
Marshal.GetLastWin32Error()
kehrt Fehler 1150 für jeden Prozess. Von MSDN:
"ERROR_OLD_WIN_VERSION: Das angegebene Programm ist eine neuere Version von Windows."
Ich führe diesen Code in Windows 2008 R2 in Visual Studio 2015 Community Edition. Target Framework ist in den Projekteinstellungen auf ".NET Framework 4.5.2" eingestellt.
Auch scheint es, dass OpenProcess immer noch seine Arbeit machen kann, weil das zurückgegebene Handle nicht Null ist. Sollte ich über diesen Fehler besorgt sein?