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

Beiträge von andynbg9000

  • Bei Hotkey ENTER, ENTER senden

    • andynbg9000
    • 3. Oktober 2016 um 22:04

    Die Lösung Ist:


    AutoIt
    Func HotKeyPressed()
        Switch @HotKeyPressed ; The last hotkey pressed.
            Case "{ENTER}" 
    			if WinActive("Form1") Then
    			Else
    			   HotKeySet("{ENTER}")
    			   Send("{ENTER}")
    			   HotKeySet("{ENTER}", "HotKeyPressed")
    			Endif
        EndSwitch
    EndFunc   ;==>HotKeyPressed
    Alles anzeigen

    Und damit ist dieser Beitrag geschlossen :)

  • Bei Hotkey ENTER, ENTER senden

    • andynbg9000
    • 3. Oktober 2016 um 21:46

    Hallo liebe AutoIT Gemeinde,

    ich möchte auf GUI Ebene alle ENTER Eingaben abfangen, da sie mich stören. D.h. ENTER bei einer aktiven Gui deaktivieren. Ist die Gui nicht mehr aktiv soll ENTER wieder möglich sein.

    Mein Ansatz war nun:

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    HotKeySet("{ENTER}", "HotKeyPressed")
    
    
    
    
    GUICreate("Form1")
    GUISetState(@SW_SHOW)
     While 1
    	 Switch GUIGetMsg()
    		 Case $GUI_EVENT_CLOSE
    			 ExitLoop
    	 EndSwitch
      WEnd
    
    
    
    
    Func HotKeyPressed()
    	Switch @HotKeyPressed ; The last hotkey pressed.
            Case "{ENTER}"
    			if WinActive("Form1") Then
    			   ;MsgBox(1, "", "Enter ist deaktiviert")
    			Else
    			   Send("{ENTER}")
    			Endif
        EndSwitch
    EndFunc   ;==>HotKeyPressed
    Alles anzeigen


    Jedoch sendet er kein ENTER außerhalb der Gui. Bei dem Code funktioniert es ebenfalls nicht:


    Bash
    HotKeySet("{ENTER}", "HotKeyPressed")
    
    
    Func HotKeyPressed()
    Send("{ENTER}")
     EndFunc   ;==>HotKeyPressed
    
    
    
    
    While 1
    
    
    WEnd
    Alles anzeigen


    Was muss ich abändern, damit der Code funktioniert?

    Vielen Dank im voraus :D

    Edit: Bin gerade selbst draufgekommen, dass der Code in einen Loop läuft... Bin nun dabei die Lösung zu suchen....

  • RegRead Benutzername von Winlogon

    • andynbg9000
    • 21. September 2016 um 21:36

    Perfekt! Vielen Dank :D Das war es. Jetzt kann ich an meinem Skript weiterarbeiten.

    Schönen Abend euch.

  • RegRead Benutzername von Winlogon

    • andynbg9000
    • 21. September 2016 um 08:07

    Hallo liebe AutoIT Gemeinde,

    ich habe momentan ein hoffentlich kleines Problem.
    Für mein Skript möchte ich eine Funktion schrieben, welche dafür sorgt, dass sich Windows automatisch anmeldet.

    Dafür muss ich u.a. den Registry Eintrag: "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName" abändern, jedoch scheitere ich schon am auslesen.

    AutoIt
    MsgBox(1, "Benutzername", "Der Benutzername ist: "&RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "DefaultUserName"))


    Wenn ich an stattdessen:

    AutoIt
    MsgBox(1, "anderer Eintrag", "Ein anderer Eintrag ist: "&RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "Shell"))

    auslese klappt alles einwandfrei.


    Mit RegWrite kann ich DefaultUserName auch nicht abändern.
    Hat jemand eine Idee woran das liegen könnte? Der Eintrag existiert in meiner Registry.

  • InetGet auf verschlüsseltem Bereich

    • andynbg9000
    • 21. August 2016 um 16:44

    Ich habe es nun geschafft, dass alle Daten fehlerfrei übermittelt werden. Der Übertragungstyp war in Filezilla auf ASCII gestellt. Dies hat mir meine *.exe Files zerschossen. Kaum war er auf Binär umgestellt ging alles fehlerfrei.

    Ich will mich bei euch allen herzlich bedanken.

    Nun die Zusammenfassung, die vl per Google auf diesen Beitrag stoßen werden:

    Wie fordert man Dateien von einem Serverpfad an, der mittels einer htaccess Datei verschlüsselt wurde per AutoIT an:

    1. Müsst ihr euch die WInHTTP UDF aus dem Internet beschaffen. Leider ist diese nicht so leicht zu finden. Stellt euch auf eine längere Suche ein. Ich hatte sie von: https://github.com/dragana-r/autoit-winhttp/releases
    2. Hier ist der SourceCode:

    AutoIt
    #include <Winhttp.au3>
    ;========================>
    $HttpOpen = _WinHttpOpen("test")
    $HttpConnect = _WinHttpConnect($HttpOpen, "wpXXXXX.server-he.de")
    $HttpOpenRequest = _WinHttpOpenRequest($HttpConnect, "GET", "/html/test/Version1.exe", "HTTP/1.1", "http://wpXXXXX.server-he.de/")
    If _WinHttpSetCredentials($HttpOpenRequest, $WINHTTP_AUTH_TARGET_SERVER, $WINHTTP_AUTH_SCHEME_BASIC, "BENUTZER", "PASSWORT") = 0 Then
    MsgBox(16, "Fehler", "_WinHttpSetCredentials ist fehlgeschlagen. Errorcode: " & @error)
    EndIf
    _WinHttpSendRequest($HttpOpenRequest)
    _WinHttpReceiveResponse($HttpOpenRequest)
    If _WinHttpQueryDataAvailable($HttpOpenRequest) Then
        $header = _WinHttpQueryHeaders($HttpOpenRequest)
    EndIf
    Local $data = Binary("")
    While 1
        $chunk = _WinHttpReadData($HttpOpenRequest, 2) ; Binär!
        If Not @extended Then ExitLoop ; @extended = Länge der Rückgabe
        $data &= $chunk
    WEnd
    $fOpen = FileOpen(@ScriptDir & "\Version1.exe", 26)
    FileWrite($fOpen,$data)
    Alles anzeigen

    Achtet bitte darauf das ihr den Übertragungsmodus von FileZilla, wenn ihr die Files auf den Server übertragt auf Binär eingestellt habt.

    Mit freundlichen Grüßen
    Andreas

  • InetGet auf verschlüsseltem Bereich

    • andynbg9000
    • 21. August 2016 um 16:29

    Ok habe weitergeforscht. Und mein Script auf den Binärmodus umgestellt:

    AutoIt
    #include <Winhttp.au3>
    ;========================>
    $HttpOpen = _WinHttpOpen("test")
    $HttpConnect = _WinHttpConnect($HttpOpen, "wpXXXXX.server-he.de")
    $HttpOpenRequest = _WinHttpOpenRequest($HttpConnect, "GET", "/html/test/Version1.exe", "HTTP/1.1", "http://wpXXXXX.server-he.de/")
    
    
    
    
    If _WinHttpSetCredentials($HttpOpenRequest, $WINHTTP_AUTH_TARGET_SERVER, $WINHTTP_AUTH_SCHEME_BASIC, "test", "testerich") = 0 Then
    MsgBox(16, "Fehler", "_WinHttpSetCredentials ist fehlgeschlagen. Errorcode: " & @error)
    EndIf
    
    
    
    
    _WinHttpSendRequest($HttpOpenRequest)
    _WinHttpReceiveResponse($HttpOpenRequest)
    If _WinHttpQueryDataAvailable($HttpOpenRequest) Then
        $header = _WinHttpQueryHeaders($HttpOpenRequest)
    EndIf
    Local $data = Binary("")
    While 1
        $chunk = _WinHttpReadData($HttpOpenRequest, 2) ; Binär!
        If Not @extended Then ExitLoop ; @extended = Länge der Rückgabe
        $data &= $chunk
    WEnd
    $fOpen = FileOpen(@ScriptDir & "\Version1.exe", 26)
    FileWrite($fOpen,$data)
    Alles anzeigen

    Jetzt wird die *.txt fehlerfrei übermittelt.

    Bei der *.exe bleibt das Problem leider weiterhin bestehen :S
    Wenn ich meine *.exe öffne kommt die Meldung: Diese App kann auf dem PC nicht ausgeführt werden. Wenden Sie sich an den Softwareherausgeber, um eine geeignete Version für Ihren PC zu finden.

    Wer hat Vorschläge?

  • InetGet auf verschlüsseltem Bereich

    • andynbg9000
    • 21. August 2016 um 16:00

    Ich habe mir nun die WinHTTP gedownloadet und "included". Muss aber ehrlich zugeben, dass ich anfangs etwas überfordert war.
    Nach langem googeln konnte ich mir das folgende Skript zusammenstellen:

    AutoIt
    #include <Winhttp.au3>
    ;========================>
    $HttpOpen = _WinHttpOpen("test")
    $HttpConnect = _WinHttpConnect($HttpOpen, "wpXXXXX.server-he.de")
    $HttpOpenRequest = _WinHttpOpenRequest($HttpConnect, "GET", "/html/test/Version1.exe", "HTTP/1.1", "http://wpXXXXX.server-he.de/")
    If _WinHttpSetCredentials($HttpOpenRequest, $WINHTTP_AUTH_TARGET_SERVER, $WINHTTP_AUTH_SCHEME_BASIC, "test", "testerich") = 0 Then
    MsgBox(16, "Fehler", "_WinHttpSetCredentials ist fehlgeschlagen. Errorcode: " & @error)
    EndIf
    _WinHttpSendRequest($HttpOpenRequest)
    _WinHttpReceiveResponse($HttpOpenRequest)
    If _WinHttpQueryDataAvailable($HttpOpenRequest) Then
        $header = _WinHttpQueryHeaders($HttpOpenRequest)
    EndIf
    Local $data = ""
    Do
        $data &= _WinHttpReadData($HttpOpenRequest,1)
    Until @error
    $fOpen = FileOpen(@ScriptDir & "\Version1.exe", 26)
    FileWrite($fOpen,$data)
    Alles anzeigen

    Und es hat geklappt :D Vielen Dank für euren Tipp!

    Ich will mit diesem Skript *.txt und *.exe Dateien von meinem Server downloaden.
    Leider werde diese Dateien anscheinend nicht korrekt übermittelt :S

    Bei meiner *.txt werden Umlaute nicht korrekt dargestellt ("Gl?ckwunsch!").
    Und wenn ich meine *.exe öffne kommt die Meldung: Diese App kann auf dem PC nicht ausgeführt werden. Wenden Sie sich an den Softwareherausgeber, um eine geeignete Version für Ihren PC zu finden.

    Habt ihr einen Tipp, wie ich nun die Daten auch noch fehlerfrei auf meinen PC bekomme?
    Die Größe der Dateien ist immer korrekt.

  • InetGet auf verschlüsseltem Bereich

    • andynbg9000
    • 21. August 2016 um 11:36

    Hallo liebe AutoIT Gemeinde,

    ich schaffe es einfach nicht mit der Methode InetGet auf meinen Webserver zuzugreifen.
    Hier will ich auf einen per htaccess geschützten Bereich zugreifen.
    Die Funktion dafür habe ich mir aus der AutoIT Hilfe geholt. (Siehe: https://www.autoitscript.com/autoit3/docs/functions/InetGet.htm)

    AutoIt
    #include <InetConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <WinAPIFiles.au3>
    
    
    ; Download a file in the background.
    ; Wait for the download to complete.
    
    
    Example()
    
    
    Func Example()
        ; Save the downloaded file to the temporary folder.
        Local $sFilePath = _WinAPI_GetTempFileName(@TempDir)
    
    
        ; Download the file in the background with the selected option of 'force a reload from the remote site.'
        Local $hDownload = InetGet("http://www.autoitscript.com/autoit3/files/beta/update.dat", $sFilePath, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND)
    
    
        ; Wait for the download to complete by monitoring when the 2nd index value of InetGetInfo returns True.
        Do
            Sleep(250)
        Until InetGetInfo($hDownload, $INET_DOWNLOADCOMPLETE)
    
    
        ; Retrieve the number of total bytes received and the filesize.
        Local $iBytesSize = InetGetInfo($hDownload, $INET_DOWNLOADREAD)
        Local $iFileSize = FileGetSize($sFilePath)
    
    
        ; Close the handle returned by InetGet.
        InetClose($hDownload)
    
    
        ; Display details about the total number of bytes read and the filesize.
        MsgBox($MB_SYSTEMMODAL, "", "The total download size: " & $iBytesSize & @CRLF & _
                "The total filesize: " & $iFileSize)
    
    
        ; Delete the file.
        FileDelete($sFilePath)
    EndFunc   ;==>Example
    Alles anzeigen

    Den Serverlink gebe ich mit meinem Benutzernamen und meinem Passwort nach der Art benutzer:passwort@server.de ein.
    Leider meldet mir anschließend die MsgBox immer, dass 0 Bytes gedownloadet wurden.
    Ein http:// davor zu setzen ändert nichts.
    Gebe ich den Link benutzer:passwort@wpXXXXXX.server-he.de/html/test/Test.txt in meinen Chrome Browser ein, lädt er mir ohne zicken die Datei.
    Nehme ich den unverschlüsselten Link von irgendeinem mit Google gesuchtem Bild funktioniert der Code ebenfalls tadellos.

    Ich bin schon wirklich ratlos. Erkennt jemand von euch den Fehler?

  • Mehrzeilige Eingabe aus GUI Edit per Tastendruck in Word eingeben

    • andynbg9000
    • 25. Oktober 2015 um 18:45

    Vielen Dank chesstiger!

    Daran habe ich gar nicht gedacht! Das ist auf jeden Fall eine Lösung für mich.

    Dann kann ich gleich mal weiter machen :)

  • Mehrzeilige Eingabe aus GUI Edit per Tastendruck in Word eingeben

    • andynbg9000
    • 25. Oktober 2015 um 14:31

    Danke für den Vorschlag :)

    Leider steht Word hier nur als Beispiel. Ich will dieses Tool wirklich in allen Eingabefeldern benutzen können. Ganz Programmunabhängig.

    z.B. in Google Keep, Thunderbird und co.

    Hat jemand noch eine weitere Idee dazu?

  • Mehrzeilige Eingabe aus GUI Edit per Tastendruck in Word eingeben

    • andynbg9000
    • 25. Oktober 2015 um 14:15

    Hallo liebe Community :)

    Ich hab hier ein echtes Problem. Ich versuche mir ein Tool zu schreiben, mit dessen Hilfe ich mir einen Text, welcher in einer GUI hinterlegt wird, per Knopfdruck auf F4 ausgeben lassen kann.

    Das Problem dabei ist, dass in Word/ OpenOffice für jede Zeile eine neue Seite angelegt wird und nicht wie vorhergesehen einfach nur ein {Enter} gesendet wird.

    Hier ist mein Code:

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <EditConstants.au3>
    
    
    global $text
    HotKeySet ("{F4}", "startf4")
    
    
    Opt("GUIOnEventMode", 1)
    GUICreate("GUI", 200, 100, -1, -1)
    $Input = GUICtrlCreateEdit("",5,5,190,21*3, BitOR($ES_WANTRETURN,$ES_AUTOVSCROLL))
    GUICtrlCreateButton("ok", 70, 70, 60, 20)
    GUICtrlSetOnEvent(-1, "speichern")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    GUISetState()
    
    
    While 1
    	Sleep(100)
    WEnd
    
    
    Func _Exit()
    	Exit
    EndFunc
    
    
    Func speichern()
       $text = GUICtrlRead ($Input)
       MsgBox($MB_SYSTEMMODAL,"", "Dein Text wurde auf F4 hinterlegt:" &@CRLF&@CRLF& $text)
    EndFunc
    
    
    Func startf4 ()
       Send ($text)
    EndFunc
    Alles anzeigen

    Ein Beispiel:


    Ich gebe in die GUI folgenden Text ein:

    hallo
    hall
    hal

    Genau so erwarte ich ihn dann auch wieder in Word, jedoch wird mir für jede Zeile eine neue Seite angelegt...

    Wäre Klasse wenn jemand von euch mir da weiterhelfen kann :D

  • Alle Pixel auslesen und auf eine bestimmte Farbe reagieren

    • andynbg9000
    • 28. März 2010 um 11:17

    Sufu?????
    Was ist das???

  • Alle Pixel auslesen und auf eine bestimmte Farbe reagieren

    • andynbg9000
    • 28. März 2010 um 11:00

    Hallo,
    ich will eine Automatisierung schreiben, die alle Farben auf dem Bildschirm ausließt und auf eine best. Farbe reagiert und draufklickt.Dann soll er ein bisschen warten und es geht alles wieder von vorne los. Achtung: Es könnten mehrere gleiche Farben auf dem Bild sein.

    Ist das ein bisschen zu viel für AutoIt??

    Danke im voraus,

    Andreas

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™