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

Beiträge von Duckbone

  • Download einer Datei von einem SSL (TLS 1.2) Webserver schlägt fehl

    • Duckbone
    • 11. Juli 2019 um 11:13

    Hallo BugFix,

    vielen Dank für deinen Hinweis. Im Vorfeld habe ich schon einiges dazu recherchiert, speziell zu dem RegistryKey, was aber so erstmal nicht geklappt hat. Den wirklich wichtigen Hinweis fand ich dann in dem M$ Support Artikel:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

    On x64-based computers, DefaultSecureProtocols must also be added to the Wow6432Node path:

    HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

    The registry value is a DWORD bitmap. The value to use is determined by adding the values corresponding to the protocols desired.

    Take the value for TLS 1.1 (0x00000200) and the value for TLS 1.2 (0x00000800), then add them together in calculator (in programmer mode), and the resulting registry value would be 0x00000A00.

    So hat es dann geklappt.

    Die von mir bisher verwendete Methode "InetGet" aus der UDF INet.au3 funktioniert, auch nach setzen der Registrywerte, leider nicht mehr mit TLS 1.2. Als funktionale Alternative bietet sich jedoch der GET Befehl via $oHttp = ObjCreate("WinHTTP.WinHTTPRequest.5.1") an.

    Vielen Dank nochmal für deine Hilfe.

    Viele Grüße

    Duckbone

  • Download einer Datei von einem SSL (TLS 1.2) Webserver schlägt fehl

    • Duckbone
    • 10. Juli 2019 um 16:58

    Hallo zusammen,

    ich habe ein Problem mit dem Download einer Datei von einem internen Webserver, der SSL (TLS 1.2) verwendet.

    Bislang habe ich mit dem Befehl:

    Code
    $hDownload = InetGet("https://url-des-Servers-und-Verzeichnis/Dateiname.txt", $sFilePath, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND

    die Datei erfolgreich herunterladen können. Jetzt wurde der Webserver von TLS 1.0 auf (ausschliesslich) TLS 1.2 umgestellt und der Download schlägt fehl.

    Bereits ausprobiert habe ich als Alternative:

    Code
    Dim $oHttp = ObjCreate("WinHTTP.WinHTTPRequest.5.1")
    $oHttp.open ("GET", "https://url-des-Servers-und-Verzeichnis/Dateiname.txt", False)
    $oHttp.Option(9) = 2048 ; 128 - TLS 1.0, 512 - TLS 1.1, 2048 - TLS 1.2, 2056 - TLS 1.1 & TLS 1.2
    $oHttp.Send
    ConsoleWrite($oHttp.responseText & @CRLF) 

    In der Console bekomme ich mit dieser Methode nur noch einen Error:

    "scriptname.au3" (10) : ==> The requested action with this object has failed.:

    $oHTTP.Send()

    $oHTTP^ ERROR

    Hat jemand eine Idee, wie ich jetzt diese Datei unter TLS 1.2 herunterladen kann?

    Vielen Dank schon mal für eure wertvollen Tipps.

  • Aktive Zeile aus Excel auslesen

    • Duckbone
    • 23. Mai 2013 um 07:57

    Nach _ExcelBookOpen kannst du mit _ExcelSheetActivate($oExcel, "Sheetname") das von dir gewünschte Tabellenblatt zur Bearbeitung mit deinem Code aktivieren

  • SQL und Error handling

    • Duckbone
    • 20. Mai 2013 um 12:31

    Das funktioniert wunderbar.
    Vielen Dank für deine Hilfe!

  • Bios win7 kein reinkommen mehr

    • Duckbone
    • 20. Mai 2013 um 00:23

    Bei manchen Rechnern kann auch durch drücken der F9/F10 Taste der Bootdatenträger temporär ausgewählt werden.

  • SQL und Error handling

    • Duckbone
    • 19. Mai 2013 um 20:31

    Hier der entsprechende Code:

    [autoit]

    #Include <File.au3>
    #Include <Array.au3>
    #include <MSSQL.au3>
    #include <Excel.au3>

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc") ; --> error handling
    ; --> code Excel Datei zu Array einlesen
    ; ...
    ; ...
    $constrim="DRIVER={SQL Server};SERVER=servername;DATABASE=zdm;uid=sa;pwd=mypassword" ;--> anmelden an SQL Server usw.
    $adCN = ObjCreate ("ADODB.Connection")
    $adCN.Open ($constrim)
    $sQuery="use [zdm]"
    $result= $adCN.Execute($sQuery)
    $sQuery="Select id from zdm.td.devices where device_name like '" & $aArray [$i][3] & "'"
    $result= $adCN.Execute($sQuery)
    ; Wunsch: Hier Errorhandling ausschalten
    If $result.Fields( "id" ).Value = "" Then MsgBox(0,"","Datensatz nichtvorhanden, ok") ; --> hier kommt dann die Meldung vom Errorhandler
    ; Wunsch: Hier Errorhandling wieder aktivieren
    $adCN.Close
    Exit

    [/autoit][autoit][/autoit][autoit]

    Func MyErrFunc()
    Local $HexNumber
    $HexNumber = Hex($oMyError.number, 8)
    MsgBox(0, "COM Error Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
    "err.description is: " & @TAB & $oMyError.description & @CRLF & _
    "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
    "err.number is: " & @TAB & $HexNumber & @CRLF & _
    "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
    "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
    "err.source is: " & @TAB & $oMyError.source & @CRLF & _
    "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
    "err.helpcontext is: " & @TAB & $oMyError.helpcontext _
    )
    SetError(1); to check for after this function returns
    EndFunc ;==>MyErrFunc

    [/autoit]
  • SQL und Error handling

    • Duckbone
    • 19. Mai 2013 um 13:32

    Hallo zusammen,
    ich habe ein kleines Script, mit dem ich Datensätze in eine MSSQL Datenbank schreiben will.
    Bevor ich einen Datensatz schreibe, prüfe ich mit einem übergebenen SQL Statement ab, ob der Datensatz bereits vorhanden ist. Idealerweise kommt ein leeres Suchergebnis zurück.

    Und da ist mein Problem: Zum Zweck des Errorhandlings für das Script habe ich eine Fehlerroutine eingebaut, die die Errors abfängt. Die Rückgabe eines leeren Suchergebnisses wird mit der Meldung belegt, dass (sinngemäss) kein Datensatz gefunden wurde, was ja soweit auch richtig ist. Diese Fehlermeldung stört aber ungemein und meine Frage ist: Wie kann ich die Function, die das Errorhandling steuert, zeitweise aus- und wieder anschalten?

    Viele Grüße,
    Duckbone

  • eindeutige Zufallszahl

    • Duckbone
    • 23. Juni 2008 um 19:04

    Hallo Oscar,

    vielen Dank, so funktioniert es nun perfekt; dank deiner Hilfe:

    [autoit]

    #include <RanNumGen.au3>
    Global $Timer = TimerInit()
    Global $zahlen = _RanNumGen(10, 100000000, 999999999, True)
    $i=1
    For $i = 1 to 10
    $zahl = $zahlen[$i-1]
    MsgBox(0,'',$zahl)
    Next

    [/autoit]

    Gruss, Duckbone

  • eindeutige Zufallszahl

    • Duckbone
    • 23. Juni 2008 um 16:02

    Hi Oscar,

    deine UDF hilft mir auf jeden Fall weiter. Ich wollte die eindeutige Zufallszahl jedoch als Variable zur Laufzeit zur Verfügung haben.

    So müsste ich mit einer Datei, bzw. mit einem Array arbeiten; aber zur Not würde das gehen.

    Vielen Dank für deine Hilfe.


    Gruß, Duckbone

  • eindeutige Zufallszahl

    • Duckbone
    • 23. Juni 2008 um 14:48

    anno2008:

    bei einer Anzahl Zufallsszahlen von n=1000000 sind immerhin schon 608 Zufallszahlen doppelt vorhanden.

    Gruss,

    Duckbone


    Code
    $i=1 
    For $i = 1 to 1000000 
    $value= Random(100000000, 999999999, 1) 
    FileWrite("C:\Programme\AutoIt3\myScripts\random1.txt", $value & @CR) 
    Next
  • eindeutige Zufallszahl

    • Duckbone
    • 23. Juni 2008 um 14:34

    Hallo Zusammen,

    Ich benötige eine Anzahl n 9-stelliger Zufallszahlen, die eindeutig sein müssen.
    Der Codeaufruf mit

    Code
    $value=Random(1000000, 9999999, 1)

    erzeugt zwar eine 9-stellige Zufallszahl,
    die aber keineswegs eindeutig ist, sondern sich regelmässig wiederholt.
    Anscheinend benutzt AutoIT in der Funktion "Random" einen deterministischen Zufallszahlengenerator

    Ideen? Anregungen? Tipps?

    Grüsse, Duckbone

  • Array variable has incorrect number of subscripts or subscript dimension range exceeded

    • Duckbone
    • 21. März 2008 um 09:10

    Hallo German,

    vielen Dank für deine Hilfe. Du hast mein Problem richtig erkannt.

    Mit deinem Beispiel konnte ich mein Script richtig lauffähig machen.

    Grüße,

    Duckbone

  • Array variable has incorrect number of subscripts or subscript dimension range exceeded

    • Duckbone
    • 10. März 2008 um 19:40

    Hi FireFlyer,

    die Datei hat den Inhalt

    Mustermann, Max

    Musterfrau, Erika

    etc.

    Durch die Schleife "While", "Wend" liest $line = FileReadLine($delfile) immer schön eine zeile nach der nächsten aus.

    Mit $AdUser=StringSplit($line, ",") teile ich den String in Nachname und Vorname, da ich hier 2 Variablen ($AdUser[1] und $AdUser[2]) für die Active Directory Abfrage benötige. Dies lese ich aus dem Array $AdUser aus, was auch bestens funktioniert.

    Gruß,

    Duckbone

  • Array variable has incorrect number of subscripts or subscript dimension range exceeded

    • Duckbone
    • 10. März 2008 um 16:48

    Hallo Forum,

    das unten angezeigte Script beendet mit Fehler in Zeile 41:

    ERRORArray variable has incorrect number of subscripts or subscript dimension range exceeded

    $AdUser=$AdUser[1] & "*," & $AdUser[2] & "*"
    $AdUser=$AdUser[1] & "*," & ^ in

    Was macht das Script?

    Liest Datei $file1 ein, in der Userangaben in der Form "Nachname, Vorname" enthalten sind und schreibt diese Angaben
    nach Änderung von Umlauten und einem AD-Query in Datei $file3, in der Form "SamAccount;Vorname,Nachname;Department".

    Ich habe nun schon viele Beiträge zum Thema "Ubound" gelesen, aber ich habe es noch nicht geschafft, es funktional einzusetzen.

    Ein Tipp in die richtige Richtung wäre klasse!


    Spoiler anzeigen
    [autoit]

    #cs ----------------------------------------------------------------------------
    AutoIt Version: 3.2.10.0
    Author: Duckbone
    Version: 1.0.0
    Date: 10.03.2008
    Scriptname: ADsearch.au3

    [/autoit] [autoit][/autoit] [autoit]

    Script Function:
    Liest Datei $file1 ein, in der Userangaben in der Form "Nachname, Vorname" enthalten sind und schreibt diese Angaben
    nach Änderung von Umlauten und einem AD-Query in Datei $file3, in der Form "SamAccount;Vorname,Nachname,Department".

    [/autoit] [autoit][/autoit] [autoit]

    Abhängigkeiten: Benötigt adfind.exe
    #ce ----------------------------------------------------------------------------
    ;includes
    #include<String.au3>
    #include<Array.au3>
    #include <File.au3>
    ;Pfade
    $path="C:\_Automat\"
    $file1="UserNachnameVorname.txt"
    $file2="Aduser.txt"
    $file3="User.txt"
    ;Start Script
    $delfile = FileOpen($path & $file1, 0)
    If $delfile = -1 Then
    MsgBox(0, "Error", "Unable to open file: "& $path & $file1)
    Exit
    EndIf
    ;Umlaute ersetzen
    _ReplaceStringInFile($path & $file1,"ä","ae")
    _ReplaceStringInFile($path & $file1,"Ä","Ae")
    _ReplaceStringInFile($path & $file1,"ö","oe")
    _ReplaceStringInFile($path & $file1,"Ö","Oe")
    _ReplaceStringInFile($path & $file1,"ü","ue")
    _ReplaceStringInFile($path & $file1,"Ü","Ue")
    _ReplaceStringInFile($path & $file1,"ß","ss")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    If @error = -1 Then ExitLoop
    ;Stringoperation
    $line = FileReadLine($delfile)
    $AdUser=StringSplit($line, ",")
    $AdUser=$AdUser[1] & "*," & $AdUser[2] & "*"
    If Not FileExists($path & "adfind.exe") Then
    MsgBox(0, "Error", "Unable to open file:" & $path & "adfind.exe" )
    Exit
    Else
    RunWait(@ComSpec & " /c " & "adfind -default dc=emea, dc=corpdir, dc=net, cn=*, cn=*, cn=users -f ""&(objectcategory=person)(name=" & $AdUser & ")"" cn sAMAccountName cn department > c:\_automat\AdUser.txt /q", "c:\_automat", @SW_HIDE)
    EndIf
    $AdUserFile = FileOpen($path & $file2, 0)
    If $AdUserFile = -1 Then
    MsgBox(0, "Error", "Unable to open file: "& $path & $file2)
    Exit
    EndIf
    ;Stringoperation
    $line3=FileReadLine($AdUserFile,3)
    $cn=_StringBetween($line3, ">cn: ", " (059")
    If Not $cn[0] = $line Then
    MsgBox(0,"Fehler", $cn[0] & " ist nicht identisch mit: " & $line )
    Exit
    Else
    $line4=FileReadLine($AdUserFile,4)
    $Department=StringSplit($line4, " ")
    $line5=FileReadLine($AdUserFile,5)
    $sam=StringSplit($line5, " ")
    FileWriteLine($path & $file3,$sam[2] & ";" & $cn[0] & ";" & $Department[2])
    $line = FileReadLine($delfile)
    $AdUser=StringSplit($line, ",")
    EndIf
    WEnd
    MsgBox(0,"Meldung", "Job Done!")
    Exit

    [/autoit]


    Grüße,

    Duckbone

  • Wie kann das Zeichen "#" aus einer Ini-Datei in Function Send übergeben werden?

    • Duckbone
    • 21. Januar 2008 um 23:31
    Zitat von Greenhorn

    Wer lesen kann ist klar im Vorteil ... :D :rolleyes:

    Ja das sollte so gehen, denke ich. Oder den String als ASCII senden ?!

    Gruß

    Edit: Getestet, und ... ... geht ! :D


    Wer lesen kann, ist sowas von im Vorteil..... :thumbup:


    Send send( "keys" [, flag] )

    Parameters

    keys Th sequence of keys to send. flag [optional] Changes how "keys" is processed:
    flag = 0 (default), Text contains special characters like + and ! to indicate SHIFT and ALT key-presses.
    flag = 1, keys are sent raw.

    also: lange Rede, kurzer Sinn: funzt einwandfrei! Danke für die Hilfe!

  • Wie kann das Zeichen "#" aus einer Ini-Datei in Function Send übergeben werden?

    • Duckbone
    • 21. Januar 2008 um 16:46
    Zitat von Fast2

    Oder gleich richtig in die INI schreiben. (Also anstatt dem: ("Daten#123") das: ("Daten" & "{#}" & "123")). Ich weiß nur nicht ob INIRead das akzeptiert.

    Das geht leider nicht, da die ini-datei von einem "Fremdsystem" kommt und ich da nichts dran ändern kann, d.h. die Werte müssen "as is" übernommen werden.

  • Wie kann das Zeichen "#" aus einer Ini-Datei in Function Send übergeben werden?

    • Duckbone
    • 21. Januar 2008 um 16:10

    Hallo zusammen,

    in einem Script lese ich Daten aus und möchte diese via SendKey weitergeben.

    Beispiel:
    $var = IniRead("C:\Temp\myfile.ini", "section2", "key", "NotFound")
    Run("c:\windows\notepad.exe")
    WinWaitActive("Unbenannt - Editor")
    send($var)

    Mein Problem ist nun, daß die Daten das Zeichen "#" enthalten.
    (Ebenso enthalten sind ! + ^ { }, das "#" soll nur als Besipiel dienen...)
    Das Script übergibt exakt bis zum "#". Also wenn die Daten aus $var z.B. "Daten#123"
    wären, übergibt send($var) an notepad nur "Daten".

    Es liegt sicherlich daran, daß "#" normalerweise explizit mit {#} übergeben wird.

    Mache ich die Übergabe quasi manuell mit send("Daten" & "{#}" & "123") wird korrekt übergeben.
    Nür nützt mir das nicht viel, da ich ja via Variable übergeben muß?


    Any ideas? ?(

    Grüße,
    Duckbone

  • Probleme mit Variablen in Funktion "FileExists"

    • Duckbone
    • 11. Januar 2008 um 21:29
    Zitat von leviathan

    also ich weiß nicht, aber einmal schreibst du die Datei AutoLogin.ini oder dann wieder so autologin.ini - musst dich für eins entscheiden


    :D ja....*peinlich*, es geht natürlich um die Datei AutoLogon.ini (Hab das gleich mal korrigiert).

    Aber das eigentliche Problem ist, daß wenn ich eben die Variable @UserProfileDir oder auch @MyDocumentsDir verwende, diese nicht aufgelöst werden.

    Verwende ich diese Variabalen z.B. in einer MsgBox, dann werden die korrekten Results angezeigt.

    Trage ich den absoluten Pfad ohne Variable in die Funktion "FileExists" ein, dann klappt es!

    Es ist für mich aber wichtig innerhalb der Funktion "FileExists" mit Variablen zu arbeiten.

    Mache ich da was falsch, oder geht das einfach so nicht?


    Grüssle,

    Duckbone

  • Probleme mit Variablen in Funktion "FileExists"

    • Duckbone
    • 11. Januar 2008 um 21:01

    Hallo peethebee,

    ja, die Variable @MyDocumentsDir entspricht dem Pfad c:\documents and Settings\user123\my documents. Es soll dort geprüft werden, ob die Datei AutoLogin.ini vorhanden ist. Das Ergbnis der MsgBox verweist auf den korrekten Pfad.

    Batchmässig würde das so aussehen:

    if exist %Userprofile%\"my documents"\AutoLogon.ini %windir%\notepad.exe

    Grüße,
    Duckbone

  • Probleme mit Variablen in Funktion "FileExists"

    • Duckbone
    • 11. Januar 2008 um 20:49

    Hallo Forum,

    ich habe ein kleines Problem mit der Funktion "FileExists".
    Sobald ich innerhalb der Anweisung der Funktion "FileExists" Variablen verwende,
    werden diese augenscheinlich nicht korrekt, bzw gar nicht interpretiert.

    Hier der Codeschnipsel (AutoIt Version: 3.2.10.0):

    If FileExists(@MyDocumentsDir & "\AutoLogon.ini") Then
    Run(@WindowsDir & "\notepad.exe")
    Else
    MsgBox(0, "Script", "Datei fehlt. Bye!")
    EndIf

    Ersetze ich die Variable @MyDocumentsDir durch den tatsächlichen Pfad funktioniert das:

    If FileExists("c:\documents and Settings\user123\my documents\AutoLogon.ini") Then
    Run(@WindowsDir & "\notepad.exe")
    Else
    MsgBox(0, "Script", "Datei fehlt. Bye!")
    EndIf


    Andere Versuche wie z.B.

    If FileExists(@UserProfileDir & "\my documents\AutoLogon.ini\") Then oder
    ...

    $var = @MyDocumentsDir & "\AutoLogon.ini"
    If FileExists($var) "Then
    ...

    schlugen ebenfalls fehl.

    Kann mir jemand sagen, was ich falsch mache?


    Schon mal vielen Dank!

    Liebe Grüße,
    Duckbone

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™