AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Warum Project1.exe al sProzess in Großbuchstaben?
Thema durchsuchen
Ansicht
Themen-Optionen

Warum Project1.exe al sProzess in Großbuchstaben?

Ein Thema von PASST · begonnen am 22. Feb 2006 · letzter Beitrag vom 22. Feb 2006
Antwort Antwort
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#1

Warum Project1.exe al sProzess in Großbuchstaben?

  Alt 22. Feb 2006, 16:02
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 Codes erstelle, den Prozess in Großbuchstaben anzeigt?

Gruß
Peter
  Mit Zitat antworten Zitat
NicoDE
(Gast)

n/a Beiträge
 
#2

Re: Warum Project1.exe al sProzess in Großbuchstaben?

  Alt 22. Feb 2006, 16:07
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
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Warum Project1.exe al sProzess in Großbuchstaben?

  Alt 22. Feb 2006, 16:13
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.
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Warum Project1.exe al sProzess in Großbuchstaben?

  Alt 22. Feb 2006, 16:38
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
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Warum Project1.exe al sProzess in Großbuchstaben?

  Alt 22. Feb 2006, 16:46
Warum ist es dir so wichtig ob Groß- oder Kleinbuchstaben?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Warum Project1.exe al sProzess in Großbuchstaben?

  Alt 22. Feb 2006, 16:52
Ich möchte per TerminateProcess den Prozess anhand des Prozessnamens identifizieren und killen. Es ist leider ein Unterschied wie die Schreibweise eines Prozesses ist.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Warum Project1.exe al sProzess in Großbuchstaben?

  Alt 22. Feb 2006, 16:53
warum machst du dir deswegen soviel gedanken? nutze einfach AnsiLowerCase/AnsiUpperCase bzw. die dazugehörigen Api-Funktionen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
PASST

Registriert seit: 30. Mär 2005
Ort: Krefeld
325 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Warum Project1.exe al sProzess in Großbuchstaben?

  Alt 22. Feb 2006, 17:04
Auf die Idee bin ich auch gekommen. Ich weiß aber nicht wie ich das im Code-Bsp für GetProcessID umsetzen kann.

Delphi-Quellcode:
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;
Wäre das von mir eingefügte Uppercase so machbar?

Gruß
Peter
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Warum Project1.exe al sProzess in Großbuchstaben?

  Alt 22. Feb 2006, 18:21
wäre machbar. Sinnvoller wäre es jedoch so (damit uppercase nicht so oft aufgerufen wird):
Delphi-Quellcode:
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;
also für "sProcName" nur ein einziges mal Uppercase (bzw. AnsiUpperCase) verwenden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz