Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 00:54

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[HELP] Erkennen wenn Programm Beendet wird. (Task Manager etc)

Discussion on [HELP] Erkennen wenn Programm Beendet wird. (Task Manager etc) within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Jun 2012
Posts: 72
Received Thanks: 22
Exclamation [HELP] Erkennen wenn Programm Beendet wird. (Task Manager etc)

Wie mach ich das das mein tool mir eine MsgBox absendet wenn der Prozess Test.exe über den Task Manager geschlossen wird?

Hab das Problem mit MySQL. Register, Login und alles klappt nur wenn ich es über den Tast manager schließe führt er die Funktion _Logout() nicht aus wie kann man das ändern.

Danke im vorraus!
.SenSatioNx3' is offline  
Old 03/14/2014, 07:04   #2
 
alpines's Avatar
 
elite*gold: 60
Join Date: Aug 2009
Posts: 2,256
Received Thanks: 815
Du könntest mittels 2. au3 das überwachen, oder eine Gunktion bauen, die beim Neustart des Programmes ausspuckt, das es nicht richtig beendet wurde, oder du baust mal 'ne anständige Logout Funktion.
alpines is offline  
Thanks
1 User
Old 03/14/2014, 15:41   #3
 
elite*gold: 1000
Join Date: Apr 2012
Posts: 1,003
Received Thanks: 208
Was passiert denn in der Funktion Logout? Eventuell hilft hier sowas wie ein Timeout.
qkuh is offline  
Thanks
1 User
Old 03/14/2014, 19:53   #4
 
elite*gold: 0
Join Date: Mar 2014
Posts: 25
Received Thanks: 14
Du könntest ja ne .ini machen in der "true" oder "false" steht

Beispiel:


Code:
;Hier startet das Programm
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

If FileReadLine("name.ini",1) = "true" then
Msgbox(0,"","Normal beendet")
EndIf
If FileReadLine("name.ini",1) = "false" then
Msgbox(0,"","Anders beendet")
EndIf
If FileReadLine("name.ini") = "" Then
   MsgBox(0,"","Erststart")
EndIf

FileDelete("name.ini")
FileWrite("name.ini","false")


While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
		FileDelete("name.ini")
FileWrite("name.ini","true")
Exit

	EndSwitch
WEnd
Oder soetwas wie eine 2e .exe als Komponente benutzen
Code der zweiten .exe:

Code:
While 1
   If Not ProcessExists("hiername") Then
	  MsgBox(0,"","Du hast dich nicht ausgeloggt !")
	  ;(falls du willst hier noch ein Exit rein, falls sich das Programm beenden soll oder halt einen Neustart per ShellExecute("hiername")
   EndIf
WEnd
Quote:
Dann muss aber im Programmcode der 1en Exe stehen:

Case $GUI_EVENT_CLOSE
Processclose("hier name der 2ten exe")
Exit
Kannst falls du einen Logout Button hast das ganze ja nicht auf $GUI_EVENT_CLOSE Legen sondern auf den Login Button eben

Hoffe du ahst sowas gemeint xD
~JeSooS~ is offline  
Thanks
1 User
Old 03/14/2014, 20:03   #5
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
du hast glaub ih nicht verstanden wie man eine ini benutzt und erstellt
YatoDev is offline  
Thanks
1 User
Old 03/14/2014, 20:05   #6
 
elite*gold: 0
Join Date: Mar 2014
Posts: 25
Received Thanks: 14
Quote:
Originally Posted by »FlutterShy™ View Post
du hast glaub ih nicht verstanden wie man eine ini benutzt und erstellt
Das ist egal, deswegen hab ich z.B gesagt O.o

Es muss irgendeine Datei sein kann auch ne .deuddehudehwuöde Datei sein Hauptsache es steht was in der ersten zeile.

Mir ist die Dateiendung .ini einfach so zuerst in den Sinn gekommen also hab ich die benutzt. Ich mach mir doch jetzt keine Gedanken welche Dateiendung ich für ein Beispielscript nehme o.O
~JeSooS~ is offline  
Thanks
1 User
Old 03/14/2014, 20:09   #7
 
YatoDev's Avatar
 
elite*gold: 50
Join Date: Sep 2012
Posts: 3,841
Received Thanks: 1,462
solltest du da .ini ein bekanntes format ist und man für andere sachen die nicht in diesem format sind doch einfach .txt nehmen kann.
bei einer einzigen zahl lohnt sich vielleicht auch die registry oder halt eine unformatierte datei.
FileOpen zu benutzen wäre auch besser
YatoDev is offline  
Old 03/14/2014, 20:11   #8
 
elite*gold: 0
Join Date: Mar 2014
Posts: 25
Received Thanks: 14
Quote:
Originally Posted by »FlutterShy™ View Post
solltest du da .ini ein bekanntes format ist und man für andere sachen die nicht in diesem format sind doch einfach .txt nehmen kann.
bei einer einzigen zahl lohnt sich vielleicht auch die registry oder halt eine unformatierte datei.
FileOpen zu benutzen wäre auch besser
Naja in nem richtigem Script würd ich das auch nicht machen
Dashier hab ich in paar sek hingeschissen ^^
~JeSooS~ is offline  
Thanks
1 User
Old 03/14/2014, 20:17   #9
 
elite*gold: 0
Join Date: Jun 2012
Posts: 72
Received Thanks: 22
@alpines & @qkuh:
In Der Logout steht nur das In der MySQL Datenbank dann unter "Status" ONLINE oder OFFLINE stehen soll sodass man dann erkennt wer gerade die .exe benutzt.

Logout.php:
Code:
<?php
require_once('db_config.php');

mysql_connect($host, $user, $pass);

mysql_select_db($dbase);

$Passwort = mysql_real_escape_string($HTTP_GET_VARS['passwort']);

$result = mysql_query("SELECT * FROM User WHERE Benutzername='" . $Benutzername . "'");

$row = mysql_fetch_row($result);

$status = mysql_query("UPDATE INTO User SET `Status` = 'OFFLINE' WHERE Benutzername = $Benutzername");

mysql_query("UPDATE User SET Status = 'OFFLINE' WHERE Benutzername = '$Benutzername'");

if ($row)
{
    $Dbmd5Passwort = $row[1];
    )
	if (md5($Passwort) == $Dbmd5Passwort)     
        {
        echo 1;
            }
        else
        {
			echo 2;
            }
	}
