1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Lottich

Beiträge von Lottich

  • Passwortdatenbank mit automatischem Einloggen?

    • Lottich
    • 23. Juni 2016 um 09:21

    heisst das, du willst die Exe testen?
    denn so, wie der Code oben geschrieben ist, wird das bei dir durch die fehlende LFS.au3 nicht lauffähig sein.

  • Passwortdatenbank mit automatischem Einloggen?

    • Lottich
    • 23. Juni 2016 um 09:10

    Hallo,

    das geht mir genauso. Daher hab ich mir ein Tool geschrieben, dass mir das Ganze erleichtert.
    Es wird eine verschlüsselte Datei angelegt, mit allen Infos zu einer Website, die zum anmelden/einloggen nötig sind:
    - Titel --> damit man weiss, was für eine Website es ist
    - Adresse --> Die URL zum LogIn
    - Username --> Name zum Anmelden
    - Passwort --> Passwort
    - last Modified --> Datum an dem es angelegt bzw das letzte mal das Passwort geändert wurde

    Aus einer DropDownListe wird der Titel gewählt und die Tasten F1, F2 und F3 mit der URL, Username und Passwort belegt.
    Dann braucht man nur noch F1 drücken und die Website wird aufgerufen. Anschliessend wählt man per Maus die nötigen Eingabefelder und drückt entsprechend F2 und F3...

    Aus Sicherheitsgründen lässt sich das Programm auch nur unter bestimmten Voraussetzungen starten
    (Strg + Shift müssen gedrückt sein, wenn man es startet)

    Du kannst meine Vorlage verwenden, allerdings wirst du das zwingend umschreiben müssen, weil ich meine eigene Include Datei nicht rausrücken werde (LFS.au3).

    hier ist die "Vorlage"
    AutoIt
    #include <GUIConstants.au3>
    #include <Array.au3>
    #include <Misc.au3>
    #include <LFS.au3>
    _SpecLaunch(True)
    Opt("GUIOnEventMode", 1)
    HotKeySet("{F1}", "_text")
    HotKeySet("{F2}", "_text")
    HotKeySet("{F3}", "_text")
    Global $FileName = '_Security.LFS'
    ;~ Global $TheFile = @DesktopDir & "/" & $FileName, $aData, $sTitel, $sAdressen
    Global $TheFile = @scriptDir & "/" & $FileName, $aData, $sTitel, $sAdressen
    #Region :::: Funktionen
    If Not FileExists($TheFile) Then
    	_LFS_Create($TheFile)
    Else
    	If _LFS_Check($TheFile) = -1 Then
    		FileMove($TheFile, "C:\_LFS_BACKUP_\" & "--ERROR--" & @MDAY & "." & @MON & "." & @YEAR & "--" & @HOUR & ":" & @MIN & ":" & @SEC & ".LFS", 8)
    		_LFS_Create($TheFile)
    	EndIf
    EndIf
    Global $hGUI_1 = GUICreate("PW Management", 815, 30, -1, 0, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW, $WS_EX_APPWINDOW))
    GUISetBkColor(0x000000)
    GUISetFont(12, 600, 0, "MS Sans Serif")
    Global $txt010 = "F1: Adresse       F2: Username       F3: PW", $txt020 = "", $txt03 = "aktivieren", $txt04 = "neu", $txt05 = "edit", $txt06 = "exit"
    Global $label = GUICtrlCreateLabel($txt010, 005, 5, 340, 20)
    Global $combo = GUICtrlCreateCombo($txt020, 350, 1, 180, 23)
    Global $activ = GUICtrlCreateButton($txt03, 540, 3, 100, 23)
    Global $adddd = GUICtrlCreateButton($txt04, 650, 3, 040, 23)
    Global $edito = GUICtrlCreateButton($txt05, 700, 3, 050, 23)
    Global $exito = GUICtrlCreateButton($txt06, 760, 3, 050, 23)
    GUICtrlSetColor($label, 0x3bdf2c)
    GUICtrlSetState($activ, $GUI_DISABLE)
    GUICtrlSetOnEvent($activ, "_reaktivieren")
    GUICtrlSetOnEvent($adddd, "_neu")
    GUICtrlSetOnEvent($edito, "_bearbeiten")
    GUICtrlSetOnEvent($exito, "_beenden")
    GUISetState(@SW_SHOW)
    $aData = _LFS_GetData_2D($TheFile)
    While Sleep(20)
    WEnd
    Func _beenden()
    	Exit
    EndFunc   ;==>_beenden
    Func _text()
    	Local $webseite = "", $username = "", $passwort = "", $lastmodified, $ret
    	$index = _ArraySearch($aData, GUICtrlRead($combo))
    	If $index <> -1 Then
    		$webseite = $aData[$index][1]
    		$username = $aData[$index][2]
    		$passwort = $aData[$index][3]
    		$lastmodified = $aData[$index][4]
    	EndIf
    	GUICtrlSetState($combo, $GUI_DISABLE)
    	GUICtrlSetState($activ, $GUI_ENABLE)
    	If @Compiled Then
    		If _IsPressed(70) Then ShellExecute($webseite) ;==> Website
    		If _IsPressed(71) Then Send($username) ;==> Username
    		If _IsPressed(72) Then Send($passwort) ;==> Passwort
    	Else
    		If _IsPressed(70) Then MsgBox(0, "", $webseite) ;==> Website
    		If _IsPressed(71) Then MsgBox(0, "", $username) ;==> Username
    		If _IsPressed(72) Then MsgBox(0, "", $passwort) ;==> Passwort
    	EndIf
    EndFunc   ;==>_text
    Func _textedit()
    	Local $webseite = "", $username = "", $passwort = "", $lastmodified, $ret
    	$index = _ArraySearch($aData, GUICtrlRead($combo))
    	If $index <> -1 Then
    		$webseite = $aData[$index][1]
    		$username = $aData[$index][2]
    		$passwort = $aData[$index][3]
    		$lastmodified = $aData[$index][4]
    	EndIf
    	$ret = GUICtrlRead($combo) & $_LFS_SPLITTER & $webseite & $_LFS_SPLITTER & $username & $_LFS_SPLITTER & $passwort & $_LFS_SPLITTER & $lastmodified
    	Return $ret
    EndFunc   ;==>_text
    Func _reaktivieren()
    	GUICtrlSetState($combo, $GUI_ENABLE)
    	GUICtrlSetState($activ, $GUI_DISABLE)
    EndFunc   ;==>_reaktivieren
    Func _SpecLaunch($var = False)
    	If $var = True Then
    		If @Compiled Then
    			If Not _IsPressed(10) Then
    				Exit MsgBox(16, "Abbruch 1!", "Ihnen fehlt die Berechtigung," & @CRLF & "um dieses Programm ausführen zu dürfen!")
    			Else
    				If Not _IsPressed(11) Then Exit MsgBox(16, "Abbruch 2!", "Ihnen fehlt die Berechtigung," & @CRLF & "um dieses Programm ausführen zu dürfen!")
    			EndIf
    		EndIf
    	EndIf
    EndFunc   ;==>_SpecLaunch
    Func _LFS_GetData_2D($sFile)
    	$sTitel = ""
    	$sAdressen = ""
    	GUICtrlSetData($combo, "")
    	Local $aData2 = _LFS_GetData($sFile), $getstring, $Splitter = $_LFS_SPLITTER
    	For $i = 1 To $aData2[0][0]
    		If $i < $aData2[0][0] Then $sTitel &= $aData2[$i][0] & "|"
    		If $i = $aData2[0][0] Then $sTitel &= $aData2[$i][0]
    		If $i < $aData2[0][0] Then $sAdressen &= $aData2[$i][1] & $Splitter
    		If $i = $aData2[0][0] Then $sAdressen &= $aData2[$i][1]
    	Next
    	GUICtrlSetData($combo, $sTitel)
    	Return $aData2
    EndFunc   ;==>_LFS_GetData_2D
    Func _neu()
    	Opt("GUIOnEventMode", 0)
    	GUISetState(@SW_DISABLE, $hGUI_1)
    	$aData = _LFS_GetData_2D($TheFile)
    	Local $newText = "", $newText_1 = "", $newText_2 = "", $newText_3 = "", $newText_4 = "", $errorcheck = ""
    	Local $hGUI_2 = GUICreate("Eintrag hinzu fürgen", 300, 160)
    	GUISetFont(10)
    	GUICtrlCreateLabel("Titel", 10, 015, 69, 25)
    	GUICtrlCreateLabel("Adresse", 10, 045, 69, 25)
    	GUICtrlCreateLabel("Username", 10, 075, 69, 25)
    	GUICtrlCreateLabel("Passwort", 10, 105, 69, 25)
    	If @Compiled Then
    		Local $input01 = GUICtrlCreateInput("", 80, 010, 210, 25)
    		Local $input02 = GUICtrlCreateInput("", 80, 040, 210, 25)
    		Local $input03 = GUICtrlCreateInput("", 80, 070, 210, 25)
    		Local $input04 = GUICtrlCreateInput("", 80, 100, 210, 25)
    	Else
    		Local $input01 = GUICtrlCreateInput("Test Header", 80, 010, 210, 25)
    		Local $input02 = GUICtrlCreateInput("Test Adresse", 80, 040, 210, 25)
    		Local $input03 = GUICtrlCreateInput("Test Username", 80, 070, 210, 25)
    		Local $input04 = GUICtrlCreateInput("Test Passwort", 80, 100, 210, 25)
    	EndIf
    	Local $button01 = GUICtrlCreateButton("übernehmen", 30, 130, 100, 25)
    	Local $button02 = GUICtrlCreateButton("abbrechen", 170, 130, 100, 25)
    	GUISetState(@SW_SHOW, $hGUI_2)
    	While Sleep(50)
    		Switch GUIGetMsg()
    			Case $GUI_EVENT_CLOSE, $button02
    				ExitLoop
    			Case $button01
    				$errorcheck = GUICtrlRead($input01)
    				If $errorcheck = "" Then
    					MsgBox(0, "Fehler 1/4", "Das Titelfeld ist leer. Muss geändert werden.")
    					ControlFocus("", "", $input01)
    					$newText_1 = ""
    				Else
    					If StringInStr($sTitel, $errorcheck) Then
    						MsgBox(0, "Fehler 1/4 -- B", "Der Titel ist bereits vergeben." & @CRLF & "Wähle einen anderen.")
    						ControlFocus("", "", $input01)
    					Else
    						$newText_1 = $errorcheck & $_LFS_SPLITTER
    					EndIf
    				EndIf
    				$errorcheck = GUICtrlRead($input02)
    				If $errorcheck = "" Then
    					MsgBox(0, "Fehler 2/4", "Das Adressfeld ist leer. Muss geändert werden.")
    					ControlFocus("", "", $input02)
    					$newText_2 = ""
    				Else
    					If StringInStr($sAdressen, $errorcheck) Then
    						MsgBox(0, "Fehler 2/4 -- B", "Die Adresse ist bereits vergeben." & @CRLF & "Wähle eine andere.")
    						ControlFocus("", "", $input02)
    					Else
    						$newText_2 = $errorcheck & $_LFS_SPLITTER
    					EndIf
    				EndIf
    				$errorcheck = GUICtrlRead($input03)
    				If $errorcheck = "" Then
    					MsgBox(0, "Fehler 3/4", "Das Usernamefeld ist leer. Muss geändert werden.")
    					ControlFocus("", "", $input03)
    					$newText_3 = ""
    				Else
    					$newText_3 = $errorcheck & $_LFS_SPLITTER
    				EndIf
    				$errorcheck = GUICtrlRead($input04)
    				If $errorcheck = "" Then
    					MsgBox(0, "Fehler 4/4", "Das Passwortfeld ist leer. Muss geändert werden.")
    					ControlFocus("", "", $input04)
    					$newText_4 = ""
    				Else
    					$newText_4 = $errorcheck & $_LFS_SPLITTER
    				EndIf
    				If $newText_1 <> "" And $newText_2 <> "" And $newText_3 <> "" And $newText_4 <> "" Then
    					$newText = $newText_1 & $newText_2 & $newText_3 & $newText_4 & @MDAY & "." & @MON & "." & @YEAR
    					_LFS_AddData($TheFile, $newText)
    					$aData = _LFS_GetData_2D($TheFile)
    					ExitLoop
    				EndIf
    		EndSwitch
    	WEnd
    	GUIDelete($hGUI_2)
    	Opt("GUIOnEventMode", 1)
    	GUISetState(@SW_ENABLE, $hGUI_1)
    EndFunc   ;==>_neu
    Func _bearbeiten()
    	Local $editme = _textedit(), $parts
    	$parts = StringSplit($editme, $_LFS_SPLITTER)
    	Opt("GUIOnEventMode", 0)
    	GUISetState(@SW_DISABLE, $hGUI_1)
    	Local $newText = "", $newText_1 = "", $newText_2 = "", $newText_3 = "", $newText_4 = "", $errorcheck = ""
    	Local $hGUI_2 = GUICreate("Eintrag bearbeiten", 300, 200), $hopodertop
    	GUISetFont(10)
    	GUICtrlCreateLabel("Titel", 10, 015, 69, 25)
    	GUICtrlCreateLabel("Adresse", 10, 045, 69, 25)
    	GUICtrlCreateLabel("Username", 10, 075, 69, 25)
    	GUICtrlCreateLabel("Passwort", 10, 105, 69, 25)
    	GUICtrlCreateLabel("zuletzt geändert am   " & $parts[5], 10, 170, 200, 25)
    	Local $input01 = GUICtrlCreateInput($parts[1], 80, 010, 210, 25)
    	Local $input02 = GUICtrlCreateInput($parts[2], 80, 040, 210, 25)
    	Local $input03 = GUICtrlCreateInput($parts[3], 80, 070, 210, 25)
    	Local $input04 = GUICtrlCreateInput($parts[4], 80, 100, 210, 25)
    	Local $button01 = GUICtrlCreateButton("übernehmen", 30, 130, 100, 25)
    	Local $button02 = GUICtrlCreateButton("abbrechen", 170, 130, 100, 25)
    	Local $button04 = GUICtrlCreateButton("erase", 220, 170, 50, 25)
    	Local $button03 = GUICtrlCreateCheckbox("", 280, 170, 20, 20)
    	If Not _IsChecked($button03) Then GUICtrlSetState($button04, $GUI_DISABLE)
    
    
    	GUISetState(@SW_SHOW, $hGUI_2)
    	While Sleep(50)
    		Switch GUIGetMsg()
    			Case $GUI_EVENT_CLOSE, $button02
    				ExitLoop
    			Case $button01
    				$errorcheck = GUICtrlRead($input01)
    				If $errorcheck = "" Then
    					MsgBox(0, "Fehler 1/4", "Das Titelfeld ist leer. Muss geändert werden.")
    					ControlFocus("", "", $input01)
    					$newText_1 = ""
    				Else
    					$newText_1 = $errorcheck & $_LFS_SPLITTER
    				EndIf
    				$errorcheck = GUICtrlRead($input02)
    				If $errorcheck = "" Then
    					MsgBox(0, "Fehler 2/4", "Das Adressfeld ist leer. Muss geändert werden.")
    					ControlFocus("", "", $input02)
    					$newText_2 = ""
    				Else
    					$newText_2 = $errorcheck & $_LFS_SPLITTER
    				EndIf
    				$errorcheck = GUICtrlRead($input03)
    				If $errorcheck = "" Then
    					MsgBox(0, "Fehler 3/4", "Das Usernamefeld ist leer. Muss geändert werden.")
    					ControlFocus("", "", $input03)
    					$newText_3 = ""
    				Else
    					$newText_3 = $errorcheck & $_LFS_SPLITTER
    				EndIf
    				$errorcheck = GUICtrlRead($input04)
    				If $errorcheck = "" Then
    					MsgBox(0, "Fehler 4/4", "Das Passwortfeld ist leer. Muss geändert werden.")
    					ControlFocus("", "", $input04)
    					$newText_4 = ""
    				Else
    					$newText_4 = $errorcheck & $_LFS_SPLITTER
    				EndIf
    				If $newText_1 <> "" And $newText_2 <> "" And $newText_3 <> "" And $newText_4 <> "" Then
    					$newText = $newText_1 & $newText_2 & $newText_3 & $newText_4 & @MDAY & "." & @MON & "." & @YEAR
    					_BackUp()
    					_LFS_ReplaceData($TheFile, $editme, $newText)
    					$aData = _LFS_GetData_2D($TheFile)
    					ExitLoop
    				EndIf
    			Case $button03
    				If _IsChecked($button03) Then
    					GUICtrlSetState($button04, $GUI_ENABLE)
    				Else
    					GUICtrlSetState($button04, $GUI_DISABLE)
    				EndIf
    			Case $button04
    				If MsgBox(4, "Datensatz wirklich löschen?", "Soll dieser Datensatz wirklich gelöscht werden?"&@CRLF& _
    					"Dieser Vorgang kann NICHT rückgängig gemacht werden!") = 6 Then
    					_BackUp()
    					_LFS_RemoveData($TheFile, $editme)
    					$aData = _LFS_GetData_2D($TheFile)
    					ExitLoop
    				EndIf
    		EndSwitch
    	WEnd
    	GUIDelete($hGUI_2)
    	Opt("GUIOnEventMode", 1)
    	GUISetState(@SW_ENABLE, $hGUI_1)
    EndFunc   ;==>_bearbeiten
    Func _IsChecked($idControlID)
    	Return BitAND(GUICtrlRead($idControlID), $GUI_CHECKED) = $GUI_CHECKED
    EndFunc   ;==>_IsChecked
    Func _BackUp()
    	Local $Backup = "C:\_LFS_BACKUP_\" & "BACKUP " & @MDAY & "." & @MON & "." & @YEAR & "   Uhrzeit " & @HOUR & " h " & @MIN & " min " & @SEC & " sec.LFS"
    	MsgBox(0,"",$Backup)
    	FileCopy($TheFile, $Backup, 8)
    EndFunc
    #EndRegion
    ; >>> End Of File <<< ;
    Alles anzeigen

    Alles was mit _LFS_ beginnt muss geändert werden.

    Aber wenn du es nicht nutzen willst, gibt es dir vielleicht eine Idee wie du dein Vorhaben angehen kannst.
    ODER ich geb dir die fertige Exe. Allerdings wirst du die selber auf Viren oder sowas testen müssen. hab sowas noch nie gemacht bei Virustotal, oder welche Plattformen es auch immer dafür gibt.
    Bleibt dir Überlassen :P

    MfG Lo..

  • Ich drehe durch ! [arrays vergleichen]

    • Lottich
    • 27. Mai 2016 um 21:59

    hey, mal von deinen "Fehlern" im Code (Arrays nicht per Global/Dim deklariert und einer unbekannten msg-Funktion) abgesehen, funktioniert das Script schon so, wie es soll.

    hab hier noch ein weiteres Beispiel für dich um dir das Vergleichen weiter zu verdeutlichen. Vielleicht hilft es dir ja, besser zu Verstehen.

    AutoIt
    Dim $Zahl_1[3] = [1, 5, 4]
    Dim $Zahl_2[3] = [2, 3, 4]
    
    
    For $i = 0 To UBound($Zahl_1) -1
    	_Zahlenvergleich($Zahl_1[$i], $Zahl_2[$i])
    Next
    
    
    
    
    Func _Zahlenvergleich($var1, $var2)
    	If $var1 < $var2 Then
    		Return MsgBox(0,"","Zahl_1 = " & $var1 &@CRLF& "Zahl_2 = " & $var2 &@CRLF&@CRLF& "Zahl_1 ist kleiner als Zahl_2")
    	ElseIf $var1 > $var2 Then
    		Return MsgBox(0,"","Zahl_1 = " & $var1 &@CRLF& "Zahl_2 = " & $var2 &@CRLF&@CRLF& "Zahl_1 ist größer als Zahl_2")
    	Else
    		Return MsgBox(0,"","Zahl_1 = " & $var1 &@CRLF& "Zahl_2 = " & $var2 &@CRLF&@CRLF& "Zahl_1 und Zahl_2 sind gleich")
    	Endif
    EndFunc
    Alles anzeigen

    Edit: ich war zu langsam....

  • AutoItWrapper produziert Fehler: LastError:110:

    • Lottich
    • 11. Mai 2016 um 18:31

    schau mal in der Hilfe nach #pragma ;)
    könnte sein, dass es damit klappt. Hatte auch mal Probleme mit den Wrapper_Res Kram. Irgendwann bin ich auf Pragma gestossen und damit hats bei mir geklappt.

  • Fenster schließen falls es kommt

    • Lottich
    • 10. Mai 2016 um 21:28

    Kein Ding, wir haben alle klein angefangen xD
    Und ein Frischling bin ich auch noch ^^

    Hab mein Code nun eklärt in Post 4

    Link für Scrollfaule

    Dein Rückgabeproblem kann ich jetzt nicht lösen. Die Erklärung würde mir jetzt zu lange dauern. Muss ins Nest.
    gn8

  • Fenster schließen falls es kommt

    • Lottich
    • 10. Mai 2016 um 21:06

    OMG... Was ich auf den ersten Blick sagen kann, ist dass du in Zeile 21 einen Rückgabewert erwartest, der NIE 1 sein wird.
    Denn du hast in deiner Funktion keine Rückgaben definiert.

    PS : Ich werde jetzt meinen Code besser beschreiben.

  • Fenster schließen falls es kommt

    • Lottich
    • 10. Mai 2016 um 20:28

    Habe mir nochmal gedanken drüber gemacht und die While-Schleife verworfen...

    AutoIt
    Dim $Array_Titel[4] = ["Titel 1", "Titel 2", "Titel 3", "Titel 4"]
    AdlibRegister("Fensterschliesser", 1000)
    
    
    
    
    Func Fensterschliesser()
    	For $i = 0 to UBound($Array_Titel) -1
    		If WinExists($Array_Titel[$i]) Then WinClose($Array_Titel[$i])
    	Next
    EndFunc
    Alles anzeigen

    Die ersten beiden Zeilen packst du am Anfang deines Scripts und die Funktion ans Scriptende.

    Kurze Erläuterung:
    Zeile 1 :: Liste der Fensternamen. Die 4 ist die Anzahl der eingetragenen Namen. Das Muster sollte selbsterklärend sein ^^
    Zeile 2 :: Dieser Befehl sorgt dafür, dass die Funktion 1 mal pro Sekunde aufgerufen wird.
    Im Idealfall packst du diese Zeile dorthin, wo du anfängst die Fensterprüfung zu brauchen. Wenn der Schritt erreicht ist, wo du das nicht mehr brauchst, schreib in der nächsten Zeile
    AdlibUnRegister("Fensterschliesser"). Das beendet die sekündliche Funktionsausführung.

    Zur Funktion:
    Zeile 6 :: $Array_Titel ist, wie der Name es schon sagt ein Array. Eine Variable, mit mehr als nur 1 Element als Inhalt.
    Ubound($Array_Titel) -1 gibt die Anzahl der Elemente aus diesem Array zurück. Da das Array auf 0 basiert, müssen wir bei 0 anfangen zu zählen.

    Zeile 7 :: Die For-Next Schleife geht nun Schritt für Schritt die Namen durch, die in dem Array vorhanden sind. Also erst "Titel 1", dann "Titel 2" usw bis der letzte Titel durch ist.
    $Array_Titel[$i] steht also erst für $Array_Titel[0], dann für $Array_Titel[1], danach $Array_Titel[2] und dann für $Array_Titel[3]
    das entspricht "Titel 1", "Titel 2", "Titel 3" und "Titel 4"

    Zeile 8 :: sagt nur, dass die Schleife erneut durchlaufen werden soll, wobei $i um 1 erhöht wird, bis das Limit erreicht ist ( dieses Ubound -1)

    Ich hoffe, du verstehst nun, was mein Beispiel macht :)

  • Fenster schließen falls es kommt

    • Lottich
    • 10. Mai 2016 um 20:06

    Ja, mit der While-Schleife lässt sich das recht gut lösen.

    Hier mal ein Beispiel
    AutoIt
    While 1
    	If WinExists("Titel 1") Then WinClose("Titel 1")
    	If WinExists("Titel 2") Then WinClose("Titel 2")
    	If WinExists("Titel 3") Then WinClose("Titel 3")
    	If WinExists("Titel 4") Then WinClose("Titel 4")
    	Sleep(1000)	; lässt das Script 1 Sekunde pausieren um Prozessorauslastung zu minimieren,
    				; sonst würden die Abfragen permanent laufen.
    WEnd
    
    
    ; oder diese Variante
    
    
    Dim $Array_Titel[4] = ["Titel 1", "Titel 2", "Titel 3", "Titel 4"]
    While Sleep(1000)
    	For $i = 0 to UBound($Array_Titel) -1
    		If WinExists($Array_Titel[$i]) Then WinClose($Array_Titel[$i])
    	Next
    WEnd
    Alles anzeigen


    Allerdings solltest du bedenken, dass diese beiden Beispiele auch irgendwann beendet werden sollten. Wie das geschehen soll würde aber vom Zweck deines Vorhabens abhängen.

    MfG Lo..

  • Gegenspieler gesucht

    • Lottich
    • 8. April 2016 um 10:25

    Spielt von euch jemand dieses Game ??

    Wenn ja, könnte man eine AutoIt Gruppe bilden und gegeneinander antreten :thumbup:
    Wenn nicht, ihr aber interessiert seid...
    Darin geht es ums Fahren nach Zeit. Viele Level/Parcours, in dem es auf euer Geschick ankommt um gute Zeiten hinzulegen.
    Ihr fahrt mit nem Moped, dass durch Bewegen/Neigen des Handys gesteuert wird.

    Aber Vorsicht: Suchtgefahr ist enorm hoch :D

    Was passiert, wenn man dort in einer Gruppe gegeneinander antritt?
    Es wird zufällig eine Strecke vorgegeben, einen ganzen Tag lang. Dann hat man alle 3 Stunden jeweils 3 Minuten Zeit um die Strecke so schnell es geht hinter sich zu bringen.
    Dabei wird die beste Zeit für jeden Spieler tabellarisch gespeichert, sodass eine Rangliste mit Punkteverteilung entsteht.
    Am nächsten Tag gibts dann eine andere Strecke. Nach 7 Tagen ist die "Saison" vorbei und der Sieger darf sich eine Bockwurst von der Tanke holen ^^
    Und dann gehts ab in die nächste Saison...

    Wär cool, wenn sich hier ein paar Racer finden würden.

    MfG Lo..

  • Arduino als Fernbedienungsersatz

    • Lottich
    • 7. April 2016 um 20:13

    So :) Meine neuen Spielzeuge sind nun angekommen. Hab mich nun auch durch @Oscar`s Einkaufstipps inspirieren lassen und mir die nützlichen Dinge geordert. sollten nächste Woche eintreffen.
    Und nen Lötkolben kann man ja eigentlich immer im Haushalt haben (und wenn schon nicht zum Löten, dann zum Brandmarken :D )

    Werd mich dann am Wochenende mal dran setzen und die ersten Bastelversuche unternehmen.

  • Arduino als Fernbedienungsersatz

    • Lottich
    • 5. April 2016 um 19:50

    Wow, das sind doch mal Infos. Danke an euch beiden! Das werde ich mir Morgen mal in aller Ruhe alles ansehen. Muss gleich los zur Arbeit. Nachtschicht mal wieder...

    LG Lo..

    PS: Hab mir eben die beiden vorgeschlagenen Lernsets geordert, ist doch vernünftiger erstmal zu üben.

  • Arduino als Fernbedienungsersatz

    • Lottich
    • 5. April 2016 um 09:05

    Moinmoin

    Auf Vorrat haben klingt ja erstmal gut ^^
    Soweit mir bekannt ist, senden meine Fernbedienungen nur Infrarot. Dokus über deren Sendecodes muss ich noch suchen, aber ich geh mal davon aus, dass mir da Zeit für bleibt.
    Ich hab absolut NULL Erfahrung mit Microcontroller und deren Programmierung. Aber ich fand eh schon immer "learning by doing" am sinnvollsten. Da merkt man sich das schneller :)
    Danke auch für den Tipp mit dem Arduino Forum, wenn ich nicht klar komme und ihr mir nicht weiter helfen könnt dann werd ich dort nach Hilfe schreien ^^

    Allerdings hab ich auch mitbekommen, dass hier der eine oder andere recht fit ist, was dieses Thema betrifft, darum würd ich es lieber erstmal mit euch versuchen,
    vielleicht wird das ja noch andere hier anregen ^^

    Nun weiss ich aber noch immer nicht, was ich (mindestens) alles brauch?! Das ESP8266 werd ich mir jetzt mal anschauen, mehr Power ist ja idR nie verkehrt :D

  • Arduino als Fernbedienungsersatz

    • Lottich
    • 3. April 2016 um 22:02

    Hallo

    Viele von euch werden mein Problem sicher auch kennen bzw zumindest nachvollziehen können: Fernbedienungen,
    die sich vermehren wie die Karnickel... Überall lungern die rum und sind mir häufig im Weg. Darum hab ich mir vor-
    genommen, die Fernbedienungen wegzusperren und mir per Arduino eine eigene zu basteln.

    Sicher gibt es bereits einige Alternativen, zB bereits existierende All-In-One-FB´s oder sowas wie das hier: IRTrans.
    Aber viel cooler ist es doch, wenn man was selbst gebautes nutzen und auch Besuchern vorführen kann.
    Leider weiss ich, weil ich noch nie was mit Arduino zu tun hatte, gar nicht, was ich dafür alles brauche?!

    Ich will auf jeden Fall ein großes Touchscreen dafür haben, auf dem ich per GUI meine Geräte steuern kann.
    Und weil ich halt nicht weiss, was genau ich alles dafür benötige, wäre es schön, wenn mir jemand Tipps geben kann,
    damit ich mir erst mal eine gescheite Einkaufsliste zusammenstellen kann.

    Ich hab Fernbedienungen für 4 Geräte, die ich alle unter einen Hut bekommen will.
    Gibt es Vorschläge?

    mfG Lo..

  • Autoit Schleife hilfe

    • Lottich
    • 31. März 2016 um 16:13

    Ähhm, wo ist denn die Frage?

  • Revision 2016 - "The return of EvilBot"

    • Lottich
    • 30. März 2016 um 05:46
    Zitat von Andy

    Btw. hab ich noch eine "EVILBOT"-Tüte gefunden...

    Jo, da isses also, kann ich ja lange suchen ^^
    Dann bastel mal was schönes :D

  • Frage zu StringReplace und Laufwerkauswahl mit AutoIt

    • Lottich
    • 20. März 2016 um 00:00

    Kommt zwar ziemlich selten vor, aber dann und wann kann ich auch mal helfen ^^

  • Frage zu StringReplace und Laufwerkauswahl mit AutoIt

    • Lottich
    • 19. März 2016 um 23:09

    Hey. ich hab dein Script mal modifiziert. Aus dem Button zur Auswahl wurde eine Combobox...

    AutoIt
    #Region
    #AutoIt3Wrapper_Icon=
    #AutoIt3Wrapper_Outfile=Beispiel.exe
    #AutoIt3Wrapper_UseUpx=y
    #AutoIt3Wrapper_Res_Comment=BSP
    #AutoIt3Wrapper_Res_Description=BSP
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=-BSP
    #AutoIt3Wrapper_Res_Language=1031
    #EndRegion
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    ;;;;;;;;;;;;;;;;;;;;;;;;
    ;; Laufwerauswahl  ;;
    ;;                        ;;
    ;;                        ;;
    ;;;;;;;;;;;;;;;;;;;;;;;;
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <AutoItConstants.au3>
    #include <Array.au3>
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    Opt('GUIOnEventMode', 1)
    Opt('MustDeclareVars', 1)
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    Global $g_hGUI, $Inputbox1, $laufwerkwahl, $Text1
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    $g_hGUI = GUICreate("Laufwerk auswählen", 758, 250, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_THICKFRAME))
    $Inputbox1 = GUICtrlCreateInput("Laufwerkauswahl nur über -Laufwerk wählen- möglich!", 230, 63, 500, 23, $ES_READONLY)
    GUICtrlSetTip(-1, "Dieses Feld füllt sich automatisch" & @CRLF & "über den Button -Laufwerk wählen-!")
    
    
    ;~ $laufwerkwahl = GUICtrlCreateButton("Laufwerk auswählen", 36, 63, 177, 25, $BS_ICON)
    $laufwerkwahl = GUICtrlCreateCombo("Laufwerk auswählen", 36, 63, 177, 25)
    __Laufwerke__()
    
    
    $Text1 = GUICtrlCreateLabel("Bitte Laufwerk auswählen:", 36, 22, 396, 21)
    GUISetOnEvent($GUI_EVENT_CLOSE, __GUI_EVENT_CLOSE__)
    GUICtrlSetOnEvent($laufwerkwahl, __idButton_laufwerkwahl__)
    GUISetState(@SW_SHOW)
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    While Sleep(200)
    WEnd
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    Func __GUI_EVENT_CLOSE__()
    	Exit
    EndFunc   ;==>__GUI_EVENT_CLOSE__
    ; ++++++++++ +++++++++ ++++++++ +++++++ ++++++ +++++ ++++ +++ ++ +
    Func __idButton_laufwerkwahl__()
    ;~ 	Local $laufwerkwahl_1 = FileSelectFolder("Ordner wählen", @HomeDrive, Default, "", $g_hGUI)
    ;~ 	If @error Then MsgBox(4096, "", "Keine Laufwerk ausgewählt")
    ;~ 	GUICtrlSetData($Inputbox1, $laufwerkwahl_1)
    ;~ 	; Replace a blank space (' ') with a - (minus) character.
    ;~ 	; Replace a blank space (' ') with a - (minus) character.
    ;~ 	Local $sString = StringReplace("C:\", "\", " ")
    ;~ 	Local $sString = StringReplace("D:\", "\", " ")
    ;~ 	Local $sString = StringReplace("E:\", "\", " ")
    ;~ 	GUICtrlSetData($Inputbox1, $sString)
    	GUICtrlSetData($Inputbox1, GUICtrlRead($laufwerkwahl))
    EndFunc   ;==>__idButton_laufwerkwahl__
    
    
    Func __Laufwerke__()
    	Local $aArray = DriveGetDrive($DT_Fixed), $aRet
    	If @error Then
    		MsgBox(0, "", "It appears an error occurred.")
    		Return 0
    	Else
    		For $i = 1 To $aArray[0]
    			$aRet &= StringUpper($aArray[$i]) & "|"
    		Next
    		GUICtrlSetData($laufwerkwahl, StringTrimRight($aRet, 1))
    	EndIf
    EndFunc   ;==>__Laufwerke__
    Alles anzeigen

    Alles unnötige hab ich ausgeklammert und am Scriptende ist eine neue Funktion hinzu gekommen: __Laufwerke__()
    Diese sorgt dafür, dass die Combo mit allen "Festplatten" zur Auswahl befüllt wird. Aufruf 1malig in Zeile 35

  • Meine Reaktion auf gewisse Nutzer ...

    • Lottich
    • 5. März 2016 um 00:37

    Seid ihr beiden jetzt fertig?
    Das ist doch echt lächerlich, sich an sowas aufzugeilen.

    Blaxxun: Warum regt es dich denn so auf, dieses RTFM ??
    Das ist nicht nur in diesem Forum gängiger Sprachgebrauch und es ist definitiv berechtigt und sinnvoll auf die Hilfe hinzuweisen.
    Denn da sind nicht nur alle Funktionen erklärt, die AutoIt schon von Hause aus mitbringt, sondern auch extrem viele UDFs. Sogar mit Beispielen.

    Mindestens 70% aller Hilfsgesuche wären nicht nötig, wenn man sich mit der Hilfe auseinandersetzen würde.
    Sicher, die Hilfe erschlägt einen Neuling regelrecht mit ihrem gewaltigen Umfang. Aber man hat ziemlich schnell den Dreh raus wo und wie man dort was findet.

    Und warum sträubst du dich dagegen, das Ganze auch mal aus Sicht der "Profis" zu sehen?
    Diese ständigen Anfragen von zig Leuten wegen großteils Lapalien, die sich definitiv (auch allein) durch die Hilfe lösen lassen?!
    Was würde denn passieren, wenn man NICHT mehr auf die mitgelieferte Hilfe verweisen würde?? Soll jede bereits gestellte Frage 1000 mal erneut beantwortet werden?
    Denn es ist Fakt: Die meisten Hilfsgesuche gab es bereits in irgend einer Form. Darum auch der bewährte Spruch: "benutz google"
    Und das ist auch Fakt: in den meisten Fällen wird man bei Google auch fündig! Man muss eben nur die richtigen Suchwörter benutzen und sich beim Suchen auch mal Zeit nehmen.
    Aber das tun eben viele nicht. (manchmal muss ich mich aber auch zu denen zählen, soviel Ehrlichkeit muss sein).

    Angenommen es gibt keinen Verweis auf die Hilfe und auch keinen Verweis mehr auf google. Was dann?? Erwartest du ernsthaft, dass die Leute immer und immer wieder auf
    bereits gestellte Fragen erneut jedesmal die Lösung präsentieren, die sie dann schon 1000 mal geschrieben haben? -- Wohl kaum.

    Wie würde denn dann die Lösung präsentiert werden? Die Hilfegebenden merken sich all ihre jemals geschriebenen Lösungen um sie bei Bedarf
    als Link oder als aufgehobenen Codeschnipsel präsentieren zu können! -- Das wird sich NIEMAND antun, selbst du nicht (ja, das unterstell ich dir jetzt)

    Und weil das niemand macht mit all den ganzen Codeschnipseln und sich auch niemand die ganzen Links merkt die jemals zu einer Lösung geführt haben, wird auf google verwiesen.
    Und wenn die "Profis" einen Link präsentieren können, oder können und nicht wollen, weil sie wissen dass es diesen gibt, dann kann den auch ein ganz normaler Mensch finden!

    Wow, das man sowas erklären muss...


    Abschluss:
    Du und auch Bioshade: ihr solltet euch beide mal ein dickeres Fell zulegen.
    Ist doch Kindergartenart was hier grad los ist..

  • Such es Dir selbst - Das ist doch einfach - deutsches Forum - englische Lösungen

    • Lottich
    • 1. März 2016 um 22:28

    Junge junge, da umschreibt aber jemand ziemlich komplex die eigene Faulheit...
    DU bist es, der etwas will, also solltest auch DU derjenige sein, der die meiste Initiative dabei zeigt, dieses Gewünschte zu erlangen.

    Selbstverständlich steht es dir frei dir deine Wünsche von jemand anderen erfüllen zu lassen. Dieses Vorgehen wird hier selbstverständlich gerne gesehen und auch gerne gefördert.
    So sehr gefördert und gerne gesehen, dass es dafür hier sogar ein eigenen Bereich in diesem Forum gibt. Das nennt sich dann nicht "Hilfe und Unterstützung", sondern

    "Programmieranfragen" mit den Optionen auf mit oder ohne Gegenleistung.

    Man muss eben nur das "richtige" Unterforum für sich wählen.
    Wenn du also mit der Art und Weise nicht einverstanden bist, wie im Unterforum "Hilfe und Unterstützung" umgegangen wird, dann versuch es doch einfach mal damit, dein Wunsch
    im Unterforum "Programmieranfragen MIT Gegenleistung".
    Du wirst erstaunt sein, wie faul du da selber sein kannst weil jemand anderes das für dich erledigt.

    PS: mit Wunsch mein ich nicht deine ganzen Wünsche aus deinem Startpost...


    Nachtrag:
    nun, wo ich weiss, wie das hier Zustande gekommen ist, muss ich feststellen, dass ich ein Trittbrettfahrer bin.
    Das mit der Faulheit ,uss ich offenbar zurück nehmen und gegen Uneinsichtigkeit/Engstirnigkeit ersetzen...
    Der Rest allerdings behält seine Gültigkeit.

  • als Script funktionierts, aber als .exe nur zum Teil

    • Lottich
    • 27. Februar 2016 um 06:52

    Genau das wars. Danke @misterspeed. Jetzt muss ich zugeben, dass ich mir das Makro nicht näher in der Hilfe angesehen habe. Ich ging davon aus, dass es damit keine Probleme geben würde.
    Irgendwie macht diese Sache das Makro eigentlich nutzlos, oder?

    hab das jetzt über RegRead gelöst.

    Warum ich das ganze immer noch auf diese Weise erledige? Weil ich schon (für meine Begriffe) zu viel Zeit da reingesteckt habe, als dass ich jetzt nochmal das ganze System umschreiben möchte.
    Sicher hast du Recht mit deinem Vorschlag, den du mir im anderen Thread gemacht hast. Das würde sicher funktionieren. habe selber auch zuerst über ein Token System nachgedacht, liess es aber
    dann doch fallen, weil mir das zu kompliziert erschien. So, wie ich das bis jetzt habe, funktioniert mein userhandling genau wie ich will (im Grossen und Ganzen jedenfalls xD ).

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™