Einzelnen Beitrag anzeigen

Delphi-Coder

Registriert seit: 8. Jan 2003
Ort: Greifswald / Stralsund
151 Beiträge
 
Delphi 7 Enterprise
 
#1

DLL schreiben - Was mach ich falsch?

  Alt 17. Mär 2004, 20:38
Hallo, ich möchte eine DLL schreiben, die checkt ob ein Programm läuft! Ergebnisse sollen folgende sein:
0 - Programm läuft nicht
1 - Programm läuft
2 - kein Parameter empfangen

Nur, falls es von Interesse ist: Die Dll soll für NSIS sein! Wenn ich sie so, wie sie jetzt ist einbinde liefert sie nur den parameter zurück, den ich an sie übergebe!

Was ist falsch an meinem Quelltext?

Delphi-Quellcode:
library Process;

uses
  ShareMem,
  Windows,
  SysUtils,
  Classes,
  TLHelp32;

{$R *.RES}

function CheckProcess(exe: PChar): Integer;
var
  hSnap: THandle;
  ProcEntry: TProcessEntry32;
  s: String;
  sl : TStringList;
  i : Integer;
begin
if exe <> 'then
begin
  hSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  if (hSnap <> INVALID_HANDLE_VALUE) then
  begin
    sl := TStringList.Create;
    ProcEntry.dwSize := SizeOf(ProcessEntry32);
    if (Process32First(hSnap, ProcEntry)) then
    begin
      s := ProcEntry.szExeFile;
      sl.Add(UPPERCASE(ExtractFileName(s)));

      while Process32Next(hSnap, ProcEntry) do
      begin
        s := ProcEntry.szExeFile;
        sl.Add(UPPERCASE(ExtractFileName(s)));
      end;
    end;
  end;

  for i:=0 to sl.Count-1 do
      if UPPERCASE(exe) = UPPERCASE(sl.Strings[i]) then
         Result := 1
      else
         Result := 0;

  CloseHandle(hSnap);
  sl.free;
end
else
    Result := 2;
end;

exports
    CheckProcess;

begin

end.
Vielen Dank für eure Hilfe im voraus!
Delphi-Coder
  Mit Zitat antworten Zitat