else
{
    echo 0;
	}
?>
_Logout Funktion:

Code:
Func _Logout($sBenutzername = "", $sPasswort = "")
    $iRValue = _INetGetSource("http://www....de/logout.php?benutzername=" & $sBenutzername & "&passwort=" & $sPasswort)

    Switch $iRValue
        Case 0
            MsgBox(16, "Error", "Logout fehlgeschlagen!")
        Case 1
            MsgBox(32, "Info", "Erfolgreich Ausgeloggt!")
			Exit
        Case 2
            MsgBox(16, "Error", "Der Benutzername ist bereits Ausgeloggt!")
        Case 3
            MsgBox(16, "Error", "Es ist ein Unbekannter Fehler aufgetreten!")
    EndSwitch
EndFunc   ;==>_Logout
@qkuh:
Wie mit Timeout wie meinst du das?

@~JeSooS~:
Du meinst jetzt das bei jedem neustart der .exe die ini ausgelesen werden soll und ihn/sie drauf hinweisen soll?
.SenSatioNx3' is offline  
Old 03/14/2014, 20:20   #10
 
elite*gold: 0
Join Date: Mar 2014
Posts: 25
Received Thanks: 14
Quote:
Originally Posted by .SenSatioNx3' View Post
@alpines & @qkuh:
In Der Logout steht nur das In der MySQL Datenbank dann unter "Status" ONLINE oder OFFLINE stehen soll sodass man dann erkennt wer gerade die .exe benutzt.

Logout.php:
Code:
<?php
require_once('db_config.php');

mysql_connect($host, $user, $pass);

mysql_select_db($dbase);

$Passwort = mysql_real_escape_string($HTTP_GET_VARS['passwort']);

$result = mysql_query("SELECT * FROM User WHERE Benutzername='" . $Benutzername . "'");

$row = mysql_fetch_row($result);

$status = mysql_query("UPDATE INTO User SET `Status` = 'OFFLINE' WHERE Benutzername = $Benutzername");

mysql_query("UPDATE User SET Status = 'OFFLINE' WHERE Benutzername = '$Benutzername'");

if ($row)
{
    $Dbmd5Passwort = $row[1];
    )
	if (md5($Passwort) == $Dbmd5Passwort)     
        {
        echo 1;
            }
        else
        {
			echo 2;
            }
	}
else
{
    echo 0;
	}
?>
_Logout Funktion:

Code:
Func _Logout($sBenutzername = "", $sPasswort = "")
    $iRValue = _INetGetSource("http://www....de/logout.php?benutzername=" & $sBenutzername & "&passwort=" & $sPasswort)

    Switch $iRValue
        Case 0
            MsgBox(16, "Error", "Logout fehlgeschlagen!")
        Case 1
            MsgBox(32, "Info", "Erfolgreich Ausgeloggt!")
			Exit
        Case 2
            MsgBox(16, "Error", "Der Benutzername ist bereits Ausgeloggt!")
        Case 3
            MsgBox(16, "Error", "Es ist ein Unbekannter Fehler aufgetreten!")
    EndSwitch
EndFunc   ;==>_Logout
@qkuh:
Wie mit Timeout wie meinst du das?

@~JeSooS~:
Du meinst jetzt das bei jedem neustart der .exe die ini ausgelesen werden soll und ihn/sie drauf hinweisen soll?
Sozusagen oder eben die Zweite Variante mit der 2ten komponente
~JeSooS~ is offline  
Thanks
1 User
Old 03/14/2014, 20:24   #11
 
