![]() |
"psApi" unter Delphi 2.0
Hi!
Wie kann ich die oben genannte Unit unter Delphi 2.0 installieren? Brauche ich, um feststellen zu können, ob ein bestimmtes Programm (*.exe) läuft. ![]() Gibt es vielleicht noch eine andere Möglichkeit, mit der man die Aktivität anderer Programme feststellen kann ???? |
Re: "psApi" unter Delphi 2.0
Eine Unit "installiert" man nicht, eine Unit bindet man unter uses ein. was gibt es denn für Probleme? Das wäre doch mal eien nützliche Information von deiner Seite.
|
Re: "psApi" unter Delphi 2.0
ok die sache ist etwas kompliziert...ich habe ein programm in delphi 2.0 geschrieben, welche die komponente SuperTimer benötigt...jetzt wollte ich diese Prüfen, ob EXE-Datei schon läuft-Prozedur (siehe oben) einbinden, brauche unter delphi 2.0 aber die psApi. des weiteren habe ich delphi6 und delphi7 auf meinem rechner -> problem: SuperTimer geht nur bis delphi4 :roll: :roll:
jetzt gibt es drei möglichkeiten: 1. man nimmt die psApi von delphi6 und bindet sie irgendwie in delphi2 ein 2. man sucht sich eine andere prozedur, mit der man die aktivität eines anderen programmes prüfen kann in einem anderen thread von mir habe ich von Luckie den vorschlag CreateToolHelp32Snapshot bekommen...wie geht das?? 3. ihr sagt mir, was an dieser prozedur falsch ist, dass sie unter win2000/xp nicht funktioniert:
Delphi-Quellcode:
function ExeFileIsRunning(ExeFile: string): boolean;
var H:word; begin H := CreateFile(PChar(ExeFile), GENERIC_READ, 0, nil, OPEN_EXISTING, 0, 0); Result := (H >= 65535); CloseHandle(H); end;
Delphi-Quellcode:
vielen dank für eure hilfe!
procedure TForm1.Button1Click(Sender: TObject);
begin If ExeFileIsRunning('C:\Broca.exe') then ShowMessage('Programm läuft!') else ShowMessage('Programm läuft nicht!'); end; |
Re: "psApi" unter Delphi 2.0
Hallo Wheelie,
ich denke mal, es lizenzrechtlich nicht erlaubt in ein Delphi2-Programm Units aus späteren Delphi-Versionen einzubinden, auch wenn man diese offiziell gekauft hat. :warn: Warum migrierst Du das Programm nicht einfach in eine höhere Delphi-Version? [EDIT]Man sollte genauer lesen :oops: : Suche doch einfach auch mal nach einer Alternative für den SuperTimer. Wenn Dir dafür auch der Quellcode vorliegt (?), kannst Du ja auch versuchen, diese Komponente in die anderen Delphi-Versioenen zu übernehmen.[/EDIT] |
Re: "psApi" unter Delphi 2.0
2.
![]() 3. Der Datentyp Word ist zu klein für ein Handle. Nimm ein DWORD, Cardinal oder der übersichtlichkeithalber gleich ein THandle. |
Re: "psApi" unter Delphi 2.0
ihr werdet mich bestimmt für total bekloppt halten ( :oops: ) aber es klappt weder mit dword, noch mit cardinal oder thandle (habe alles eingesetzt, sonst muss man doch nix ändern, oder)???
und das mit CREATETOOLHELP32SNAPSHOT habe ich mir alles durchgelesen aber es klappt nicht bzw. ich weiß nicht wie ich es auf genau eine exe-datei umschreiben soll (ich weiß, ich geh euch ganz schön auf'n sack...muss das aber bis morgen fertig haben). also...es muss mit delphi 2.0 kompilierbar sein und unter win200/xp funktionieren. tausend dank für alles |
Re: "psApi" unter Delphi 2.0
Du mußt doch nur hier
Delphi-Quellcode:
in der while Schleife kucken, ob der gefundene Prozess (die Exe davon) die ist, die du suchst. Wo ist das Problem? Und anstatt der StringList übergibst du den Namen der Exe und machst daraus eine Funktion, die dir True zurückgibt, wenn die Exe gefunden wurde. Und dir den Code so in zu biegen, dass er deinen Erfordernissen entspricht, dürfte ja nicht so sschwer sein oder?
procedure GetProcs(sl: TStringlist);
var hProcSnap: THandle; pe32: TProcessEntry32; begin { Snapshot machen *PENG* } 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 } while Process32Next(hProcSnap, pe32) = true do begin sl.Add(pe32.szExeFile); end; CloseHandle(hProcSnap); end; |
Re: "psApi" unter Delphi 2.0
hier meldet mir mein delphi 2 bei "pe32.dwSize := SizeOf(ProcessEntry32);" einen Fehler...kommt damit wahrscheinlich nicht ganz klar...gibt es denn keine andere Möglichkeit ?? :cry:
|
Re: "psApi" unter Delphi 2.0
Zitat:
Zitat:
|
Re: "psApi" unter Delphi 2.0
![]() "TLHelp32" hatte ich unter uses... Habe noch eine Idee: Hat jemand Delphi 4? Da dürfte das vielleicht funktionieren (möglicherweise ist Delphi 2 schon zu alt) und die Komponente SuperTimer wird bis Delphi 4 unterstützt (die brauche ich ja)...ich schicke der netten Person sozusagen das Projekt und er schickt mir die exe zurück :?: :?: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 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