Forum: Object-Pascal / Delphi-Language
by af99,
21. Mai 2015
Da habt Ihr recht. Ich habe mich von der Funktion verabschiedet zumal ich es auch für Prozesse brauche die kein Fenster haben.
Klar ist mir nun das es ein Rechteproblem ist. Kann mir denn einer sagen wie ich das Consolenprogramm berechtigen kann so das es OpenProcess(PROCESS_QUERY_INFORMATION aufrufen darf?
Forum: Object-Pascal / Delphi-Language
by af99,
20. Mai 2015
ich habe beides bei beiden Funktioenen ausprobiert. Es kommt immer der gleiche Fehler. Zumal in der Funktion "GetProcessMemorySize" der Fehler bei
l_nWndHandle := FindWindow(nil, PChar(sProcessName));
if l_nWndHandle = 0 then
begin
WriteLn(SysErrorMessage(GetLastError));
auftritt. Also schon bevor das "OpenProcess(PROCESS_QUERY_INFORMATION" ausgerufen wird.
Forum: Object-Pascal / Delphi-Language
by af99,
20. Mai 2015
diesen l_nWndHandle := FindWindow(nil, PChar(sProcessName));
dieser gibt 0 zutück
ich denke schon das das in dem selben Berechtigungskonzept passiert. Ist alles ein Programm in einer EXE und das läuft als Consolenprogramm. Die Console ist als Admin ausgeführt.
Forum: Object-Pascal / Delphi-Language
by af99,
20. Mai 2015
der Fehler in ShowMemoryUsage kommt hier
hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, ProcessId);
begin
if ( hProcess = 0 ) then
begin
WriteLn(SysErrorMessage(GetLastError));
writeln('fehler');
Exit;
end;
Forum: Object-Pascal / Delphi-Language
by af99,
20. Mai 2015
OK, habe WriteLn(SysErrorMessage(GetLastError)); eingebaut
GetProcessMemorySize gibt "Der an einen Systemaufruf übergebene Datenbereich ist zu klein" zurück. Hiermit kann ich nichts anfangen
ShowMemoryUsage gibt "Zugriff verweigert" zurück. Das hatte ich ja vermutet. Nun die Frage wie kann ich Aufruf berechtigen??
ok " Rückgabewerte der aufgerufenen WinAPIs auswerten" Wie mach ich das?
Forum: Object-Pascal / Delphi-Language
by af99,
20. Mai 2015
Ich glaube das ich ein Berechtigungsproblem. Scheinbar dürfen die Funktionen "GetProcessMemorySize" und "ShowMemoryUsage" den "OpenProcess" nicht aufrufen die Funktion GetCpuUsage aber schon.
Ich bin jetzt nicht genug Windows Administrator um das nachvollziehen zu können. Kann man irgendwie das Kommando mit einem Benutzer/Kennwort aufrufen???
Wobei die RDP Sitzung habe ich mit einem...
Forum: Object-Pascal / Delphi-Language
by af99,
20. Mai 2015
Hallo Zusammen,
ich bastele gerade an einem Programm mit dem ich die CPU und Hauptspeicher Nutzung eines benannten Prozessen ermitteln möchte.
Folgende Funktionen habe ich hierzu im Netz gefunden
function ShowMemoryUsage(ProcessId: DWORD): DWORD;
var
hProcess: THandle;
PMC: PPROCESS_MEMORY_COUNTERS;