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

Beiträge von alpines

  • HTMHelp - Automatische UDF-Dokumentation (04.08.2015/1.1.0)

    • alpines
    • 28. März 2019 um 13:27
    Zitat von Hamburgo

    Bei meinem Versuch mir das Tool mal anzuschauen habe ich folgende Meldung erhalten:

    "You do not have sufficient permissions to access this page.".

    Zitat von chesstiger

    Natürlich steht das Tool noch zur Verfügung. Sobald ich wieder zuhause bin, lade ich alles mal als Forenanhang hoch.


    Edit: water HTMHelp-1.1.0-src.zip

  • WebDriver UDF: Syntax für Maus-Aktionen und Tasten wie Enter, Pfeil-Tasten usw.

    • alpines
    • 28. März 2019 um 00:00
    Zitat von Hamburgo

    Bitte nicht auf die W3C-Dokumentation verweisen. Was dort geschrieben steht, da verstehe ich nur Bahnhof.

    Da wirst du wohl nicht rumkommen. Es ist auch nicht so schlimm wie es aussieht, wenn du die Demo-Actions richtig strukturierst siehst du sehr schnell wie du das verwenden musst.

    https://www.w3.org/TR/webdriver/#pointer-actions

    When required to dispatch a pointerMove action with arguments source id, action object, input state and tick duration a remote end must run the following steps...

    Code
    '{' & _
        '"actions": [' & _
            '{' & _
                '"id" : "default mouse", ' & _
                '"type" : "pointer", ' & _
                '"parameters" : {' & _
                    '"pointerType" : "mouse" ' & _
                    '}, ' & _
                '"actions" : [' & _
                    '{' & _
                        '"duration" : 100, ' & 
                        '"x" : 0, ' & _
                        '"y" : 0, ' & _
                        '"type" : "pointerMove", ' & _
                        '"origin" : {' & _
                            '"ELEMENT" : "", ' & _
                            '"' & $_WD_ELEMENT_ID & '" : "' & $sElement & '"' & _
                            '}' & _
                    '},' & _
                    '{' & _
                        '"button" : 2, ' & _
                        '"type" : "pointerDown"' & _
                    '},' & _
                    '{' & _
                        '"button" : 2, ' & _
                        '"type" : "pointerUp"' & _
                    '}' & _
                ']' & _
            '}' & _
        ']' & _
    '}'
    Alles anzeigen
  • Problem mit RC4 verschlüsselung

    • alpines
    • 27. März 2019 um 20:06
    Zitat von Tyzer

    Ich möchte das ganze schon verschlüsselt übertragen gibt ja genug Programme mit den man den Traffic mitlesen kann, da soll er nicht auch noch lesbar sein.

    Dann benutzt man aber nicht RC4 wenn man Text sicher verschlüsseln möchte, RC4 ist knackbar und das in vergleichsweise kurzer Zeit: https://en.wikipedia.org/wiki/RC4

  • Anwendungen automatisch an bestimmte Monitorposition mit definierter Größe öffnen

    • alpines
    • 27. März 2019 um 16:17

    Kannst du mal Opt("WinTitleMatchMode", 4) nehmen? Der Standardwert ist "Match from start" aber du willst Advanced Search verwenden.

    Also entweder als Titel nur "Telegram" angeben oder die Opt mit Wert 4. https://www.autoitscript.com/autoit3/docs/f…ItSetOption.htm

  • WebDriver-Demo: Der Versuch die unterschiedlichen Demos zu verstehen, scheitert leider, bisher

    • alpines
    • 25. März 2019 um 20:40

    Du suchst nach einem Inputfeld mit der Id: "lst-ib1" bzw. "lst-ib" (welches nicht vorhanden ist), versuch doch nach "q" (Name, NICHT Id!) zu suchen.

    Ich hab das Webdriverzeugs nicht drauf, aber ich schätze mal es müsste so klappen, zumindest klappt es mit der IE.au3.

  • WebDriver-Demo: Der Versuch die unterschiedlichen Demos zu verstehen, scheitert leider, bisher

    • alpines
    • 25. März 2019 um 20:05

    Ohne Skript kannst du ja wohl keine Hilfe erwarten oder?

  • MyBackupRestore - CPU-Last zu hoch

    • alpines
    • 24. März 2019 um 08:48
    Zitat von Bitnugger

    Local $nMsg = GUIGetMsg()
    While 1
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

    Alles anzeigen

    Du holst dir einmal das Event ab und fragst immer dasselbe ab, du hast vergessen in der Schleife nochmal GUIGetMsg() in $nMsg zu speichern.

  • MyBackupRestore - CPU-Last zu hoch

    • alpines
    • 23. März 2019 um 23:48

    Du solltest dir angewöhnen binäre Ressourcen nicht im Hauptskript abzuspeichern, das verlangsamt den Editor einfach nur unnötig.

    Lager sie in eine eigene .au3 aus und binde sie mit include ein. Deine zip ist auch nicht lauffähig, die OutlookExConstants fehlt.

    Es wäre schön wenn du uns verrätst wo dein Skript in eine Schleife gerät, bzw. welche Funktionen ausgeführt werden wenn du Sachen anklickst die andere unwählbar machen,

    damit wir uns nicht durch die tausende Zeilen kämpfen müssen.

  • Zwei Farben Abfragen dann schreiben

    • alpines
    • 22. März 2019 um 20:17

    Du solltest dir erstmal die Grundlagen zu AutoIt anschauen, denn du machst hier ziemlich einfache Fehler.

    Der Rückgabewert von PixelSearch ist nicht so verwendbar wie du es hier versuchst und das kann nicht dein gesamtes Skript sein, da das so nicht lauffähig ist.

    Hast du gerade kein Skript an dem du bastelst wo du das ganze einbauen möchtest? Vielleicht siehst du den Wald vor lauter Bäumen nicht, deshalb frag ich so genau nach.

  • Zwei Farben Abfragen dann schreiben

    • alpines
    • 22. März 2019 um 20:01

    Was soll dein Skript in welchem Program/Spiel denn bewirken? Wenn du uns zeigst wo du was genau machen willst, dann können wir dir vielleicht eine bessere Lösung bieten als PixelSearch.

  • Problem mit DllCall (aaeonEAPI.dll)

    • alpines
    • 21. März 2019 um 21:18
    Zitat von Homer J. S.

    $DllResult=DllCall($DllHandle, "uint:cdecl", "EApiBoardGetStringA", "uint", $EAPI_ID_BOARD_NAME_STR, "ptr", $pBuffer, "uint_ptr*" ,$pBuflen)

    Dein Parametertyp für $pBuflen ist "uint_ptr*", das wäre (wenn das überhaupt möglich ist in AutoIt, was es nicht ist) ein Pointer vom Pointer. Es darf aber nur ein einfacher Pointer sein -> "uint_ptr", "uint*" oder "ptr" nutzen!

    Du solltest für das Initialize und UnInitialize ebenfalls :cdecl nutzen, da diese auch API Calls sind und keine Std Calls.

  • StingToBinary Auslesen und Umwandeln mit PHP

    • alpines
    • 21. März 2019 um 16:26

    Ich hatte fälschlicherweise unpack statt pack genutzt und bin dann auf hex2bin gestoßen aber das passiert nun mal wenn man keine PHP-Kenntnisse hat, die Namen sind wohl irgendwie vertauscht.

  • StingToBinary Auslesen und Umwandeln mit PHP

    • alpines
    • 21. März 2019 um 15:56

    Dass du seit über 4 Stunden suchst kann ich ehrlich gesagt nicht glauben, ich habe nach nicht mal 5 Minuten "hex2bin" gefunden, und damit klappts ohne Probleme.

    https://rextester.com/LZGWQ58334

  • Problem mit DllCall (aaeonEAPI.dll)

    • alpines
    • 21. März 2019 um 15:48
    Zitat von Homer J. S.

    Es sieht ein wenig so aus, als ob die DLL nicht das macht, was sie sollte - Oder?

    Das kann ich dir nicht sagen, weil ich die DLL nicht kenne. Eine kurze Google-Suche liefert mir das: https://www.yumpu.com/en/document/re…erface-picmg/21

    Und das scheint das zu bestätigen was in der Dokumentation steht.

    Kannst du mal das Skript posten mit dem du die Versuche gemacht hast? Vielleicht hast du ja da einen Fehler drin.

  • Problem mit DllCall (aaeonEAPI.dll)

    • alpines
    • 21. März 2019 um 14:19
    Zitat von Homer J. S.

    Somit habe ich mich auch an das Auslesen der Boardinformationen gemacht. Dies funktioniert auch schon, allerdings ändert die DLL die Bufferlänge nicht. Laut Dokumentation ist das eine “__INOUT“ Funktion und daher habe ich “by reference“ angegeben, aber die Bufferlänge bleibt bei meiner Vorgabe. Vieleicht hast du ja noch einen Tipp für mich?

    Ich nehme mal an, dass der Platz im Buffer reicht und er deswegen die Länge gleichbehält.

    Er sollte einen Fehler zurückgeben wenn er zu klein ist, siehe in der Doku: Returns EAPI_STATUS_MORE_DATA: strlen(Id)+1>*pBufLen

    Vielleicht passt er auch die Buffergröße an, übergib mal einen sehr kleinen Buffer und schau dir an was er zurückgibt und was in *pBuffer und *pBufferLen drinsteht.

  • Problem mit DllCall (aaeonEAPI.dll)

    • alpines
    • 21. März 2019 um 00:20

    Ich hab mir mal die Freiheit genommen und dein Skript angepasst, ich kriege bereits für das Initialize einen Returnwert von Not_Initialized.

    Wie gesagt: Probier es mal auf deiner Maschine aus, vielleicht fehlt mir ja die Software oder was anderes dazu.

    Die Daten kannst du auch über andere Wege auslesen, statt über eine DLL, wenn es deinen Standard-PC betrifft. Es gibt auch viele Beispiele in AutoIt, einfach mal danach suchen.

    Code
    ;Die Extranull ist wichtig, da AutoIt die Zahlen sonst als NEGATIVE interpretiert!
    Global Const $EAPI_STATUS_NOT_INITIALIZED = 0x0FFFFFFFF
    Global Const $EAPI_STATUS_INVALID_PARAMETER = 0x0FFFFFEFF
    Global Const $EAPI_STATUS_UNSUPPORTED = 0x0FFFFFCFF
    Global Const $EAPI_STATUS_ERROR = 0x0FFFFF0FF
    Global Const $EAPI_STATUS_SUCCESS = 0
    
    Global $EAPI_ID_HWMON_CPU_TEMP = 0x20000 ;Aus der Datei aaeonEAPI.h
    
    Global $hDLL = DllOpen(@ScriptDir & "\aaeonEAPI.dll")
    If @error Then
        MsgBox(16, "Error: DllOpen", "Die DLL konnte nicht geöffnet werden." & @CRLF & "@error=" & @error)
        Exit
    EndIf
    
    Global $aReturn = DllCall($hDLL, "uint:cdecl", "EApiLibInitialize")
    If @error Then
        MsgBox(16, "Error: DllCall EApiLibInitialize", "Der Aufruf von EApiLibInitialize schlug fehl." & @CRLF & "@error=" & @error)
        Exit
    EndIf
    
    MsgBox(64, "DllCall: EApiLibInitialize", "Return: " & _ParseReturn($aReturn[0]))
    
    Global $tValue = DllStructCreate("uint")
    Global $pValue = DllStructGetPtr($tValue, 1)
    
    $aReturn = DllCall($hDLL, "uint:cdecl", "EApiBoardGetValue", "uint", $EAPI_ID_HWMON_CPU_TEMP, "uint_ptr", $pValue)
    If @error Then
        MsgBox(16, "Error: DllCall EApiBoardGetValue", "Der Aufruf von EApiBoardGetValue schlug fehl." & @CRLF & "@error=" & @error)
        Exit
    EndIf
    
    MsgBox(64, "DllCall: EApiBoardGetValue", "Return: " & _ParseReturn($aReturn[0]) & @CRLF & "*pValue = " & DllStructGetData($tValue, 1))
    
    $aReturn = DllCall($hDLL, "uint:cdecl", "EApiLibUnInitialize")
    If @error Then
        MsgBox(16, "Error: DllCall EApiLibUnInitialize", "Der Aufruf von EApiLibUnInitialize schlug fehl." & @CRLF & "@error=" & @error)
        Exit
    EndIf
    
    DllClose($hDLL)
    
    Func _ParseReturn($iReturnCode)
        Switch $iReturnCode
            Case $EAPI_STATUS_NOT_INITIALIZED
                Return "EAPI_STATUS_NOT_INITIALIZED"
    
            Case $EAPI_STATUS_INVALID_PARAMETER
                Return "EAPI_STATUS_INVALID_PARAMETER"
    
            Case $EAPI_STATUS_UNSUPPORTED
                Return "EAPI_STATUS_UNSUPPORTED"
    
            Case $EAPI_STATUS_ERROR
                Return "EAPI_STATUS_ERROR"
    
            Case $EAPI_STATUS_SUCCESS
                Return "EAPI_STATUS_SUCCESS"
        EndSwitch
    EndFunc
    Alles anzeigen
  • Problem mit DllCall (aaeonEAPI.dll)

    • alpines
    • 21. März 2019 um 00:06
    Code
    EApiStatus_t EAPI_CALLTYPE EApiBoardGetValue (__IN EApiId_t Id, __OUT uint32_t * pValue)

    Deine DllCalls sind grundsätzlich falsch, "none" darfst du als Returnwert nicht nehmen wenn in dem Handbuch explizit EApiStatus_t (das ist uint32_t getypedefed) verlangt wird. Also musst du das schon mal ändern.

    Dazu kommt, dass du eine illegalen Pointer (Nullpointer) als pValue Parameter nimmst. Hier musst du ein neues DllStruct mit dem Element erstellen das gefordert ist, also uint, davon den Pointer holen mittels DllStructGetPtr, und nachdem du das gemacht hast, diesen Parameter als "uint_ptr" (oder "uint*" - AutoIt wandelt das um) an den DllCall übergeben.

    Als Returnwert der Funktion kriegst du nur einen Statuscode der beinhaltet ob die Operation erfolgreich war, der Wert steht im dereferenzierten Pointer bzw. im Struct wenn du ihn direkt ausliest.

    Nicht zu vergessen ist CallType der Funktion, es handelt sich hierbei um keinen Standardcall sondern um einen API Call, das kannst du in AutoIt mit :cdeclhinter dem Returntype machen.

    Nachdem ich weiteres Material zusammengesucht habe (was die Returncodes betrifft, die tauchen nämlich nirgends auf) habe ich folgendes zum laufen bekommen.

    Dein Call kann also so oder so nicht funktionieren.

    Code
    $Buffer=0
    $EAPI_ID_HWMON_CPU_TEMP=0x20000 ;Aus der Datei aaeonEAPI.h
    $aRet=DllCall($hDLL, "uint", "EApiBoardGetValue", "uint", $EAPI_ID_HWMON_CPU_TEMP, "uint*", $Buffer)

    Hättest du ihn so formuliert, ginge es:

    Code
    $Buffer=DllStructCreate("uint")
    $pBuffer = DllStructGetPtr($Buffer, 1)
    $EAPI_ID_HWMON_CPU_TEMP=0x20000 ;Aus der Datei aaeonEAPI.h
    $aRet=DllCall($hDLL, "uint:cdecl", "EApiBoardGetValue", "uint", $EAPI_ID_HWMON_CPU_TEMP, "uint_ptr", $pBuffer)

    Dieser Code crasht bei mir nicht, gibt aber als pValue 0 und EAPI_STATUS_ERROR zurück. Vielleicht habe ich auch die Hardware dafür nicht, keine Ahnung. Probier mal obs bei dir klappt.

    Den Code habe ich nicht gesäubert, und er sieht ehrlich gesagt ziemlich beschissen aus, du solltest ihn sauberer schreiben.

    Code
    #include<array.au3>
    
    ;Dll öffnen
    $hDLL=DllOpen(@ScriptDir & "\aaeonEAPI.dll")
    If (@error) Then
     MsgBox(16, "Error DllOpen", @error)
     Exit
    Else
     MsgBox(0, "Info", "DllOpen erfolgreich")
    EndIf
    
    
    ;Dll init
    $DllCall=DllCall($hDLL, "uint:cdecl", "EApiLibInitialize")
    If (@error) Then
     MsgBox(16, "Error DllOpen", @error)
     Exit
    Else
     MsgBox(0, "Info", "EApiLibInitialize erfolgreich")
    EndIf
    
    
    ;Dll Temperaturabfrage
    $Buffer=DllStructCreate("uint")
    $pBuffer = DllStructGetPtr($Buffer, 1)
    $EAPI_ID_HWMON_CPU_TEMP=0x20000 ;Aus der Datei aaeonEAPI.h
    $aRet=DllCall($hDLL, "uint:cdecl", "EApiBoardGetValue", "uint", $EAPI_ID_HWMON_CPU_TEMP, "uint_ptr", $pBuffer)
    If (@error) Then
     MsgBox(16, "Error DllOpen", @error)
     Exit
    Else
        ;Die Extranull ist wichtig, da AutoIt die Zahlen sonst als NEGATIVE interpretiert!
    
        $EAPI_STATUS_NOT_INITIALIZED = 0x0FFFFFFFF
        $EAPI_STATUS_INVALID_PARAMETER = 0x0FFFFFEFF
        $EAPI_STATUS_UNSUPPORTED = 0x0FFFFFCFF
        $EAPI_STATUS_ERROR = 0x0FFFFF0FF
    
        $EAPI_STATUS_SUCCESS = 0
        Local $s = ""
    
        Switch $aRet[0]
            Case $EAPI_STATUS_NOT_INITIALIZED
                $s = "Error Code: EAPI_STATUS_NOT_INITIALIZED"
    
            Case $EAPI_STATUS_INVALID_PARAMETER
                $s = "Error Code: EAPI_STATUS_INVALID_PARAMETER"
    
            Case $EAPI_STATUS_UNSUPPORTED
                $s = "Return Code: EAPI_STATUS_UNSUPPORTED"
    
            Case $EAPI_STATUS_ERROR
                $s = "Return Code: EAPI_STATUS_ERROR"
    
            Case $EAPI_STATUS_SUCCESS
                $s = "Return Code: EAPI_STATUS_SUCCESS"
        EndSwitch
    
        MsgBox(0,0, "Return EApiBoardGetValue=" & $aRet[0] & @CRLF & _
                    "OUT pValue = " & DllStructGetData($Buffer, 1) & @CRLF & _
                    $s)
    ENDIF
    
    
    ;Dll uinit
    $DllCall=DllCall($hDLL, "uint:cdecl", "EApiLibUnInitialize")
    If (@error) Then
     MsgBox(16, "Error DllOpen", @error)
     Exit
    Else
     MsgBox(0, "Info", "EApiLibUnInitialize erfolgreich")
    EndIf
    
    
    ;Dll schliessen
    DllClose($hDLL)
    
    
    ;Script Ende
    MsgBox(0, "Info", "Script beenden")
    Alles anzeigen
  • [gelöst] Netzwerk-Profis gefragt

    • alpines
    • 18. März 2019 um 13:40
    Zitat von Oscar

    Aber was läuft da im Hintergrund, wenn ich in der FritzBox das WLAN aus-/einschalte?

    Dein Board verbindet sich zur FritzBox neu und die FritBox broadcastet vermutlich ins Netz, dass sich jemand verbunden hat um ihn im u.a. "Netzwerk" (im Explorer) anzuzeigen (bspw. bei PCs).

    Das aktualisiert vermutlich den Menueintrag in der IDE.

  • [gelöst] Netzwerk-Profis gefragt

    • alpines
    • 18. März 2019 um 13:13
    Zitat von Peter S. Taler

    was passiert wenn Du im Hintergrund immer mal ein Ping sendest? Verschwindet der Port dann auch?

    Zitat von Oscar

    Ich kann im Browser die HTML-Seiten abrufen und ihm auch Befehle (ein-/ausschalten) geben. Selbst ein Ping beantwortet er.

    Aber all das führt nicht dazu, dass der Port wieder erscheint.

    Immer nur das aus- und wieder einschalten des WLAN im Router hilft.

  • [gelöst] Netzwerk-Profis gefragt

    • alpines
    • 18. März 2019 um 10:53
    Zitat von Oscar

    Wenn ich im Router (FritzBox) das WLAN ausschalte und dann wieder einschalte, dann taucht der Port in der Arduino-IDE wieder auf. Ohne weitere Aktion meinerseits!

    Hat das Board vielleicht einen Energiesparmodus der nach x Minuten angeht?

    Dann sollte er sich vielleicht von WLAN trennen oder in einen Ultra-Low-Power Mode gehen wo er sich beim WLAN wieder melden muss um gefunden zu werden.

    Schau mal ob es sowas gibt und ob du das deaktivieren kannst oder passiert das immer nach ein paar Stunden auch wenn du aktiv alle paar Sekunden / Minuten auf das Board flasht / schreibst?

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™