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

  • Ein fenster Klonen wie das programm OnTopReplice

    • Oscar
    • 13. Mai 2018 um 17:50
    Zitat von Mars

    An einen Mod: Der Thread gehört in H&U und ist gelöst

    Verschoben (nach H&U) und als gelöst markiert!

  • Label zeigt Änderung nur auf Klick

    • Oscar
    • 2. Mai 2018 um 09:33
    Zitat von bigeasy76

    Nun gibts aber einen kleinen Fehler: Pro SMS kann man 160 Zeichen verwenden, dh. der SMS-Zähler sollte eigentlich erst bei 161 Zeichen zu 2 SMS wechseln

    Dann ändere das folgendermassen: GUICtrlSetData($idLABEL4, Int(($iLen - 1) / 160) + 1)

  • Label zeigt Änderung nur auf Klick

    • Oscar
    • 1. Mai 2018 um 19:44

    Probier's mal so:

    AutoIt
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <MsgBoxConstants.au3>
    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    
    Global $hGUI = GUICreate("SMS Box", 600, 600)
    Global $idLC = GUICtrlCreateInput("0041(0)", 10, 5, 45, 20, $ES_READONLY)
    Global $idVORWAHL = GUICtrlCreateCombo("76", 55, 5, 40, 20)
    GUICtrlSetData(-1, "77|78|79")
    Global $idNR = GUICtrlCreateInput("", 93, 5, 60, 20, $ES_NUMBER)
    GUICtrlSetLimit(-1, 7)
    Global $idTEXT = GUICtrlCreateEdit("", 10, 40, 300, 200, BitOR($GUI_SS_DEFAULT_EDIT, $ES_MULTILINE))
    GUICtrlSetLimit(-1, 800)
    Global $idSENDEN = GUICtrlCreateButton("Senden", 30, 250, 85, 25)
    Global $idENDE = GUICtrlCreateButton("Schliessen", 130, 250, 85, 25)
    Global $idDEL = GUICtrlCreateButton("Löschen", 230, 250, 85, 25)
    Global $idLABEL1 = GUICtrlCreateLabel("Natelnummer eingeben", 155, 8, 150, 20)
    Global $idLABEL2 = GUICtrlCreateLabel("0", 320, 40, 30, 20)
    Global $idLABEL3 = GUICtrlCreateLabel("Anzahl Zeichen (max. 800)", 360, 40, 130, 20)
    Global $idLABEL4 = GUICtrlCreateLabel("0", 320, 70, 30, 20)
    Global $idLABEL5 = GUICtrlCreateLabel("Anzahl SMS (max. 5)", 360, 70, 100, 20)
    Global $oIE = ObjCreate("Shell.Explorer.2")
    Global $GUIActiveX = GUICtrlCreateObj($oIE, 10, 300, 580, 285)
    
    GUISetState(@SW_SHOW, $hGUI)
    
    GUIRegisterMsg($WM_COMMAND, "_WM_COMMAND")
    
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE, $idENDE
                Exit
            Case $idDEL
                GUICtrlSetData($idTEXT, "")
                GUICtrlSetData($idNR, "")
    
            Case $idSENDEN
                $NR = "0041" & GUICtrlRead(4) & GUICtrlRead(5)
                $TEXT = GUICtrlRead(6)
                MsgBox($MB_OKCANCEL, "Senden?", "http://www.lox24.eu/API/httpsms.php?konto=xxx&password=xxx&service=11171&from=0041444444444&to=" & $NR & "&text=" & $TEXT)
    
                $oIE.navigate("http://www.lox24.eu/API/httpsms.php?konto=xxx&password=xxx&service=11171&from=0041444444444&to=" & $NR & "&text=" & $TEXT)
        EndSwitch
    WEnd
    
    Func _WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
        #forceref $hWnd, $iMsg
        Local $hWndFrom, $iIDFrom, $iCode, $sText, $iLen
        $hWndFrom = $lParam
        $iIDFrom = _WinAPI_LoWord($wParam)
        $iCode = _WinAPI_HiWord($wParam)
        Switch $iIDFrom
            Case $idTEXT
                Switch $iCode
                    Case $EN_CHANGE
                        $sText = GUICtrlRead($idTEXT)
                        $iLen = StringLen($sText)
                        GUICtrlSetData($idLABEL2, $iLen)
                        GUICtrlSetData($idLABEL4, Int($iLen / 160) + 1)
                EndSwitch
            Case Else
        EndSwitch
        Return $GUI_RUNDEFMSG
    EndFunc   ;==>_WM_COMMAND
    Alles anzeigen
  • Label zeigt Änderung nur auf Klick

    • Oscar
    • 1. Mai 2018 um 10:45
    Zitat von bigeasy76

    Ich hab nun mal folgendes zusammengeschustert, ich glaube, man merkt, dass ich ein blutiger Anfänger bin, ist erst mein zweites Script:

    Dieser ganze Script-Teil ist Quatsch (Entschuldigung, für die harten Worte)!

    Poste bitte Dein ganzes Script, sonst kann man Dir nicht vernünftig helfen.

  • Tee Timer - Timer mit Countdown-Balken

    • Oscar
    • 27. April 2018 um 10:45
    Zitat von AutoMit

    ich habe den Code-Generator Thread gelesen, der Vorteil ist mir immer noch schleierhaft.

    Der Vorteil ist, dass man nur die Exe-Datei weitergeben muss (keine zusätzlichen Dateien, keine Installation).

    Alle Ressourcen befinden sich in der Exe-Datei, Außerdem befinden sich die Bilder, Sounds usw. bereits im RAM (schnelleres anzeigen/abspielen).

  • Tee Timer - Timer mit Countdown-Balken

    • Oscar
    • 25. April 2018 um 13:48
    Zitat von Sonderbaar

    Kann man sich das irgendwo mal durchlesen wie man sich so ne Glocke "baut"? Also nach welchem Schema das gehen muss?

    Schema:

    1. Man nehme eine MP3-Datei mit dem Glockenton.

    2. Man generiert daraus einen BASE64-String (mit dem Code-Generator von UEZ).

    3. Diesen BASE64-String kann man in sein Script einfügen (in meinem Script die Funktion "_Glocke()" ziemlich weit unten). Außerdem werden die beiden Funktionen ("_WinAPI_Base64Decode", "_WinAPI_LZNTDecompress") zum "entpacken" benötigt.

    4. Wenn Du statt einer MP3- eine WAV-Datei nimmst, kannst Du sie mit _WinAPI_PlaySound direkt aus dem Speicher abspielen. Beim MP3 kannst Du das mit der BASS-UDF auch tun oder Du speicherst die MP3-Datei auf Festplatte und nutzt die _Sound-Befehle (_SoundOpen, _SoundPlay, _SoundClose) von Autoit.

  • Tea-Timer

    • Oscar
    • 24. April 2018 um 15:36
    Zitat von AutoMit

    Ich glaube, der Bedarf an einstellbaren Sekunden ist da

    Dann nimm das Script aus dem Anhang. :)

    Dort lässt sich die Zeit in 10-Sekunden-Schritten einstellen.

    Wer noch kleinere Schritte braucht, kann das in der Inidatei ändern.

    Dateien

    TeaTimer.au3 142,79 kB – 302 Downloads
  • Tee Timer - Timer mit Countdown-Balken

    • Oscar
    • 24. April 2018 um 15:20
    Zitat von alpines

    Ohne Oscars Arbeit jetzt schlecht reden zu wollen aber es ist und bleibt ein einfacher Timer.

    Stimmt, das ist nur ein einfacher Timer!

    Das meiste davon hatte ich sowieso schonmal in anderen Programmen benutzt. Die Glocke, der Zeichensatz, die Pfeile, die Progressbar, alles schon mehrfach benutzt. :)

    Aber neu zusammengestellt ergibt es halt einen Kurzzeittimer. ^^

  • Tea-Timer

    • Oscar
    • 24. April 2018 um 15:14
    Zitat von Musashi

    Täusche ich mich, oder lassen sich 'nur' die Minuten einstellen, nicht aber die Sekunden ?

    Korrekt! "Nur" die Minuten.

    Ich fand das für einen Kurzzeittimer ausreichend. Obwohl sich das leicht ändern liesse.

  • Tee Timer - Timer mit Countdown-Balken

    • Oscar
    • 24. April 2018 um 13:17

    Ich habe jetzt mal so ein Programm geschrieben: Tea-Timer

  • Tea-Timer

    • Oscar
    • 24. April 2018 um 13:16

    In "Hilfe & Unterstützung" wurde nach einem Tea-Timer gefragt.

    Ich habe jetzt mal so ein kleines Programm geschrieben. Man kann die Zeit zwischen 1 und 99 Minuten einstellen und nach Klick auf [Start] zählt diie Zeit runter bis auf Null.

    Die Zeit wird mit einem 7-Segment-Font dargestellt und es gibt eine Progressbar, die entsprechend geleert wird. Wenn Null erreicht wird, ertönt eine Glocke und es erscheint eine MsgBox.

    Man kann die Zeit auf 3 verschiedene Arten verstellen:

    1. mit den Pfeilen auf der rechten Seite

    2. mit den Tasten [up] und [down]

    3. mit dem Mausrad (hoch / runter), wenn sich der Mauszeiger über der Zeitanzeige befindet

    Die Zeit lässt sich aber nur verändern, wenn der Timer gerade nicht läuft. Der [Reset]-Button setzt die Zeit wieder auf die Ausgangszeit zurück und hält den Timer an.

    Die eingestellte Zeit wird in einer Inidatei gespeichert, sodass sie beim nächsten Start wieder zur Verfügung steht.

    Screenshot:

    Im ZIP-Archiv (Anhang) befindet sich das Script, die UDF, die Exe und das Icon.

    Dateien

    TeaTimer_v1_0_0_0.zip 907,44 kB – 373 Downloads
  • Text in HTML-Code lokaler HTML-Dateien ändern

    • Oscar
    • 13. April 2018 um 16:22
    Zitat von hipfzwirgel

    Local $aFileList = _FileListToArray($sPath, "*.txt", 1)

    Äh, Du willst HTML-Dateien einlesen und benutzt "*.txt" als Filter?

  • WindowPlacement

    • Oscar
    • 13. April 2018 um 16:18

    Ich habe meine Funktionen jetzt noch um die Möglichkeit erweitert, die Positionsdaten von mehreren Fenstern in einer einzelnen Datei zu speichern. Dazu muss man lediglich den Block (je 44 Bytes / Strukturgröße) angeben.

    Die Funktion "_WindowOnDesktop" habe ich auch noch etwas angepasst. Danke Bitnugger!

    Neue Version der UDF in Post#1.

  • WindowPlacement

    • Oscar
    • 8. April 2018 um 08:50
    Zitat von Candyland

    wenn ich allerdings das Gui von anfang gehided haben möchte, also praktisch nie GuiSetState(@SW_SHOW, $form) aufrufe dann ploppt das GUI bis zum GuiSetState(@SW_HIDE, $form) auf.

    Ja, Du musst GUISetState(@SW_HIDE) vor dem Aufruf von _LoadWindowPlacement() aufrufen.

  • WindowPlacement

    • Oscar
    • 7. April 2018 um 13:39

    Bitnugger hatte in diesem Thread die Funktion _WinAPI_GetWindowPlacement() vorgeschlagen, um die Positionsdaten eines Fensters bei Programmende zu speichern.

    Tatsächlich ist diese WinApi-Funktion sehr gut dafür geeignet. Vor allem, weil man damit auf einen Schlag alle Fensterdaten abspeichern kann. Also auch, ob maximiert/minimiert.

    So habe ich mir gedacht: Am besten beim Programmende gleich die ganze Struktur speichern und beim nächsten Programmstart wiederherstellen.

    Dafür habe ich hier mal eine kleine UDF geschrieben, die diese beiden Funktionen ("_LoadWindowPlacement" und "_SaveWindowPlacement") zur Verfügung stellt.

    Außerdem gibt es noch eine Funktion, um sicherzustellen, dass sich das Fenster auf dem Desktop befindet. Benutzer von mehreren Bildschirmen werden das nachvollziehen können: Wenn man ein Fenster auf dem zweiten Bildschirm positioniert hat und dieser zweite Bildschirm beim nächsten Programmstart gerade nicht aktiviert ist. Dann wird das Fenster an einer Position geöffnet, die man nicht erreichen kann. In dem Fall hilft meine Funktion "_WindowOnDesktop". Sie verschiebt das Fenster dann auf den sichtbaren Desktop.

    Beispiel:

    Code
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include 'WindowPlacement.au3'
    
    Global Const $sPlacementFile = @ScriptDir & '\WindowPlacement.bin'
    Global $iWidth = 320, $iHeight = 200, $iPosX = -1, $iPosY = -1
    Global $sStyle = BitOR($WS_CAPTION, $WS_POPUPWINDOW, $WS_SIZEBOX, $WS_MINIMIZEBOX, $WS_MAXIMIZEBOX)
    Global $hGui = GUICreate('Testfenster1', $iWidth, $iHeight, $iPosX, $iPosY, $sStyle)
    
    Global $hGui2 = GUICreate('Testfenster2', $iWidth, $iHeight, $iPosX, $iPosY, $sStyle)
    
    Global $ret = _LoadWindowPlacement($hGui, $sPlacementFile, 0) ; die Positionsdaten aus Block 1 laden und fuer Fenster 1 setzen
    If @error Then GUISetState(@SW_SHOW, $hGui)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : LoadWindowPlacement1 = ' & $ret & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    
    Global $ret = _LoadWindowPlacement($hGui2, $sPlacementFile, 1) ; die Positionsdaten aus Block 2 laden und fuer Fenster 2 setzen
    If @error Then GUISetState(@SW_SHOW, $hGui2)
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : LoadWindowPlacement2 = ' & $ret & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    
    $ret = _WindowOnDesktop($hGui) ; Sicherstellen, dass sich das Fenster 1 auf dem Desktop befindet
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : WindowOnDesktop1 = ' & $ret & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    $ret = _WindowOnDesktop($hGui2) ; Sicherstellen, dass sich das Fenster 2 auf dem Desktop befindet
    ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : WindowOnDesktop2 = ' & $ret & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
    
    While True
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                $ret = _SaveWindowPlacement($hGui, $sPlacementFile, 0) ; die Positionsdaten fuer Fenster 1 in Block 1 speichern
                ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : SaveWindowPlacement1 = ' & $ret & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
                $ret = _SaveWindowPlacement($hGui2, $sPlacementFile, 1) ; die Positionsdaten fuer Fenster 2 in Block 2 speichern
                ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : SaveWindowPlacement2 = ' & $ret & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
                Exit
        EndSwitch
    WEnd
    Alles anzeigen

    Edit 13.04.18 Neue Version 1.1:

    - Man kann jetzt die Daten von mehreren Fenstern (GUIs) in einer einzelnen Datei speichern (pro Fenster 44 Bytes = 1 Block).

    - Die Funktion "_WindowOnDesktop" noch etwas angepasst. Danke Bitnugger!

    Dateien

    WindowPlacement.au3 6,29 kB – 433 Downloads Example.au3 2,26 kB – 442 Downloads
  • Automatische Mehrfachselektion im ListView

    • Oscar
    • 5. April 2018 um 14:14

    Wenn Du nur im sichtbaren Listview suchen willst, ist das mit "_GUICtrlListView_FindInText" viel einfacher. Ändere mal Deine Funktion "_suchen()" in diese:

    AutoIt
    Func _suchen()
        _werte_abfragen()
        _GUICtrlListView_SetItemSelected($list_datenbankinhalt, -1, False)
        Local $iIndex = -1
        Do
            $iIndex = _GUICtrlListView_FindInText($list_datenbankinhalt, $wert_input_suche, $iIndex, False)
            If $iIndex > -1 Then _GUICtrlListView_SetItemSelected($list_datenbankinhalt, $iIndex)
        Until $iIndex = -1
    EndFunc

    Nachtrag: Du musst noch die Mehrfachselektion beim Listview erlauben:

    AutoIt
    $list_datenbankinhalt = GUICtrlCreateListView("", 8, 32, 353, 435, $LVS_SHOWSELALWAYS)
  • Prozess startet ohne GUI

    • Oscar
    • 5. April 2018 um 13:38
    Zitat von mcbaldrian

    $ProgPath = StringTrimRight(@ScriptDir,"8")

    Was soll das denn?

    Wie sieht denn der Pfad aus? a) wo das Script liegt und b) wo das zu startende Programm liegt?

    Und wie sieht Dein anderes Script ("QueueWatch.exe") aus?

  • Automatische Mehrfachselektion im ListView

    • Oscar
    • 5. April 2018 um 13:29

    Das kommt darauf an, wie Du die Suchtreffer markieren willst?

    - Nur das normale markieren (Auswahl)?

    - Farbe der Items ändern?

    - Haken setzen (Listview mit Checkboxen)?

    In jeden Fall wäre es aber hilfreich, wenn Du Dein Script postest und einen (Beispiel-)Datensatz.

  • Persönliche Nachrichten schreiben?

    • Oscar
    • 17. März 2018 um 12:41
    Zitat von alpines

    Oscar move das doch bitte mal nach Talk / OT

    Hiermit geschehen! :)

  • Treeview Icons einzeln ändern

    • Oscar
    • 13. März 2018 um 11:36
    Zitat von mirko2002

    wäre es evtl noch zusätzlich sortierbar nach Datum/Zeit, also das älteste zuerst angezeigt werden (oder umgedreht)?

    Einfach die Dateiliste sortieren. Ich habe mal eine Funktion eingebaut.

    Außerdem funktioniert das Treeview jetzt ohne das Dummy-Control. Ich wusste, dass ich irgendwo die Lösung dafür hatte (habe ich wiedergefunden).

    Im Anhang eine aktuelle Version.

    Dateien

    OSC_Mailer_v1_2.zip 6,8 kB – 350 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™