|
You last visited: Today at 23:03
Advertisement
Programm schließen verhindern
Discussion on Programm schließen verhindern within the AutoIt forum part of the Coders Den category.
10/03/2013, 17:14
|
#1
|
elite*gold: 400
Join Date: Jun 2011
Posts: 513
Received Thanks: 101
|
Programm schließen verhindern
Hallihallo,
ich habe folgenden Problem:
Ich möchte das mein Programm von einem externen Programmen nicht geschlossen werden kann. z.B.:
Script1 soll "geschützt" sein.
Script2 soll Script1 schließen. Aber da Script1 "geschützt" ist, soll es nicht geschlossen werden.
Gibt es da einen expliziten Befehl oder wie stelle ich das an?
MfG
|
|
|
10/03/2013, 17:37
|
#2
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Schnell gegooglet und gefundne:
Code:
Func _ProcessHide($PID)
DllCall("HideProcessNT.dll","long","HideNtProcess","dword",$PID)
EndFunc
_ProcessHide(@AutoItPID)
Bin mir nicht sicher obs klappt, musst du ausprobieren.
|
|
|
10/03/2013, 18:14
|
#3
|
elite*gold: 400
Join Date: Jun 2011
Posts: 513
Received Thanks: 101
|
Das ist leider nicht das was ich suche...
... bestes Beispiel ist Avast. Geht man in den TaskManager und will der AvastProzess beenden wird der zugriff verweigert. Auch wenn ich über AutiIt den Prozess beenden will, bleibt Avast einfach offen.
|
|
|
10/04/2013, 16:24
|
#4
|
elite*gold: 0
Join Date: Jan 2013
Posts: 426
Received Thanks: 129
|
benutz ein zweiten prozess (welchen du am besten mit der oben gezeigten dll versteckst) welcher immer abfragt ob der andere prozess zu ist.
beispiel:
Programm 1:
Code:
Adlibregister("Programm2sicherung",20)
Dein code hier
Func Programm2sicherung()
If Processexists("Programm2.exe")=0 then run("Programm2.exe","Pfad zum programm")
EndFunc
Programm 2:
Code:
#NoTrayIcon
While 1
If Processexists("Programm.exe")=0 then run("Programm.exe","Pfad zum programm")
WEnd
|
|
|
10/04/2013, 16:26
|
#5
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Das Problem ist aber, wenn man den Prozess suspended (pausiert und nicht beendet) dann merkt der andere Prozess das nicht, Suspenden kann man umgehen in dem man ständig Daten in eine Datei schreibt, z.B. eine Textdatei wo immer die Sekunden reingeschrieben werden, wenn der eine Prozess suspended wird, dann sieht das der andere, das nicht mehr in die Datei geschrieben wird und kann den suspendeten Prozess neustarten.
Aber wenn man diese Methode nimmt, dann muss man ständig Backups machen wo man die Arbeit wiederaufnehmen kann. Also so, das wenn das Programm geschlossen wird eine Weiterarbeit erfolgreich ist und nicht von Anfang an wieder beginnen muss.
|
|
|
10/04/2013, 17:32
|
#6
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Man kann den Zustand (Aktiv, Inaktiv) jedes Prozesses ohne Umwege überprüfen. Eine Datei mit Daten vollzumüllen ist nicht nötig.
Der 2. Parameter der Run() Funktion gibt übrigens NICHT den Dateipfad an. Richtig währe:
Code:
Run("P:\fad\zum\programm\Programm2.exe")
|
|
|
10/04/2013, 17:33
|
#7
|
elite*gold: 0
Join Date: Jan 2013
Posts: 426
Received Thanks: 129
|
wie wärs mit einer zusätzlichen tcp-sicherung? also im sinne von: antwortet der andere nicht, dann versuche ich ihn zu resumen. klappt das auch nicht, dann starte ich ihn neu.
|
|
|
10/04/2013, 18:05
|
#8
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Quote:
Originally Posted by KDeluxe
Man kann den Zustand (Aktiv, Inaktiv) jedes Prozesses ohne Umwege überprüfen. Eine Datei mit Daten vollzumüllen ist nicht nötig.
Der 2. Parameter der Run() Funktion gibt übrigens NICHT den Dateipfad an. Richtig währe:
Code:
Run("P:\fad\zum\programm\Programm2.exe")
|
Richtig wäre wäre und nicht währe.
Das ist keine schlechte Idee mit dem TCP Server, aber das Problem ist, das mit den Backups.
Wenn das Programm doch unerwartet geschlossen wird, dann muss das Programm das geschlossen wurde seine Arbeit wiederaufnehmen können, ohne Sachen zu wiederholen.
|
|
|
10/04/2013, 22:19
|
#9
|
elite*gold: 400
Join Date: Jun 2011
Posts: 513
Received Thanks: 101
|
Quote:
Originally Posted by FacePalmMan
benutz ein zweiten prozess (welchen du am besten mit der oben gezeigten dll versteckst) welcher immer abfragt ob der andere prozess zu ist.
beispiel:
Programm 1:
Code:
Adlibregister("Programm2sicherung",20)
Dein code hier
Func Programm2sicherung()
If Processexists("Programm2.exe")=0 then run("Programm2.exe","Pfad zum programm")
EndFunc
Programm 2:
Code:
#NoTrayIcon
While 1
If Processexists("Programm.exe")=0 then run("Programm.exe","Pfad zum programm")
WEnd
|
Da gibts leider ein Problem ...
Programm 1:
Code:
AdlibRegister("_Check2", 20)
While 1 = 1
ToolTip("Test1 ist aktiv", 0, 0)
WEnd
Func _Check2()
If ProcessExists("Test2.exe") = 0 Then Run("P:\fad\zum\programm\Test2.exe")
EndFunc
Programm 2:
Code:
AdlibRegister("_Check1", 20)
While 1 = 1
ToolTip("Test2 ist aktiv", 0, 20)
WEnd
Func _Check1()
If ProcessExists("Test1.exe") = 0 Then Run("P:\fad\zum\programm\Test1.exe")
EndFunc
Code:
ProcessClose("test1.exe")
ProcessClose("test2.exe")
|
|
|
10/04/2013, 22:47
|
#10
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Das ist doch falsch, wenn test1 beendet wird, dann reagiert test2 sofort und startet test1 neu!
Du könntest nur beide Beenden indem du test1 suspendest und dann test2 schließt und anschließend test1.
|
|
|
10/05/2013, 00:34
|
#11
|
elite*gold: 400
Join Date: Jun 2011
Posts: 513
Received Thanks: 101
|
Ich hab das vorhin getestet ...
|
|
|
10/05/2013, 08:42
|
#12
|
elite*gold: 0
Join Date: Jan 2013
Posts: 426
Received Thanks: 129
|
ersetz einfach beim adlibregister die 20 durch eine 1. dann ist alles besser.
wenn du dazu noch den zweiten prozess mit der vorhin genannten dll unsichtbar machst, dann ist dein programm sehr viel schwerer zu schließen (ein AutoItOnExitRegister würde vielleicht noch zusätzlichen "schutz" bieten)
|
|
|
10/05/2013, 12:50
|
#13
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Das zieht aber an der Performance des Rechners jede Millisekunde danach zu prüfen ob der Prozess noch aktiv ist, die Methode ist recht unzuverlässig.
|
|
|
10/05/2013, 13:14
|
#14
|
elite*gold: 400
Join Date: Jun 2011
Posts: 513
Received Thanks: 101
|
Quote:
Originally Posted by FacePalmMan
ersetz einfach beim adlibregister die 20 durch eine 1. dann ist alles besser. [...]
|
Funktioniert auch mit 1 Ms auch nicht. :/
€: Wie macht Avast das eigentlich...?
|
|
|
10/05/2013, 13:25
|
#15
|
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
|
Du könntest deinen Prozess auch als Dienst eintragen (Services.au3) dann ist das schonmal schwerer so etwas beendet zu bekommen.
|
|
|
 |
