AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi suchen...

Ein Thema von sakura · begonnen am 1. Jul 2003 · letzter Beitrag vom 5. Jul 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#11
  Alt 1. Jul 2003, 16:26
Hi,

zum Prozesse auflisten hab ich vor ein paar Wochen mal bei Swissdelphicenter was gefunden und etwas abgewandelt:

Delphi-Quellcode:
{GetProcesses schreibt die laufenden Prozesse (Exe- Dateien) in eine
Textdatei. Gibt 0 zurück, wenn alles lief, ansonsten die entsprechende IO-
Fehlernummer. Nur Shortstring und kompatibel übergeben (als Filename)}

function GetProcesses(fname: shortstring): integer;
var
  hProcSnap: THandle;
  pe32: TProcessEntry32;
  f: textfile;
  i: integer;
Label
  ende;
begin
  i:= 0;
  result:= i;
  assignfile(f, fname);
  { Snapshot machen *PENG* }
  hProcSnap := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
  if hProcSnap = INVALID_HANDLE_VALUE then exit;
  pe32.dwSize := SizeOf(ProcessEntry32);
  {$I-}
  rewrite(f);
  i:= ioresult;
  if i <> 0 then
  begin
    result:= i;
    goto ende;
  end;
  {wenn das SizeofDingens geklappt hat}
  if Process32First(hProcSnap, pe32) = true then
    { und los geht's }
    while Process32Next(hProcSnap, pe32) = true do
    begin
      writeln(f, pe32.szExeFile);
      i:= ioresult;
      if i <> 0 then
      begin
        result:= i;
        goto ende;
      end;
    end;
  ende:
  CloseFile(f);
  {$I+}
  CloseHandle(hProcSnap);
end;
Nen Teil hab ich noch nich so recht verstanden, daher ein paar komische Kommentare.
Meine Abwandlung ist dass ich die Prozesse die ich bekomme in ne Datei schreibe, die ich dann später in ne ListBox oder sonstwas laden kann.
Das funktioniert übrigens unter 9x- und NT Systemen.
Wenn du dich für diese Variante noch interessierst, kannstes ja mal probieren.

Bis dann,

S - tefano

[EDIT]Achja, bitte steinigt mich nicht wegen der Labels...[/EDIT]
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#12
  Alt 1. Jul 2003, 16:49
Mit der Prozessliste gibts auch noch ein Stück Code aus der Libraryvon mir.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von Uncle Cracker
Uncle Cracker

Registriert seit: 30. Mär 2003
Ort: Freital
694 Beiträge
 
#13
  Alt 1. Jul 2003, 16:56
Hi sakura,

meintest du so was: http://www.entwickler-forum.de/webx?...dfL.0@.ee8a7dd
I wish it was legal to marry software because I'm madly in love with Delphi...
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#14
  Alt 1. Jul 2003, 17:33
Falls es noch interessiert:
Unter Win98 SE sind geöffnete EXEs schon schreibgeschützt. Daß es bei Win95 und 98FE und 98ME auch so ist, davon ist auszugehen. alles andere wäre ja auch Schwachsinn (obwohl... MS zuzutrauen wär's...)
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: München
11.412 Beiträge
 
Delphi 11 Alexandria
 
#15
  Alt 1. Jul 2003, 20:53
@S - tefano.

An Process32First hatte ich auch gedacht, aber Achtung, obwohl es von Win95/98 und W2K unterstützt wird, so wird es laut MSDN nicht von NT4 unterstützt. Von daher nehme ich es lieber nicht.

......
Daniel W.
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#16
  Alt 1. Jul 2003, 21:01
Zitat von tommie-lie:
...und 98ME...
Medium Edition

MfG Florian

P.S.: Ist klar, dass du SE meinst.
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
tommie-lie
(Gast)

n/a Beiträge
 
#17
  Alt 1. Jul 2003, 21:15
nein, hätte ich SE gemeint, hätte ich's auch geschrieben
Windows 98 Millenium Edition.

Verkafut wurde es zwar als Windows ME, aber trotzdem isses ein Windows 98, nur halt ein wenig aufgemotzt.
  Mit Zitat antworten Zitat
Benutzerbild von flomei
flomei

Registriert seit: 17. Jan 2003
Ort: Schieder-Schwalenberg
2.094 Beiträge
 
Delphi 2005 Personal
 
#18
  Alt 1. Jul 2003, 21:20
Hier lerne ich ja noch richtig was...

MfG Florian
Florian Meier
... ist raus.
Vielen Dank für die Zeit mit euch!
http://www.flomei.de -- http://www.md5hash.de
  Mit Zitat antworten Zitat
Benutzerbild von S - tefano
S - tefano

Registriert seit: 16. Dez 2002
Ort: Dülmen
477 Beiträge
 
Delphi 2009 Professional
 
#19
  Alt 1. Jul 2003, 21:38
Oh, hab ich garnicht gesehen ...
naja, aber unter XP geht das auch

Bis dann,

S - tefano
"Sir, we are surrounded!" - "Excellent, we can attack in every direction!"
  Mit Zitat antworten Zitat
Daniel B
(Gast)

n/a Beiträge
 
#20
  Alt 5. Jul 2003, 10:18
Hallo Daniel,

ich hätte hier was um zu prüfen ob eine EXE läuft:

uses ..., TlHelp32, PsAPI;
Delphi-Quellcode:
procedure CreateWin9xProcessList(List: TStringList);
var
  hSnapShot: THandle;
  ProcInfo: TProcessEntry32;
begin
  if List = nil then
    Exit;
  hSnapShot := CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  if (hSnapShot <> THandle(-1)) then
  begin
    ProcInfo.dwSize := SizeOf(ProcInfo);
    if (Process32First(hSnapshot, ProcInfo)) then
    begin
      List.Add(ProcInfo.szExeFile);
     while (Process32Next(hSnapShot, ProcInfo)) do
       List.Add(ProcInfo.szExeFile);
    end;
    CloseHandle(hSnapShot);
  end;
end;

procedure CreateWinNTProcessList(List: TStringList);
var
  PIDArray: Array[0..1023] of DWORD;
  cb: DWORD;
  i: integer;
  ProcCount: integer;
  hMod : HMODULE;
  hProcess: THandle;
  ModuleName: Array[0..300] of Char;
begin
  if List = nil then
    Exit;
  EnumProcesses(@PIDArray, sizeof(PIDArray), cb);
  ProcCount := cb div SizeOf(DWORD);
  for i := 0 to ProcCount -1 do
  begin
    hProcess := OpenProcess(PROCESS_QUERY_INFORMATION or
      PROCESS_VM_READ, False, PIDArray[I]);
    if (hProcess <> 0) then
    begin
      EnumProcessModules(hProcess, @hMod, SizeOf(hMod), cb);
      GetModuleFilenameEx(hProcess, hMod, ModuleName, SizeOf(ModuleName));
      List.Add(ModuleName);
      CloseHandle(hProcess);
    end;
  end;
end;

procedure GetProcessList(var List: TStringList);
var
  ovi: TOSVersionInfo;
begin
  if List = nil then
    Exit;
  ovi.dwOSVersionInfoSize := sizeof(TOSVersionInfo);
  GetVersionEx(ovi);
  case ovi.dwPlatformId of
    VER_PLATFORM_WIN32_WINDOWS : CreateWin9xProcessList(List) ;
    VER_PLATFORM_WIN32_NT : CreateWinNTProcessList(List) ;
  end
end;

function IsEXERunning(sFileName: String; bFullpath: Boolean): Boolean;
var
  i: Integer;
  MyProcList: TStringList;
begin
  MyProcList := TStringList.Create;
  try
    GetProcessList(MyProcList) ;
    Result := False;
    if MyProcList = nil then
      Exit;
    for i := 0 to MyProcList.Count -1 do
    begin
      if not bFullpath then
      begin
        if CompareText(ExtractFileName(MyProcList.Strings[i]), sFileName) = 0 then
          Result := True
        end else
        if CompareText(MyProcList.Strings[i], sFileName) = 0 then
          Result := True;
        if Result then
          Break;
    end;
  finally
    FreeAndNil(MyProcList);
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
 if IsEXERunning('delphi32.exe', False) then
    ShowMessage('Läuft schon... *bääh*')
 else
    ShowMessage('Läuft nicht... :-)');
end;
Viel Spass damit.

Grüsse, Daniel
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 16:27 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