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

Beiträge von mks

  • Problem mit Function / Timer

    • mks
    • 11. April 2013 um 20:54

    funktioniert perfekt, 1000 Dank für die schnelle Hilfe.

    Und wieder was neues gelernt auf dem oftmals steinigen Weg mit Autoit :)

    Gruß MKS

  • Problem mit Function / Timer

    • mks
    • 11. April 2013 um 16:11

    niemand eine Idee wie ich aus meiner Verzweiflung komme? :D

  • Problem mit Function / Timer

    • mks
    • 10. April 2013 um 22:58

    Hallo zusammen,

    ich versuche mir einen Timer zu basteln, dank der _countdown Funktion von bugfix hab ich es nun auch soweit hinbekommen.

    Beim ersten Start funktioniert das ganze soweit bereits wie es soll.
    Jetzt wollte ich das ganze noch soweit modifizieren das man die Timer Zeit mittels einer extra GUI ändern kann. Und da beginnt nun mein Problem, sobald die Änderung mittels Button abgeschickt wird und der Timer erfolgreich neu startet, funktioniert keine der anderen Dinge in der GUI.
    Edit/Stop/Close und ebenso das bewegen des Fensters ist dann nicht mehr möglich.

    Hoffe ich konnte mein Problem annähernd beschreiben :)

    Danke

    Spoiler anzeigen
    [autoit]

    #include <APIConstants.au3>
    #include <Date.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>

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

    Opt("MustDeclareVars", 1)
    Opt("GUIOnEventMode", 1)

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

    Local $tGUI, $tLabel_timer
    Local $WinXPos, $WinYPos, $WinPos
    Local $sGUI, $iH, $iM, $iS
    Local $sec = 0, $min = 10, $hr = 0, $stopit = 0
    Local $inifile = @ScriptDir & "\MyTimer.ini"

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

    _showTimer()

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

    While 1
    Sleep(100)
    WEnd

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

    ; #FUNCTION# ===================================================================
    ; Description ...: show timer window
    ; ==============================================================================
    Func _showTimer()
    $tGUI = GUICreate("Timer", 300, 82, -1, -1, $WS_POPUP)
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, "_PrimeDown")
    GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseApp")
    $tLabel_timer = GUICtrlCreateLabel("00:00:00 h", 0, 17, 300, 65, $SS_CENTER)
    GUICtrlSetBkColor(-1, 0xBFCDDB)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 40, 400, 0, "Roland")
    GUICtrlCreateLabel("[Edit]", 0, 1, 30, 15)
    GUICtrlSetOnEvent(-1, "_showSetup")
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("[Stop]", (300 / 2) - 17, 1, 34, 15)
    GUICtrlSetOnEvent(-1, "_stopTimer")
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlCreateLabel("[Close]", 259, 1, 40, 15, $SS_RIGHT)
    GUICtrlSetOnEvent(-1, "_closeApp")
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUISetState(@SW_SHOW)
    ; alte Fensterposition laden und GUI verschieben
    If $inifile <> "" Then
    $WinXPos = IniRead($inifile, "Startwerte", "WinXPos", "")
    $WinYPos = IniRead($inifile, "Startwerte", "WinYPos", "")
    If $WinXPos <> "" And $WinYPos <> "" Then WinMove("Timer", "", $WinXPos, $WinYPos)
    EndIf
    _startCountDown()
    EndFunc ;==>_showTimer

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

    ; #FUNCTION# ===================================================================
    ; Description ...: show Setup window
    ; ==============================================================================
    Func _ShowSetup()
    _stopTimer()
    $sGUI = GUICreate("Settings", 256, 205, -1, -1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_CloseSetup")
    GUICtrlCreateLabel('Stunden', 15, 48, 60, 17)
    $iH = GUICtrlCreateInput('', 80, 45, 20, 20, $ES_NUMBER)
    GUICtrlCreateLabel('Minuten', 15, 78, 60, 17)
    $iM = GUICtrlCreateInput('', 80, 75, 20, 20, $ES_NUMBER)
    GUICtrlCreateLabel('Sekunden', 15, 108, 60, 17)
    $iS = GUICtrlCreateInput('', 80, 105, 20, 20, $ES_NUMBER)
    GUICtrlCreateButton('Change time', 140, 15, 105, 25)
    GUICtrlSetOnEvent(-1, "_closeSetup")
    GUISetState(@SW_SHOW)
    EndFunc ;==>_ShowSetup

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

    ; #FUNCTION# ===================================================================
    ; Description ...: Close setup window
    ; ==============================================================================
    Func _CloseSetup()
    If GUICtrlRead($iH) = '' Then
    $hr = 0
    Else
    $hr = GUICtrlRead($iH)
    EndIf
    If GUICtrlRead($iM) = '' Then
    $min = 0
    Else
    $min = GUICtrlRead($iM)
    EndIf
    If GUICtrlRead($iS) = '' Then
    $sec = 0
    Else
    $sec = GUICtrlRead($iS)
    EndIf
    ConsoleWrite("H: " & $hr & @CRLF & "M: " & $min & @CRLF & "S: " & $sec & @CRLF)
    GUIDelete($sGUI)
    _startCountDown()

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

    EndFunc ;==>_CloseSetup

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

    ; #FUNCTION# ===================================================================
    ; Description ...: close App and write position to ini file
    ; ==============================================================================
    Func _CloseApp()
    IniDelete($inifile, "Startwerte")
    $WinPos = WinGetPos("Timer")
    IniWrite($inifile, "Startwerte", "WinXPos", $WinPos[0])
    IniWrite($inifile, "Startwerte", "WinYPos", $WinPos[1])
    Exit
    EndFunc ;==>_CloseApp

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

    ; #FUNCTION# ===================================================================
    ; Description ...: Start Countdown
    ; ==============================================================================
    Func _startCountDown()
    _CountDown($sec, $min, $hr, 0, True, $tLabel_timer)
    EndFunc ;==>_startCountDown

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

    ; #FUNCTION# ===================================================================
    ; Description ...: Stop Timer
    ; ==============================================================================
    Func _stopTimer()
    $stopit = 1
    EndFunc ;==>_stopTimer

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

    ; #FUNCTION# ===================================================================
    ; Description ...: makes GUI moveable with mouse
    ; ==============================================================================
    Func _PrimeDown()
    Local $DifX, $DifY, $MouseData = GUIGetCursorInfo(@GUI_WinHandle)
    Local $WinPos = WinGetPos(@GUI_WinHandle)
    Local $MPos = MouseGetPos()
    $DifX = $MPos[0] - $WinPos[0]
    $DifY = $MPos[1] - $WinPos[1]
    While $MouseData[2]
    $MPos = MouseGetPos()
    $WinPos = WinGetPos(@GUI_WinHandle)
    If ($WinPos[0] <> ($MPos[0] - $DifX)) Or ($WinPos[1] <> ($MPos[1] - $DifY)) Then
    WinMove(@GUI_WinHandle, '', $MPos[0] - $DifX, $MPos[1] - $DifY)
    EndIf
    Sleep(15)
    $MouseData = GUIGetCursorInfo(@GUI_WinHandle)
    WEnd
    ;GUICtrlSetState($suchtext_id,$GUI_FOCUS)
    EndFunc ;==>_PrimeDown

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

    ;----------------------------------------------------------------------------------------------------------------------
    ; Funktion _CountDown($SEC [, $MIN=0 [, $HOUR=0 [, $DAY=0 [, $VISIBLEDOWN=True [, $ALTERNATECTRL='TT']]]]])
    ;
    ; Beschreibung zählt vorgegebene Zeitspanne (Tage, Stunden, Minuten, Sekunden) herunter mit Anzeige Tooltip (Standard)
    ; oder Ausgabe in GUI-Ctrl; wahlweise Anzeige von Restzeit (Standard) oder abgelaufener Zeit
    ;
    ; Parameter $SEC: Sekunden
    ; optional $MIN: Minuten
    ; optional $HOUR: Stunden
    ; optional $DAY: Tage
    ; optional $VISIBLEDOWN: Ansicht (herunterzählen/heraufzählen)
    ; optional $ALTERNATECTRL: GUI-Ctrl in das die Ausgabe mittels GUICtrlSetData() ausgegeben wird
    ;
    ; Erfordernisse #include <Date.au3>
    ;
    ; Autor BugFix ([email='bugfix@autoit.de'][/email])
    ;----------------------------------------------------------------------------------------------------------------------
    Func _CountDown($sec, $min = 0, $HOUR = 0, $day = 0, $VISIBLEDOWN = True, $ALTERNATECTRL = 'TT')
    Local $Sekunden, $secShow, $end
    $Sekunden = $sec + $min * 60 + $HOUR * 3600 + $day * 86400
    $end = _DateAdd('s', $Sekunden, _NowCalc())
    Local $message
    Do
    Sleep(100)
    $sec = _DateDiff('s', _NowCalc(), $end)
    If Not $VISIBLEDOWN Then
    $secShow = $Sekunden - $sec
    Else
    $secShow = $sec
    EndIf
    Select
    Case $secShow < 60
    If $ALTERNATECTRL = 'TT' Then
    ToolTip(StringFormat('%02u', $secShow) & ' s')
    Else
    GUICtrlSetData($ALTERNATECTRL, StringFormat('%02u', $secShow) & ' s')
    EndIf
    Case $secShow < 60 * 60
    $message = StringFormat('%02u', Floor($secShow / 60)) & ':' & _
    StringFormat('%02u', Mod($secShow, 60)) & ' min'
    If $ALTERNATECTRL = 'TT' Then
    ToolTip($message)
    Else
    GUICtrlSetData($ALTERNATECTRL, $message)
    EndIf
    Case $secShow < 60 * 60 * 24
    $message = StringFormat('%02u', Floor($secShow / 3600)) & ':' & _
    StringFormat('%02u', Floor(Mod($secShow, 3600) / 60)) & ':' & _
    StringFormat('%02u', Mod(Mod($secShow, 3600), 60)) & ' h'
    If $ALTERNATECTRL = 'TT' Then
    ToolTip($message)
    Else
    GUICtrlSetData($ALTERNATECTRL, $message)
    EndIf
    Case Else
    $message = Floor($secShow / 86400) & ' d / ' & _
    StringFormat('%02u', Floor(Mod($secShow, 86400) / 3600)) & ':' & _
    StringFormat('%02u', Floor(Mod(Mod($secShow, 86400), 3600) / 60)) & ':' & _
    StringFormat('%02u', Mod(Mod(Mod($secShow, 86400), 3600), 60)) & ' h'
    If $ALTERNATECTRL = 'TT' Then
    ToolTip($message)
    Else
    GUICtrlSetData($ALTERNATECTRL, $message)
    EndIf
    EndSelect

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

    Until $sec = 0 Or $stopit = 1
    $stopit = 0
    #cs
    If $sec = 0 Then
    GUICtrlSetData($tLabel_timer, " It's time")
    SoundPlay(@ScriptDir & "\alarma.wav", 1)
    EndIf
    #ce
    EndFunc ;==>_CountDown

    [/autoit]


    Gruß Mks

  • WinMove Fehler

    • mks
    • 7. Januar 2013 um 13:13

    klappt perfekt
    Die Sicherung beim Load Button bastel ich mir dann noch zusammen, ist ja kein großes Thema.

    Vielen Dank für deine Hilfe.

  • WinMove Fehler

    • mks
    • 7. Januar 2013 um 12:49

    bringt leider das gleiche Ergebnis

  • WinMove Fehler

    • mks
    • 7. Januar 2013 um 12:09

    Hallo,

    ich habe versucht in meiner GUI mittels WinMove beim drücken von verschiedenen Buttons die Größe zu ändern.
    Das vergrößern der GUI um z.b. 200 funktioniert bestens, wenn ich aber mit einem anderen Button wieder auf die original Größe zurück möchte wird die GUI kleiner wie original definiert.

    Evtl. liegt es ja auch an meinem Versuch das ganze in eine Funktion zu packen, aber da ich die Größenänderung noch öfters brauche war es die praktischste Methode.
    Allerdings habe ich auch bei direktem Aufruf ohne funktion das gleiche Problem.

    Hab hier nur einen Auszug meines Codes gepostet der das Problem aufzeigt, daher die evtl unnützen Includes :)

    [autoit]


    #include <Array.au3>
    #include <EditConstants.au3>
    #include <File.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <GuiButton.au3>
    #include <GuiImageList.au3>
    #include <ListViewConstants.au3>

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

    Opt("GUIResizeMode",$GUI_DOCKALL)
    Opt("GUIDataSeparatorChar", "/")

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

    Local $guiWidth = "825"
    Local $guiHeight = "490"

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

    $hGUI = GUICreate("Bücherliste", $guiWidth, $guiHeight+0, -1, -1)
    $cListView = GUICtrlCreateListView("Autor / Serie / Titel / Genre", 8, 64, $guiWidth-16, 361)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 200)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 200)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 200)
    GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 185)
    $cButton_Load = GUICtrlCreateButton("Liste laden", 8, 16, 105, 33)
    $hImgLoad = _GUIImageList_Create(24, 24, 5, 3)
    _GUIImageList_AddIcon($hImgLoad, "shell32.dll", -235, True)
    _GUICtrlButton_SetImageList($cButton_Load, $hImgLoad, 1)
    $cInput = GUICtrlCreateInput("", 136, 24, 145, 21)
    GUICtrlSendMsg(-1, $EM_SETCUEBANNER, True, "Suchbegriff eingeben...")
    $cButton_Search = GUICtrlCreateButton("Suchen", 304, 16, 105, 33)
    $hImgSearch = _GUIImageList_Create(24, 24, 5, 3)
    _GUIImageList_AddIcon($hImgSearch, "shell32.dll", -23, True)
    _GUICtrlButton_SetImageList($cButton_Search, $hImgSearch, 1)
    $cLabel_hit = GUICtrlCreateLabel("", 420, 25, 250, 25)
    $cButton_exit = GUICtrlCreateButton("Verlassen", $guiWidth-113, 16, 105, 33)
    $hImgExit = _GUIImageList_Create(24, 24, 5, 3)
    _GUIImageList_AddIcon($hImgExit, "shell32.dll", -28, True)
    _GUICtrlButton_SetImageList($cButton_exit, $hImgExit, 1)
    $cButton_edit = GUICtrlCreateButton("Editieren", 8, 440, 105, 33)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $cButton_exit
    Exit
    Case $cButton_Search

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

    Case $cButton_Load
    _GuiResize(0)
    $posEdit = WinGetPos($hGUI)
    WinMove($hGUI, "", $posEdit[0], $posEdit[1], $guiWidth, $guiHeight)
    Case $cButton_edit
    _GuiResize(200)

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

    EndSwitch
    WEnd

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

    ;Change GuiHeight
    Func _GuiResize($newHeight)
    $posEdit = WinGetPos($hGUI)
    ;MsgBox(0, $posEdit[0], $posEdit[1])
    WinMove($hGUI, "", $posEdit[0], $posEdit[1], $guiWidth, $guiHeight+$newHeight)
    EndFunc

    [/autoit]

    Vielen Dank

  • GuiCtrlSetData Problem

    • mks
    • 29. Oktober 2009 um 11:02

    vielen Dank an alle für die Beispiele und Vorschläge

    Habe es nun mittels _GUICtrlEdit_AppendText($hWnd, $sText) gelöst und es klappt wie ich es haben wollt.

    Nochmals danke
    Gruß MKS

  • GuiCtrlSetData Problem

    • mks
    • 29. Oktober 2009 um 08:34

    habs probiert, aber leider ohne Erfolg.
    Es wird immer nur das momentan aktive angezeigt und keine Historie.

  • GuiCtrlSetData Problem

    • mks
    • 29. Oktober 2009 um 08:12

    Hallo,

    ich erstelle im Moment mittels autoIt einen kleinen software Installer. Soweit läuft auch alles bestens.
    Nun möchte ich aber gerne das die einzelnen Schritte der Installation in einem mehrzeiligen Eingabefeld mitschreiben.

    Sprich bei jedem Step der Installation sollte eine neue Info dazukommen z.B.
    1.Winzip installiert
    2.Acrobat Reader installliert
    3............
    4............

    Im Moment habe ich es folgendermassen eingestellt

    Code
    If GUICtrlRead($chk_std_3)=1 then GUICtrlSetData($showmeall,"Installing WinZip......")
    			If GUICtrlRead($chk_std_3)=1 then RunWait($sourcedir & "\winzip\winzip.cmd")
    If GUICtrlRead($chk_std_5)=1 then GUICtrlSetData($showmeall,"Installing Acrobat Reader......")
    			If GUICtrlRead($chk_std_5)=1 then RunWait($sourcedir & "\ACROBAT-READER9\adobeReader9.cmd","",@SW_MINIMIZE)

    Nur wird mir auf diesem Weg das Editfeld jedesmal neu gefüllt und es wird dadurch nur die aktuelle Installation, aber nicht die bereits erledigten angezigt.

    Meine Frage wäre nun ob es da eine Möglichkeit gibt das ich die Info Zeilenweise mitprotokolieren kann .

    Vielen dank
    Gruß MKS

  • Dateianzahl ermitteln

    • mks
    • 31. Januar 2006 um 13:37

    ok mein Fehler, hab in der hilfe bei DirGetSize nicht weiter als bis "Gibt die Größe eines Verzeichnisses in Bytes zurück." gelesen.

    Trotz dem vielen Dank für die schnelle Hilfe.

    Gruß MKS

  • Dateianzahl ermitteln

    • mks
    • 30. Januar 2006 um 23:15

    Hallo,

    schon mal vorab sorry für meine wahrscheinlich dumme Frage, aber bin leider noch relativer Neuling im Bereich AutoIt und manche dinge bringen mich einfach noch zum verzweifeln :)

    Ansich suche ich nur eine Möglichkeit festzustellen wieviele Files in einem Directory sind, das ganze braucht nichtmal sehr flexibel zu sein. Soll heissen der ORdner kann auch festgelegt sein vom Script.

    Danke für eure Hilfe

    Gruß MKS

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™