|
Similar Threads
|
Programm reagiert nicht (will aber nicht über Taskmanager schließen)
03/16/2013 - Technical Support - 1 Replies
Moin Leute,
Ich habe ein großes Problem ich habe ein Lied bei Fl Studio erstellt und wollte es rendern, weil es eben halt fertig ist. Jetzt bleibt er einfach hängen und kann nichts anderes machen außer den Prozess im Taskmanager schließen. Ich will es aber nicht weil sonst die ganze arbeit umsonst wäre.
Was kann ich tun?
|
Programm schließen/close the program
08/09/2011 - Rappelz - 5 Replies
null
|
Endgültiger PBC-Fix: Meldung "Programm schließen" deaktivieren!
11/28/2010 - Diablo 2 - 3 Replies
Hat sich erledigt.
|
Schließen von Fullscreen bei Youtube usw verhindern
04/09/2008 - Main - 6 Replies
Hey,
Ich habe folgendes Problem und wollte fragen, ob jemand von euch weiß, wie man das lösen könnte:
Hab 2 Bildschirme am PC und wenn ich auf einem der beiden Bildschirme zB ein Youtube Video auf Fullscreen mach und dann auf dem anderen Bildschirm irgendwo klicke, geht das Video wieder aus dem Fullscreen-Modus raus :(
Hoffe ich konnte es verständlich ausdrücken ;) Ich suche halt nach einer Methode, dass das Fullscreen bleibt während ich aufm anderen Bildschirm was mache..
Liebe...
|
tool/firewall um Upload von Programm zu verhindern
12/04/2006 - Main - 6 Replies
Hi!!!
Wie der Titel bereits sagt, bin ich auf der suche nach einem tool, dass den Upload eines X-Beliebigen Programmes blockt, aber den download zulässt... gibts sowas??
Währ prima wenn einer da ne ahnung hat :)
Gruß, |^3!j!|\|
|
All times are GMT +1. The time now is 23:04.
|
|