elite*gold: 0
Join Date: Jun 2012
Posts: 72
Received Thanks: 22
Gut aber jeder der ein bisschen ahnung von sowas hat weiß auch das die 2te .exe einen betimmten namen hat und diese einfach schließen kann oder würd das dann klappen wenn man in beide scripts den code einbindet aber das problem ist ja man kann keine 2 .exe gleichzeitig starten..
.SenSatioNx3' is offline  
Old 03/14/2014, 20:28   #12
 
elite*gold: 0
Join Date: Mar 2014
Posts: 25
Received Thanks: 14
Quote:
Originally Posted by .SenSatioNx3' View Post
Gut aber jeder der ein bisschen ahnung von sowas hat weiß auch das die 2te .exe einen betimmten namen hat und diese einfach schließen kann oder würd das dann klappen wenn man in beide scripts den code einbindet aber das problem ist ja man kann keine 2 .exe gleichzeitig starten..
Anfang des ersten scripts also das Main Programm:
ShellExecute(2te.exe)
Läuft schonmal die 2te exe
Code der Zweiten Exe einfach in die erste mit renihauen, blos den Namen ändern.
Schon überprüfen sich die dinger gegenseitig
~JeSooS~ is offline  
Thanks
1 User
Old 03/14/2014, 20:33   #13
 
elite*gold: 0
Join Date: Jun 2012
Posts: 72
Received Thanks: 22
Code:
ShellExecute("2.exe")

While 1
   If Not ProcessExists("2.exe") Then
	  MsgBox(0,"1.exe","Du hast dich nicht ausgeloggt!")
	  ShellExecute("2.exe")
   EndIf
WEnd
Code:
While 1
   If Not ProcessExists("1.exe") Then
	  MsgBox(0,"2.exe","Du hast dich nicht ausgeloggt!")
	  ShellExecute("1.exe")
   EndIf
WEnd
Und dabei dann noch mit dem speichern der .txt bzw .ini oder sonnst was ist für mich ausreichend.

Danke für eure hilfe bekommt jeder ein Thanks!
.SenSatioNx3' is offline  
Thanks
1 User
Old 03/15/2014, 23:33   #14



 
Asuramaru's Avatar
 
elite*gold: 20
The Black Market: 110/0/0
Join Date: Nov 2009
Posts: 2,256
Received Thanks: 1,570
Wenn es nur darum geht das der Logout nicht ausgeführt wird, kannst du auch alles vom Webserver regeln lassen.

Leg ne Session beim LogIn an die bei Inaktivität automatisch ausloggt.
(Script sollte regelmäßig etwas aufrufen um den Timer zurückzusetzen)

Alternativ schreib einfach in eine Spalte der Tabelle wann die letzte Aktivität stattgefunden hat und lass diese dann einfach überprüfen wenn du sehen willtst wer Online ist. (zB. Letzte Aktivität vor 10min ~> Offline)
Asuramaru is offline  
Reply

Tags
autoit problem


Similar Threads Similar Threads
Programm starten wenn Windows hochgefahren wird
03/02/2012 - AutoIt - 8 Replies
Hallo leute arbeite gerade an einem Projekt :D Also ich möchte in meinen Bot integrieren wenn ich ihn starte und dann eine Checkbox checked mache das wenn ich das Tool save in eine .ini ,dass das Programm automatisch gestartet wird wenn Windows hochgefahren wird :P Könnte das klappen ? Ich hoffe es mal schwer :D Danke für eure Hilfe !
task manager wird nicht angezeigt
07/20/2011 - Technical Support - 32 Replies
Mein Task-Manager wird nicht angezeigt wenn ich STRG+ALT+ENTF Drücke... wenn ich auf start gehe und da Taskmsgr eingebe und es ausführe steht da der taskmanager wurde vom admin entfernt.. ich bin administrator vom pc... kann mir wer helfen? Windows 7
[Tuturial] Was tuhen wenn Task Manager deaktiviert?
05/22/2011 - CrossFire - 14 Replies
Hey Leute. Fals euch irgend so ein billiger Hack den Task Manager deaktiviert hat, tut ihr das. 1. Downloadet euch Security Administrator 2. Wenn ihr Security Administrator installiert hat, startet euer PC neu (sehr wichtig) 3. Nun öffnet ihr Security Administrator und geht auf "Suche" und gebt Task Manager ein. http://imageshack.us/m/810/708/taskmanagerf.jpg 4. Macht das Häkchen weg dort wo es ist.
Hmm Aapplikation wird beendet wenn ich das
10/04/2005 - Main - 1 Replies
...Terminal aus mache. Also ich folgendes problem auf linux, sobald ich z.b einen server eröffnet habe in einem terminal und dann das terminal zu machen beendet er auch automatisch den server... Mit crontabs probier ich gerade rum ab anscheinend muss dafür auch das terminal auf bleiben.



All times are GMT +1. The time now is 00:54.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.