![]() |
Programm aus Taskmanager und Autostart schliessen/loeschen
Halloah!
Frage: Habe angenommen ein Prog im Autostart. Der User fährt seine Mühle hoch und das Programm startet von selbst (application.visible:=false!). Jetzt will ich das (meinige) Programm 1.Aus dem Taskmanager löschen bzw. einfach schließen. 2.Das File selbst aus dem Autostart löschen. Wie ich in das Autostart-Verzeichis komme weiss ich (danke Eurer Hilfe)... Hoffe es gibt eine kurze Lösung für mein Problem. Grüße aus Salzburg. MfG Andi |
Moin Andi,
unter welchem Betriebbsystem soll das Ganze stattfinden? Musst Du Dein Programm von aussen beenden, oder aus sich selbst heraus? Ist das Programm im Autostartordner, oder ein Link auf das Programm? Woraus sich noch die Frage ergibt: Soll jetzt das Programm gelöscht werden, oder der Aufruf? |
details
es befindet sich das *.exe-File in dem Autostart Verzeichnis (also das Programm selbst und nicht nur eine Verknüpfung).
Das ganze (löschen aus dem Autostart) sollte in möglichst vielen Windows Versionen funktionieren (oder zumindest 98/2k). [wenn möglich Infos zu verschiedene Lösungen für die untersch Windows Versionen...] noch Fragen? |
Re: details
Zitat:
|
Hallo Andi,
nun, die Pfade bekommst Du über die Registry raus. Dann brauchst Du nur noch DeleteFile(Pfad); //Siehe OH -> DeleteFile. Sollte doch kein Thema sein. Grüsse, Daniel :hi: |
Re: details
Zitat:
[edit=Daniel B.]BBCode.On := True;[/edit] |
laufendes Prog - loeschen
Beim Löschen eines Progs, das gerade läuft...
schiebt Windows da keine Meldung? [Bin gerade in der Arbeit sonst würd ich eh sofort nachsehen...] MfG andi |
@Andi,
Du hast in Deinem Profil BB-Code ausgeschaltet, schalte es bitte wieder ein, sonst wird das ncihts mit dem Quoten. Grüsse, Daniel :hi: |
Moin Andi,
dazu müsste es genügen, mit FindWindow das Fenster zu suchen (spielt keine Rolle ob es sichtbar ist), um an das Handle zu kommen (Klasse und Titel müsstest Du ja wissen, schliesslich hast Du das Programm ja geschrieben). Dann kannst Du an das Fenster WM_SYSCOMMAND mit SC_CLOSE oder WM_CLOSE schicken (via SendMessage), was das Programm dazu veranlassen sollte sich zu beenden. Wenn das erledigt ist, kannst Du es, wie Daniel B schon sagte, mit DeleteFile löschen. Vor dem Löschen würde ich allerdings abwarten, ob das Programm inzwischen beendet ist, so dass die EXE nicht mehr durch das System gesperrt ist (z.B. in einer mit Verzögerung ausgestatten Schleife versuchen die Datei zum Schreiben zu öffnen, geht das nicht, ist die Datei noch gesperrt). Sollte prinzipiell unter allen Systemen laufen, unter NT basierten könnte es aber passieren, dass die Rechte nicht ausreichen die Datei zu löschen. |
Zitat:
das Thema Autostart-Ordner hatte wir beide ja gestern erst. @Andi, schau Dir mal diesen Thread an. Da ist der Pfad für den Autostart-Ordner unter ME. ![]() Grüsse, Daniel :hi: |
Moin Daniel B,
Zitat:
|
Zitat:
Du musst es mir aber jedesmal so richtig auf die Nase binden. :oops: ;) GRüsse, Daniel :hi: |
Laufendes Prog schließen (schon wieder...)
Hallo, ich schon wieder. :roll:
Ich wollte nur nochmal nachfragen wie ich GENAU das Programm (Prog.exe) schließen kann obwohl ich kein fenster sehe... Habe zwar schon Infos bekommen... aber ganz klar ist mir das noch nicht. FindWindow( ??? , ??? ); SendMessage( ??? ); tut mir leid, dass ich solche Fragen stelle, aber in meiner Online Hilfe finde ich nichts brauchbares. Hab ausserdem das erste mal damit was zu tun... Hoffe Ihr verzeiht mir... :| |
Hi,
aus meiner PE-Hilfe: FindVCLWindow gibt das fensterorientierte Steuerelement an der angegebenen Position zurück. Unit Controls Kategorie Maussteuerung function FindVCLWindow(const Pos: TPoint): TWinControl; Beschreibung Mit FindVCLWindow können Sie das fensterorientierte Steuerelement, das sich an einer bestimmten Position befindet, ermitteln. Beispielsweise läßt sich mit FindVCLWindow das fensterorientierte Steuerelement ermitteln, auf dem sich der Mauszeiger befindet, wenn ein anderes Steuerelement aktuell alle Mausbotschaften abfängt. Der Parameter Pos bezeichnet die Position, innerhalb derer sich das zurückgegebene Steuerelement befinden muß. Wenn sich an dieser Stelle kein fensterorientiertes Steuerelement befindet, liefert FindVCLWindow den Wert nil zurück. SendAppMessage sendet eine Windows-Botschaft an die Anwendung. Unit Controls Kategorie Windows-Steuerelemente function SendAppMessage(Msg: Cardinal; WParam, LParam: Longint): Longint; Beschreibung Mit SendAppMessage können Sie eine Windows-Botschaft an das globale Anwendungsobjekt senden. Msg enthält den Windows-Botschaftscode. WParam enthät die W-Parameter der Botschaft. Deren Interpretation ist von dem Wert in Msg abhängig. LParam enthät die L-Parameter der Botschaft. Deren Interpretation ist von dem Wert in Msg abhängig. SendAppMessage gibt das von der Fensterprozedur der Anwendung bereitgestellte Ergebnis zurück. Wenn die Anwendung die Botschaft nicht behandelt, liefert SendAppMessage 0. Grüsse, Daniel :hi: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:00 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