![]() |
Warum Project1.exe al sProzess in Großbuchstaben?
Hi NG,
Delphi 4 (update 3), WinXP Pro (SP2) Warum zeigt paramstr(0) die aktuelle Anwendung in Groß/Kleinbuchstaben, während die Anwendung in der Prozessliste, die ich mithilfe des ![]() Gruß Peter |
Re: Warum Project1.exe al sProzess in Großbuchstaben?
Weil zwei unterschiedliche Informationen ausgelesen werden:
a) der Dateipfad des Moduls mit dem der Prozess erzeugt wurde b) der interne 'Name' des Prozesses, den der Kernel sich merkt |
Re: Warum Project1.exe al sProzess in Großbuchstaben?
Das ist klar, das zwei verschiedene Quellen gelesen werden. Es irritiert mich allerdings, dass in den Prozessen weiterhin Anwendungen laufen, die nicht ausschließlich in Großbuchtstaben geschrieben sind.
|
Re: Warum Project1.exe al sProzess in Großbuchstaben?
Jetzt bin ich komplett verwirrt. Auf meinem Rechner WinXP Pro wird der Prozess in Großbuchstaben gelistet. Auf einem W2k3 Server wird der Prozess in GroßKleinBuchstaben gelistet.
Hat jemand eine Idee woran das liegen könnte? Gibt es da eine Regelmäßigkeit, die ich evtl. berücksichtigen muss? Gruß Peter |
Re: Warum Project1.exe al sProzess in Großbuchstaben?
Warum ist es dir so wichtig ob Groß- oder Kleinbuchstaben?
|
Re: Warum Project1.exe al sProzess in Großbuchstaben?
Ich möchte per TerminateProcess den Prozess anhand des Prozessnamens identifizieren und killen. Es ist leider ein Unterschied wie die Schreibweise eines Prozesses ist.
|
Re: Warum Project1.exe al sProzess in Großbuchstaben?
warum machst du dir deswegen soviel gedanken? nutze einfach AnsiLowerCase/AnsiUpperCase bzw. die dazugehörigen Api-Funktionen.
|
Re: Warum Project1.exe al sProzess in Großbuchstaben?
Auf die Idee bin ich auch gekommen. Ich weiß aber nicht wie ich das im Code-Bsp für GetProcessID umsetzen kann.
Delphi-Quellcode:
Wäre das von mir eingefügte Uppercase so machbar?
function TForm1.GetProcessID(sProcName: String): Integer;
var hProcSnap: THandle; pe32: TProcessEntry32; begin result := -1; hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); if hProcSnap = INVALID_HANDLE_VALUE then exit; pe32.dwSize := SizeOf(ProcessEntry32); { wenn es geklappt hat } if Process32First(hProcSnap, pe32) = true then { und los geht's: Prozess suchen } while Process32Next(hProcSnap, pe32) = true do begin if pos(sProcName, pe32.szExeFile) <> 0 then { if pos(uppercase(sProcName), uppercase(pe32.szExeFile)) <> 0 then } result := pe32.th32ProcessID; end; CloseHandle(hProcSnap); end; Gruß Peter |
Re: Warum Project1.exe al sProzess in Großbuchstaben?
wäre machbar. Sinnvoller wäre es jedoch so (damit uppercase nicht so oft aufgerufen wird):
Delphi-Quellcode:
also für "sProcName" nur ein einziges mal Uppercase (bzw. AnsiUpperCase) verwenden.
function TForm1.GetProcessID(sProcName: String): Integer;
var hProcSnap: THandle; pe32: TProcessEntry32; begin sProcName := AnsiUpperCase(sProcName); result := -1; hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0); if hProcSnap = INVALID_HANDLE_VALUE then exit; pe32.dwSize := SizeOf(ProcessEntry32); { wenn es geklappt hat } if Process32First(hProcSnap, pe32) = true then { und los geht's: Prozess suchen } while Process32Next(hProcSnap, pe32) = true do begin if pos(sProcName, AnsiUpperCase(pe32.szExeFile)) <> 0 then result := pe32.th32ProcessID; end; CloseHandle(hProcSnap); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz