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

  • Dedizierten string aus File auslesen und in Variable abfüllen

    • alpines
    • 12. März 2018 um 14:30

    Das kannst du super mit StringRegExp filtern. Probier mal folgendes: $aResult = StringRegExp($sZeile1, "Version:\s*(\d+\.\d+\.\d+\.\d+)\|\s*\d+\|\s*(\d+\.\d+\.\d+\s*\d+:\d+:\d+)", 3)

    Das Ergebnis kannst du dir dann mit _ArrayDisplay anzeigen.

    Du solltest aber aufpassen, auch wirklich nur die erste Zeile reinzuschmeißen, denn ich kenne das restliche Format der Datei nicht.

    Wenn du alles eingibst kann es sein, dass er auch andere Werte matchen wird.

  • Login-Daten verschlüsselt speichern für spätere3 Verwendung

    • alpines
    • 12. März 2018 um 11:25

    Grundsätzlich ist es keine gute Idee die Daten im Script oder in Ressourcen zu hinterlegen, da man unter Umständen sie auslesen kann.

    Die Crypt.au3 bietet dir verschiedene Verschlüsselungen an (RC4, AES, DES, ...) die du nutzen könntest.

    Ein einfaches Beispiel wie man leicht an die Dateien kommen kann wäre die RunAs.exe auszutauschen und einfach die Kommandozeilenparameter anzuzeigen und man hat direkt Benutzername sowie Passwort als Klartext.

  • Magnify funktioniert nicht mehr richtig

    • alpines
    • 12. März 2018 um 11:13

    Hast du vielleicht DPI-Skalierung an? Vielleicht kommt es ja so durcheinander.

  • Basepointer auslesen mit NomadMemory.au3 oder WinAPI.au3

    • alpines
    • 11. März 2018 um 20:16
    Zitat von Andy

    ....und wieder mal ein schönes Beispiel, dass KEIN MENSCH diese ominöse, im Threadtitel genannte UDF braucht...

    Ich weiß gar nicht wann die UDF gepostet wurde und ob zu dem Zeitpunkt schon die WinAPI-Funktion bereits implementiert war.

    Die ist nämlich schon viele viele Jahre alt und in dutzenden Versionen gepostet worden, dass man da nur den Überblick verlieren kann.

    Das blöde an der UDF ist, dass es einfacher für Scriptkiddies ist sich was zusammenzuschreiben, da sie mit DllStructs und sonstigem überhaupt nicht in Kontakt kommen.

    Deshalb wird es ja auch meistens dafür verwendet.

  • Probleme mit _FileListToArray()

    • alpines
    • 11. März 2018 um 14:35

    Übrigens noch eine kleine Erwähnung wert:

    Zitat von FileExists Dokumentation

    If you are running in X86 mode (@AutoItX64 = 0) under a Windows running in X64 mode (@OSArch = "X64") and you want to access @WindowsDir\System32, X64 files will not be found. So you can use @WindowsDir\Sysnative.

  • Basepointer auslesen mit NomadMemory.au3 oder WinAPI.au3

    • alpines
    • 11. März 2018 um 12:59
    Zitat von TheDeath24

    Habe auch gleich mal was gespendet für die Community hier! Ist echt Super.

    Wow, dankeschön. Das hilft uns allen weiter! :thumbup:

  • Basepointer auslesen mit NomadMemory.au3 oder WinAPI.au3

    • alpines
    • 11. März 2018 um 12:43

    Achso, jetzt sehe ich wie CE auf die preferred ImageBase kommt!

    Das ist die AutoIt ImageBase - EntryPoint. Die WinAPI gibt dir allerdings die Summe beider als EntryPoint zurück.

    Schau mal ob du einfach 0x9B5454 von deiner ausgelesenen ImageBase subtrahieren kannst, dann solltest du auf den selben Wert kommen.

    Ob das bei allen OSsen dann noch funktioniert weiß ich nicht.

  • Basepointer auslesen mit NomadMemory.au3 oder WinAPI.au3

    • alpines
    • 11. März 2018 um 12:20

    Wie es scheint, ist es die Preferred Imagebase, die müsste in der PE der Datei eigentlich enthalten sein.

    Das ist für mich auch Neuland, normalerweise klappt es immer mit der ImageBase aus dem Modul.

    Ist es vielleicht die "ptr BaseOfDll" statt "ptr EntryPoint"?

  • Basepointer auslesen mit NomadMemory.au3 oder WinAPI.au3

    • alpines
    • 11. März 2018 um 12:06

    Dann nimm mal bei _WinAPI_GetModuleInformation hinten das Modul "LCore.exe" (Return von _WinAPI_GetModuleHandle).

    Wenn da keiner enthalten ist kann er dir die ImageBase eines anderen Teils zurückgeben.

  • Basepointer auslesen mit NomadMemory.au3 oder WinAPI.au3

    • alpines
    • 11. März 2018 um 11:54

    Was sagt dir denn CE, was die Base des Programms ist?

  • Ordner überprüfen verschiedene Arbeiten ausführen und das ganze als Dauerschleife

    • alpines
    • 11. März 2018 um 11:50
    Zitat von Peter S. Taler

    Sorry aber wo steht das ?

    Tatsächlich, wusste ich nicht. In der Hilfe stehts zumindest nicht.

    Wenn man trotzdem den Dateinamen wissen möchte kommt man um _FileListToArray wohl trotzdem nicht rum.

  • Fenster Größe veränderbar - Minimum nicht unterschreiten

    • alpines
    • 11. März 2018 um 11:02
    Zitat von BugFix

    Aber die Funktion wird ja nur aufgerufen, wenn für das registrierte Fenster die Nachricht auftritt.

    AutoIt kann (meines Wissens nach) nicht die GUIs der Nachrichten bei der Registration unterscheiden.

    Wenn du da kein Switch $hWnd hast, dann werden alle anderen Fenster diese Größe nicht unterschreiten können.

    Deshalb existiert der $hWnd Parameter ja, der sagt dir welches Fenster die Nachricht bekommen hat.

    Wenn man für jedes Fenster einzeln Nachrichten registrieren könnte wäre das ziemlich schick, funktioniert aber glaube ich nicht.

    Hier sind beide Fenster begrenzt:

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    $Form1 = GUICreate("Form1", 200, 200, 192, 124, $WS_SIZEBOX)
    GUISetState(@SW_SHOW)
    
    $Form2 = GUICreate("Form2", 200, 200, 400, 124, $WS_SIZEBOX)
    GUISetState(@SW_SHOW)
    
    GUIRegisterMsg($WM_GETMINMAXINFO, "_WM_GETMINMAXINFO")
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
        EndSwitch
    WEnd
    
    Func _WM_GETMINMAXINFO($hWnd, $iMsg, $wParam, $lParam)
        $tInfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
        DllStructSetData($tInfo, 7, 200)
        DllStructSetData($tInfo, 8, 200)
        Return $GUI_RUNDEFMSG
    EndFunc
    Alles anzeigen

    hier nur eins:

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    
    $Form1 = GUICreate("Form1", 200, 200, 192, 124, $WS_SIZEBOX)
    GUISetState(@SW_SHOW)
    
    $Form2 = GUICreate("Form2", 200, 200, 400, 124, $WS_SIZEBOX)
    GUISetState(@SW_SHOW)
    
    GUIRegisterMsg($WM_GETMINMAXINFO, "_WM_GETMINMAXINFO")
    
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit
    
        EndSwitch
    WEnd
    
    Func _WM_GETMINMAXINFO($hWnd, $iMsg, $wParam, $lParam)
        $tInfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
    
        Switch $hWnd
            Case $Form1
                DllStructSetData($tInfo, 7, 200)
                DllStructSetData($tInfo, 8, 200)
        EndSwitch
    
        Return $GUI_RUNDEFMSG
    EndFunc
    Alles anzeigen
  • Basepointer auslesen mit NomadMemory.au3 oder WinAPI.au3

    • alpines
    • 11. März 2018 um 10:59

    Ja Kollege, so wird das garantiert nichts werden :D

    $tagMODULEINFO beinhaltet die Struktur des DllStructs welches von _WinAPI_GetModuleInformation gefüllt wird.

    Das DllStruct selbst wird von der Funktion selber zurückgegeben, schau doch mal in die Hilfe.

    AutoIt
    #include <WinAPIProc.au3>
    #include <ProcessConstants.au3>
    #include <WinAPI.au3>
    
    $hOpen = _WinAPI_OpenProcess($PROCESS_ALL_ACCESS, True, ProcessExists("SciTE.exe"))
    ConsoleWrite("Handle: " & $hOpen & @CRLF)
    
    $tStruct = _WinAPI_GetModuleInformation($hOpen)
    ConsoleWrite("EntryPoint: " & DllStructGetData($tStruct, "EntryPoint") & @CRLF)
    
    _WinAPI_CloseHandle($hOpen)
    Alles anzeigen
  • Basepointer auslesen mit NomadMemory.au3 oder WinAPI.au3

    • alpines
    • 11. März 2018 um 10:41

    Was gibt dir die Funktion denn als EntryPoint im Struct zurück?

  • Fenster Größe veränderbar - Minimum nicht unterschreiten

    • alpines
    • 11. März 2018 um 10:38

    Du musst WM_GETMINMAXINFO dafür verwenden, dann kannst du es auch nicht kleiner ziehen:

    AutoIt
    #include <WindowsConstants.au3>
    #include <GuiDateTimePicker.au3>
    #include <GUIConstantsEx.au3>
    
    Global $hGui, $hDate, $cbSN, $cbColleague, $inLocation, $hPurchase, $btSave
    Global Enum $iLblDate, $iLblSN, $iLblColleaugue, $iLblLocation, $iLblPurchase, $iBtnSave
    Global $aMinSize[] = [450,300]
    
    ; ==== lesen aus *.cfg ================
    ; iLang = 0-EN, 1-DE
    Global $iLang = 1
    
    Global $aText[6][2] = [ _
    ['Date','Datum'], _
    ['Serial number','Serien-Nr'], _
    ['Colleague','Kollege'], _
    ['Location','Ort'], _
    ['Date of purchase','Einkaufsdatum'], _
    ['Save','Speichern']]
    ; =====================================
    
    _Main($hGui, $hDate, $cbSN, $cbColleague, $inLocation, $hPurchase)
    
    Func _Main(ByRef $_hGui, ByRef $_hDate, ByRef $_cbSN, ByRef $_cbColleague, ByRef $_inLocation, ByRef $_hPurchase)
        $_hGui = GUICreate('Formular', $aMinSize[0], $aMinSize[1], -1,-1,BitOr($GUI_SS_DEFAULT_GUI,$WS_MAXIMIZEBOX,$WS_SIZEBOX))
        GUICtrlCreateLabel($aText[$iLblDate][$iLang], 10, 13, 120)
        GUICtrlSetResizing(-1, $GUI_DOCKALL)
        $_hDate = _GUICtrlDTP_Create($_hGui, 135, 10, 120, 21, $DTS_SHORTDATECENTURYFORMAT)
    
        GUICtrlCreateLabel($aText[$iLblSN][$iLang], 10, 48, 120)
        GUICtrlSetResizing(-1, $GUI_DOCKALL)
        $_cbSN = GUICtrlCreateCombo('', 135, 45, 300)
        GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT,$GUI_DOCKRIGHT,$GUI_DOCKTOP,$GUI_DOCKHEIGHT))
    
        GUICtrlCreateLabel($aText[$iLblColleaugue][$iLang], 10, 83, 120)
        GUICtrlSetResizing(-1, $GUI_DOCKALL)
        $_cbColleague = GUICtrlCreateCombo('', 135, 80, 300)
        GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT,$GUI_DOCKRIGHT,$GUI_DOCKTOP,$GUI_DOCKHEIGHT))
    
        GUICtrlCreateLabel($aText[$iLblLocation][$iLang], 10, 118, 120)
        GUICtrlSetResizing(-1, $GUI_DOCKALL)
        $_inLocation = GUICtrlCreateInput('', 135, 115, 300)
        GUICtrlSetResizing(-1, BitOR($GUI_DOCKLEFT,$GUI_DOCKRIGHT,$GUI_DOCKTOP,$GUI_DOCKHEIGHT))
    
        GUICtrlCreateLabel($aText[$iLblPurchase][$iLang], 10, 153, 120)
        GUICtrlSetResizing(-1, $GUI_DOCKALL)
        $_hPurchase = _GUICtrlDTP_Create($_hGui, 135, 150, 120, 21, $DTS_SHORTDATECENTURYFORMAT)
    
        $_btSave = GUICtrlCreateButton($aText[$iBtnSave][$iLang], 335, 150, 100, 21)
        GUICtrlSetResizing(-1, BitOR($GUI_DOCKWIDTH,$GUI_DOCKTOP,$GUI_DOCKHEIGHT,$GUI_DOCKRIGHT))
    
        GUISetState()
    
        GuiRegisterMsg($WM_GETMINMAXINFO, '_WM_GETMINMAXINFO')
    
        While 1
            Switch GUIGetMsg()
                Case -3
                    Exit
            EndSwitch
        WEnd
    EndFunc
    
    Func _WM_GETMINMAXINFO($hWnd, $iMsg, $wParam, $lParam)
        $tInfo = DllStructCreate("int;int;int;int;int;int;int;int;int;int", $lParam)
    
        Switch $hWnd
            Case $hGui
                DllStructSetData($tInfo, 7, $aMinSize[0] + 2 * 8)
                DllStructSetData($tInfo, 8, $aMinSize[1] + 2 * 19)
    
        EndSwitch
    
        Return $GUI_RUNDEFMSG
    EndFunc
    Alles anzeigen
  • Basepointer auslesen mit NomadMemory.au3 oder WinAPI.au3

    • alpines
    • 11. März 2018 um 09:58

    Wird die Base überhaupt richtig ausgelesen?

  • Ordner überprüfen verschiedene Arbeiten ausführen und das ganze als Dauerschleife

    • alpines
    • 10. März 2018 um 22:04

    Achso, na dann solltest du auf jeden Fall mal die Grundlagen durcharbeiten, denn wenn du eine Funktion aufrufst genügt es (bis auf wenige Ausnahmen) den Wert des Parameters einfach zu übergeben.

    Da $sFilter und die restlichen Parameter alle optional sind reicht folgender Aufruf schon $aErgebnis = _FileListToArray("D:\xml").

  • Ordner überprüfen verschiedene Arbeiten ausführen und das ganze als Dauerschleife

    • alpines
    • 10. März 2018 um 21:52

    Wieso schreibst du dort $sFilePath="D:\xml"? Du meintest doch, dass du bereits Scripte geschrieben hast, wie kommst du dann auf die Idee?

  • Ordner überprüfen verschiedene Arbeiten ausführen und das ganze als Dauerschleife

    • alpines
    • 10. März 2018 um 21:25

    Du kannst bei FileExists keine Wildcards verwenden. Wenn du dir die Dateien in einem Verzeichnis auflisten möchtest, dann solltest du _FileListToArray verwenden.

  • Ordner überprüfen verschiedene Arbeiten ausführen und das ganze als Dauerschleife

    • alpines
    • 10. März 2018 um 20:52

    Woran scheiterts denn im Moment?

    FileExists gibt dir zurück ob eine Datei existiert und mit @HOUR und @MIN kriegst du Stunden und Minuten.

    Der Rest ist einfach nur eine Kombination der Befehle und Schleifen, das Diagramm hast du ja schon gezeichnet also kannst du das praktisch abcoden.

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™