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

Beiträge von Oscar

  • Happy Birthday: Forum

    • Oscar
    • 7. Dezember 2013 um 18:01

    Heute ist es wieder soweit. Das Forum ist wieder ein Jahr älter geworden. :)
    8 Jahre ist AutoIt.de nun bereits online. Ich bin ja "erst" seit etwas über 6 Jahren dabei, aber was ich bisher miterleben durfte war doch recht positiv.
    Es gab (und gibt) zwar immer auch einige Trolle, aber ich denke, die haben wir über die Jahre ganz gut in den Griff bekommen bzw. schnell in die Bedeutungslosigkeit zurückgeschickt. :D
    Insgesamt fühle ich mich sehr wohl in diesem Forum. Was wohl zum überwiegenden Teil daran liegt, dass es hier sehr viel aktive und kompetente User gibt, die sich nicht zu schade sind anderen Usern zu helfen und dem Forum so manch tolles Script zur Verfügung stellen.
    Somit feiern wir einfach einen weiteren Geburtstag dieses Forums. :party:
    Viel Spaß euch allen und macht weiter so. :thumbup:

  • Labeel-Text überall Transparent

    • Oscar
    • 6. Dezember 2013 um 18:43

    Du hast aber vergessen Dein Script zu posten, indem der Effekt (nicht) zu sehen ist.
    Vielleicht ist die Lösung ja ganz einfach, aber nicht jeder hat Lust anhand Deiner Beschreibung erstmal die GUI zu erstellen.
    Also so ein bißchen Mithilfe wäre schon sehr hilfreich.

  • Problem mit StringInStr() --- BINÄR- bzw. HEX-Vergleich funktioniert nicht --- Projektausschnitt [EnAndDeCrypt.au3]

    • Oscar
    • 26. November 2013 um 18:28

    Der wesentliche Fehler besteht darin, dass es bei einer Binärdatei keine Zeilen gibt, also kann man auch nicht zeilenweise einlesen.
    FileReadLine muss also komplett raus aus dem Script und durch FileRead ersetzt werden. Bei FileRead kann man angeben wieviel Daten (Bytes) man einlesen will (siehe Hilfe).

  • Transparente Grafiken (Pfeile) über die GUI legen und wieder entfernen...

    • Oscar
    • 26. November 2013 um 18:21

    Benutze einfach GUICtrlCreateIcon oder GUICtrlCreatePic mit einem entsprechenden Pfeilicon oder Bild und bewege das Controlelement mit GUICtrlSetPos. Mit GUICtrlSetState kannst Du das Element anzeigen/verstecken.

  • Regexp pattern

    • Oscar
    • 26. November 2013 um 18:09

    Wenn die Beträge immer Kommabeträge sind, dann funktioniert das:

    [autoit]


    #include <Array.au3>
    $sData = FileRead(@ScriptDir & '\ktodaten.csv')
    ConsoleWrite($sData & @CR)
    $aData = StringRegExp($sData, '(?:EUR )*(\-*\d+?\,\d*)(?: EUR)*', 3)
    _ArrayDisplay($aData)

    [/autoit]
  • Buchmanagment

    • Oscar
    • 23. November 2013 um 17:09

    RR04 hatte in Post#4 schonmal auf mein Listview-Datenbank-Beispiel hingewiesen, aber der Link funktioniert nicht.
    Deshalb hier mal der richtige Link dorthin: Listview-Datenbank-Beispiel
    Eigentlich ist in dem Beispiel schon alles vorhanden. Du musst bloß die Anzahl der Spalten anpassen und die Spaltenüberschriften ändern.
    Das Script ist auch reichlich kommentiert. Wenn dann noch Fragen sind...

  • FileRead Buffer?

    • Oscar
    • 20. November 2013 um 18:32

    Ein Puffer von 1KB ist viel zu klein. Für kleine Dateien ist eine Puffergröße von 32KB sinnvoll. Bei großen Dateien sollte man eher 512KB oder sogar 1MB als Puffer verwenden.
    Anderenfalls bremst das auslesen enorm.

  • Anfänger Frage-Posten von Aufträgen gegen Entgelt?

    • Oscar
    • 18. November 2013 um 16:37

    -> verschoben nach Programmieranfragen (mit Gegenleistung)

  • Fenster in den Vordergrund

    • Oscar
    • 18. November 2013 um 05:06

    So geht's:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WinAPI.au3>
    #include <Constants.au3>

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

    $hGui = GUICreate("Meine GUI") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird
    GUICtrlCreateEdit("", 10, 10, 200, 50)

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

    GUISetState(@SW_SHOW) ; Zeigt das leere GUI-Fenster

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

    Sleep(1000)
    GUISetState(@SW_HIDE, $hGui)

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

    Sleep(1000)
    GUISetState(@SW_SHOWNOACTIVATE) ; Zeigt das leere GUI-Fenster
    $aPos = WinGetPos($hGui)
    _WinAPI_SetWindowPos($hGui, $HWND_TOPMOST, $aPos[0], $aPos[1], $aPos[2], $aPos[3], $SWP_NOACTIVATE)
    WinSetOnTop($hGui, "", 0)

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

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    [/autoit]
  • Fenster in den Vordergrund

    • Oscar
    • 17. November 2013 um 20:01

    Versuch's damit:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WinAPI.au3>
    #include <Constants.au3>

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

    $hGui = GUICreate("Meine GUI") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird
    GUICtrlCreateEdit("", 10, 10)

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

    GUISetState(@SW_SHOW) ; Zeigt das leere GUI-Fenster

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

    ;.................
    ;............

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

    sleep(2000)
    $aPos = WinGetPos($hGui)
    _WinAPI_SetWindowPos($hGui, $HWND_TOPMOST, $aPos[0], $aPos[1], $aPos[2], $aPos[3], $SWP_NOACTIVATE)

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

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    While 1
    $msg = GUIGetMsg()

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

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    [/autoit]
  • Wenn IPAdresse =

    • Oscar
    • 15. November 2013 um 17:41

    oder mit StringRegExp:

    [autoit]


    If StringRegExp(@IPAddress1, "172\.25\.10\..+") Then
    MsgBox(2, "test", @IPAddress1)
    Else
    MsgBox(2, "error", "error")
    EndIf

    [/autoit]
  • Button Farbe

    • Oscar
    • 14. November 2013 um 19:06

    Mit $BS_ICON funktioniert es unter Win7 aber nicht mehr mit Icon und Text.

  • Button Farbe

    • Oscar
    • 14. November 2013 um 18:26

    Stimmt, mein Beispiel funktioniert, glaub ich, erst ab Vista.
    Aber Dein Beispiel funktioniert bei mir unter Win7 (64Bit). Wenn das auch unter XP funktioniert, dann haben wir eine Lösung des Problems. :)

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <Constants.au3>
    #include <WinAPI.au3>

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

    GUICreate('test')
    $button = GUICtrlCreateButton(' Button', 10, 10, 120, 48)
    GUISetState()
    $hInstance = _WinAPI_GetModuleHandle("shell32.dll")
    $hIcon = _WinAPI_LoadImage($hInstance, 22, $IMAGE_ICON, 0, 0, $LR_DEFAULTSIZE)
    GUICtrlSendMsg($button, $BM_SETIMAGE, $IMAGE_ICON, $hIcon)
    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • Button Farbe

    • Oscar
    • 14. November 2013 um 17:45

    Es geht einfacher: lass das $BS_ICON weg. :)

    Spoiler anzeigen
    [autoit]


    GUICreate('test')
    GUICtrlCreateButton(' Button', 10, 10, 120, 48)
    GUICtrlSetImage(-1, 'shell32.dll', 23)
    GUISetState()
    Do
    Until GUIGetMsg() = -3

    [/autoit]
  • IE Script Error

    • Oscar
    • 6. November 2013 um 17:17

    [verschoben nach Hilfe&Unterstützung]

  • Updown mit großen Werten.

    • Oscar
    • 6. November 2013 um 05:15

    So geht's:

    Spoiler anzeigen
    [autoit]


    #include <GuiConstantsEx.au3>
    ;~ #include 'CommMG.au3'

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

    Global Const $UDM_SETACCEL = 1131
    Global Const $UDM_SETRANGE32 = 1135
    Global Const $UDM_SETPOS32 = 1137
    Global $UDACCEL = DllStructCreate('UINT nSec; UINT nInc')
    Global $pUDACCEL = DllStructGetPtr($UDACCEL)
    DllStructSetData($UDACCEL, 'nSec', 0)
    DllStructSetData($UDACCEL, 'nInc', 100) ; <- Hier die Sprungweite angeben

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

    Global $sportSetError = ''

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

    Global $CMPort = 3 ; Port
    Global $CmBoBaud = 9600 ; Baud
    Global $CmboDataBits = 8 ; Data Bits
    Global $CmBoParity = "none" ; Parity
    Global $CmBoStop = 1 ; Stop
    Global $setflow = 2 ; Flow
    Global $RTSMode = 1
    Global $DTRMode = 1
    Global $iWait = 0

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

    ;~ _CommSetPort($CMPort, $sportSetError, $CmBoBaud, $CmboDataBits, $CmBoParity, $CmBoStop, $setflow, $RTSMode, $DTRMode)

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

    ; GUI erstellen
    GUICreate("Foto", 1000, 400)

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

    GUICtrlCreateLabel("Startverzögerung in Mikrosekunden", 10, 10)
    $startverzoegerung = GUICtrlCreateInput("500000", 600, 10, 100, 20)
    GUICtrlCreateUpdown($startverzoegerung)
    GUICtrlSendMsg(-1, $UDM_SETRANGE32, 0, 999999) ; Wertebereich (0 - 999999) setzen
    GUICtrlSendMsg(-1, $UDM_SETPOS32, 0, 500000) ; Standardwert setzen (500000)
    GUICtrlSendMsg(-1, $UDM_SETACCEL, 1, $pUDACCEL) ; Sprungweite setzen

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

    GUICtrlCreateLabel("Verzögerung zwischen Magnet Abschaltung und Kameraauslösung in Mikrosekunden", 10, 50)
    $verzoegerung = GUICtrlCreateInput("500000", 600, 50, 100, 20)
    GUICtrlCreateUpdown($verzoegerung)
    GUICtrlSendMsg(-1, $UDM_SETRANGE32, 0, 999999) ; Wertebereich (0 - 999999) setzen
    GUICtrlSendMsg(-1, $UDM_SETPOS32, 0, 500000) ; Standardwert (500000) setzen
    GUICtrlSendMsg(-1, $UDM_SETACCEL, 1, $pUDACCEL) ; Sprungweite setzen

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

    $fotomachen = GUICtrlCreateButton("Starten", 10, 80, 100, 30)

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

    GUICtrlCreateLabel("Magnet Schalten", 10, 150)
    $magnetein = GUICtrlCreateButton("Magnet Ein", 10, 200, 100, 30)
    $magnetaus = GUICtrlCreateButton("Magnet Aus", 150, 200, 100, 30)

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

    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $fotomachen
    $schalt = "3/" & GUICtrlRead($startverzoegerung) & "/" & GUICtrlRead($verzoegerung) & "/"
    ConsoleWrite($schalt & @CR)
    ;~ _CommSendString($schalt, $iWait)
    Case $magnetein
    ;~ _CommSendString("1/", $iWait)
    Case $magnetaus
    ;~ _CommSendString("2/", $iWait)
    EndSwitch
    WEnd

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

    ; GUI MESSAGE LOOP
    GUISetState(@SW_SHOW)
    While 1
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]


    Ob das allerdings von der Bedienung her gut ist, bleibt dahingestellt... :rolleyes:

  • Variable vom Typ Object nach compile Int32 in WinPE_SE

    • Oscar
    • 6. November 2013 um 05:05

    Hast Du es schonmal mit:

    [autoit]

    #AutoIt3Wrapper_UseX64=n

    [/autoit]


    am Anfang des Scripts probiert?

  • _InputDateBox

    • Oscar
    • 5. November 2013 um 18:19

    Du hast noch nicht viele UDFs geschrieben, oder?
    Wenn Du den Defaultwert gleich in die Funktionszeile schreibst und der Benutzer der UDF dann die Funktion so aufruft:

    [autoit]

    Global $sDate = _InputDateBox(1, Default)

    [/autoit]


    dann wird der String "Default" übernommen.
    Deshalb das prüfen. :)

  • _InputDateBox

    • Oscar
    • 5. November 2013 um 17:59

    Da es sich hier aber um eine UDF handelt, die möglicherweise in anderen Scripten (mit diversen GUIs) benutzt wird, ist es sinnvoller das $hGui mit anzugeben.
    GuiSetState benutzt zwar standardmäßig die zuletzt erstellte Gui, aber es gibt ja auch noch die Timer-UDF, die im ganz ungünstigen Fall dazwischenfunken könnte.

  • _InputDateBox

    • Oscar
    • 5. November 2013 um 17:48

    Hier mal eine Funktion, um den Benutzer nach Datum oder Datum und Uhrzeit zu fragen. Dann braucht man nicht extra eine eigene GUI erstellen.

    Spoiler anzeigen
    [autoit]


    Global $sDate = _InputDateBox(1, 'Kopier-Datum')
    If @error Then Exit ; Wenn der Benutzer auf Abbrechen geklickt hat, Programm beenden
    ConsoleWrite('Datum: "' & $sDate & '"' & @CR & 'Error: ' & @error & @CR)

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

    ;===============================================================================
    ; Function Name: _InputDateBox([$iFormat][, $sTitle][, $sText][, $sDefaultDate][, $hParent])
    ; Description: Fragt den Benutzer nach Datum oder Datum und Uhrzeit und gibt dies als String zurück
    ; Parameter(s): $iFormat = 0 oder 1
    ; bei 0 wird nur nach dem Datum gefragt (Uhrzeit wird dann als "000000" zurückgegeben)
    ; bei 1 wird nach Datum und Uhrzeit gefragt
    ; Requirement: -
    ; Return Value(s): bei Erfolg = String in Form von "YYYYMMDDhhmmss"
    ; bei Abbruch = Leerstring und @error = 1
    ; Author(s): Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _InputDateBox($iFormat = 1, $sTitle = '', $sText = '', $sDefaultDate = '', $hParent = '')
    If $iFormat < 0 Or $iFormat > 1 Then $iFormat = 1
    If $sTitle = '' Or $sTitle = Default Then $sTitle = 'Datum-Box'
    If $sText = '' Or $sText = Default Then $sText = 'Bitte Datum auswählen!'
    If $iFormat Then $sText = 'Bitte Datum und Uhrzeit auswählen!'
    Local $iOnEventMode = Opt('GUIOnEventMode', 0), $sRetDate = '', $iError = 0
    Local $hGui = GUICreate($sTitle, 260 + $iFormat * 85, 130, Default, Default, Default, 8, $hParent)
    GUISetBkColor(0xCCCCCC, $hGui)
    GUISetIcon('shell32.dll', 24, $hGui)
    GUICtrlCreateGroup($sText, 10, 20, 240 + $iFormat * 85, 70)
    GUICtrlSetFont(-1, 10, 400, 0, 'Arial', 5)
    GUICtrlCreateIcon('shell32.dll', -21, 30, 48, 32, 32)
    Local $idDate = GUICtrlCreateDate($sDefaultDate, 75, 49, 150 + $iFormat * 85, 30, $iFormat)
    GUICtrlSetFont(-1, 14, 400, 0, 'Verdana', 5)
    If $iFormat Then
    Local $DTM_SETFORMAT_ = 0x1032
    Local $sStyle = 'dd.MM.yyyy HH:mm:ss'
    GUICtrlSendMsg($idDate, $DTM_SETFORMAT_, 0, $sStyle)
    EndIf
    GUICtrlCreateGroup('', -99, -99, 1, 1)
    Local $idOk = GUICtrlCreateButton('Ok', 100 + $iFormat * 85, 100, 60, 25, 1) ; <- Value 1 = $BS_DEFPUSHBUTTON
    Local $idCancel = GUICtrlCreateButton('Abbrechen', 170 + $iFormat * 85, 100, 80, 25)
    GUISetState(@SW_SHOW, $hGui)
    While True
    Switch GUIGetMsg()
    Case $idCancel, -3 ; <- Value -3 = $GUI_EVENT_CLOSE
    $iError = 1
    ExitLoop
    Case $idOk
    $sRetDate = StringRegExpReplace(GUICtrlRead($idDate), '(\d{2})\.(\d{2})\.(\d{4}).*', '$3$2$1')
    If $iFormat Then
    $sRetDate &= StringRegExpReplace(GUICtrlRead($idDate), '\d{2}\.\d{2}\.\d{4} (\d{2}):(\d{2}):(\d{2})', '$1$2$3')
    Else
    $sRetDate &= '000000'
    EndIf
    ExitLoop
    EndSwitch
    WEnd
    GUIDelete($hGui)
    Opt('GUIOnEventMode', $iOnEventMode)
    Return SetError($iError, 0, $sRetDate)
    EndFunc ;==>_InputDateBox

    [/autoit]

    Dateien

    _InputDateBox.au3 2,86 kB – 223 Downloads

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™