Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programm aus Taskmanager und Autostart schliessen/loeschen (https://www.delphipraxis.net/1154-programm-aus-taskmanager-und-autostart-schliessen-loeschen.html)

andi_hauser 25. Okt 2002 18:37


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

Christian Seehase 25. Okt 2002 18:52

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?

andi_hauser 25. Okt 2002 19:09

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?

Luckie 25. Okt 2002 19:18

Re: details
 
Zitat:

Zitat von andi_hauser
noch Fragen?

Ja. Was soll der ganze Unsinn?

Daniel B 25. Okt 2002 19:24

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:

andi_hauser 25. Okt 2002 20:16

Re: details
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von andi_hauser
noch Fragen?

Ja. Was soll der ganze Unsinn?

will eine Art "uninstall.exe"-Basteln. darum...

[edit=Daniel B.]BBCode.On := True;[/edit]

andi_hauser 25. Okt 2002 20:20

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

Daniel B 25. Okt 2002 20:25

@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:

Christian Seehase 25. Okt 2002 20:27

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.

Daniel B 25. Okt 2002 20:37

Zitat:

Zitat von Christian Seehase
Wenn das erledigt ist, kannst Du es, wie Daniel B schon sagte, mit DeleteFile löschen.

Hallo Christian,

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.

http://www.delphipraxis.net/viewtopi...asc&highlight=

Grüsse, Daniel :hi:

Christian Seehase 25. Okt 2002 20:46

Moin Daniel B,

Zitat:

Zitat von Andi_Hauser
Wie ich in das Autostart-Verzeichis komme weiss ich (danke Eurer Hilfe)...

wie im Eingangsposting des Threads zu lesen war ;-)

Daniel B 25. Okt 2002 20:55

Zitat:

Zitat von Christian Seehase
wie im Eingangsposting des Threads zu lesen war ;-)

Hallo Chritian,

Du musst es mir aber jedesmal so richtig auf die Nase binden. :oops: ;)

GRüsse, Daniel :hi:

andi_hauser 25. Okt 2002 23:39

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... :|

Daniel B 25. Okt 2002 23:45

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