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

  • Stoppuhr

    • Oscar
    • 7. Februar 2013 um 17:22
    Zitat von UEZ

    der nächste Schritt wäre auch die Icons vom Speicher aufzurufen, ohne sie vorher auf die FP zu Speichern. ;)


    Wenn Du mir sagst, wie ich das hinkriege. :rolleyes:

    Zitat von UEZ

    Was mir aufgefallen ist: wenn ich start drücke, läuft die Zeit. Wenn ich anschließend auf Pause drücke, ein wenig warte und auf Stop drücke, dann ist die Zeit zwischen Pause und Stop weiter gelaufen.


    Oh, stimmt! Das ist ein Bug. Wird in der nächsten Version behoben sein.
    Das mit der Pausenfunktion ist sowieso etwas schwierig, weil man den Timer nicht anhalten/weiterlaufen lassen kann. Ich muss also während der Pausenzeit einen zweiten Timer die Pausenzeit stoppen lassen und diese ganzen Pausenzeiten dann vom Gesamttimer abziehen. Gefällt mir eigentlich nicht so wirklich. Vor allem ist das nicht sehr genau (da summieren sich die Befehlslaufzeiten). Wenn da jemand eine Alternative kennt, bitte melden!

  • Stoppuhr

    • Oscar
    • 7. Februar 2013 um 16:14

    Kleines Update (siehe Post #1).

  • Stoppuhr

    • Oscar
    • 7. Februar 2013 um 12:27

    Ich wollte mal wieder etwas programmieren und da habe ich ein Stoppuhr-Programm geschrieben.
    Dazu habe ich die Timer-UDF benutzt, damit die Stoppuhr auch dann weiterläuft, wenn man das Fenster bewegt.
    Bei Programmstart wird die Anzeigefunktion 10x aufgerufen und die benötigte Zeit gemessen. Diese Zeit wird dann für den Timeraufruf benutzt, damit es auf langsameren Rechnern zu keinen Problemen mit dem Timeraufruf kommt.
    Ansonsten gibt es eine Pausenfunktion, man kann Rundenzeiten messen und diese Rundenzeiten dann auch in die Zwischenablage kopieren (Kontextmenü).

    Version 1.1 (07.02.2013):
    - Antialiasing für die Anzeige hinzugefügt.
    - Die Icons sind jetzt als Base64-Zeilen direkt im Script. Man kann also nur die Exe weitergeben und die Icons werden trotzdem angezeigt. Danke UEZ!

    Version 1.2 (08.02.2013):
    - Wenn man nach dem Klick auf Pause den Stop-Button anklickte, wurde die Zeit weitergezählt. Bug beseitigt!
    - Die "Icons" (PNG-Dateien) werden jetzt komplett aus dem Speicher heraus angezeigt. Ein speichern auf Festplatte findet nicht mehr statt. Danke UEZ! (Du stehst jetzt auch in den Infos) :thumbup:


    Screenshots:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist. Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Das Programm, das Script und die benötigten Icons befinden sich im ZIP-Archiv (Anhang).

    Dateien

    Stoppuhr1.png 26,78 kB – 0 Downloads Stoppuhr2.png 35,85 kB – 0 Downloads Stoppuhr_v12.zip 460,46 kB – 358 Downloads
  • Happy Glückwunsch Andy zum 47'ten

    • Oscar
    • 4. Februar 2013 um 19:54

    Alles Gute auch von mir!
    Altersmäßig sind wir ja nicht weit auseinander. :D

  • Änderungen einer .ini Datei vor einer portablen App neu Includen

    • Oscar
    • 30. Januar 2013 um 18:12

    Ich verstehe den Sinn des Ganzen nicht. Warum speicherst Du die Inidatei nicht im Scriptverzeichnis (wenn das Script auf dem USB-Stick liegt, dann ist das Scriptverzeichnis doch automatisch auch auf dem USB-Stick).
    So machen das doch die ganzen portablen Tools. Jedenfalls alle, die ich kenne. :rolleyes:

  • FileOpen funktioniert nicht, wegen zu langem Pfad

    • Oscar
    • 30. Januar 2013 um 09:20

    Nein, die 255 Zeichen gelten für den gesamten Pfad (Ordnername und Dateiname).

  • Wie sieht euer Desktop aus?

    • Oscar
    • 29. Januar 2013 um 18:45

    Mars: Dein Hintergrundbild erinnert mich an "Per Anhalter durch die Galaxis". Versuchst Du genügend Ningi zusammen zu bekommen um sie in einen Pu eintauschen zu können? :D

    Was die vielen Icons betrifft: Das würde mich wahnsinnig machen. :rolleyes:

  • FileOpen funktioniert nicht, wegen zu langem Pfad

    • Oscar
    • 29. Januar 2013 um 18:33

    Dein gesamter Pfad besitzt bereits 244 Zeichen. Plus die Zeichen vom Dateinamen bist Du bei 266 Zeichen und das sind zu viele (mehr als 255).
    Du musst also dafür sorgen, dass der Pfad plus Dateiname immer kleiner als 256 Zeichen bleibt.

  • bräuchte hilfe möchte das mein Script auch startet auf Tastendruck

    • Oscar
    • 29. Januar 2013 um 18:20

    Wir unterstützen hier sowas nicht, weil das als Gamebot missbraucht werden kann.
    [close]

  • Variable durchreichen

    • Oscar
    • 27. Januar 2013 um 11:21
    Zitat von Tigger1975


    Hier funktioniert das natürlich auch wie ich das möchte, aber eigentlich habe ich das vor:

    Spoiler anzeigen
    [autoit]

    Global $a_Werte[1]
    $test123 = "12345"
    main($test123)
    MsgBox(0, "", $test123) ; hier sollte 54321 rauskommen
    Func main(ByRef $test)
    $a_Werte[0] = $test
    test1($a_Werte[0])
    EndFunc ;==>main
    Func test1(byref $test1)
    $test1 = "54321"
    EndFunc ;==>test1

    [/autoit]


    Hat jemand eine Idee wie ich das Lösen kann?

    Alles anzeigen

    Da Du in der Funktion "main" die Variable $test per ByRef übergibst, musst Du diese natürlich auch ändern (am Ende der Funktion den Wert von $a_Werte[0] wieder an $test übergeben:

    Spoiler anzeigen
    [autoit]


    Global $a_Werte[1]
    $test123 = "12345"
    main($test123)
    MsgBox(0, "", $test123) ; hier sollte 54321 rauskommen
    Func main(ByRef $test)
    $a_Werte[0] = $test
    test1($a_Werte[0])
    $test = $a_Werte[0] ; <- das hier fehlt
    EndFunc ;==>main
    Func test1(ByRef $test1)
    $test1 = "54321"
    EndFunc ;==>test1

    [/autoit]
  • Flackerndes GUI bei Aktualisierung der Label

    • Oscar
    • 25. Januar 2013 um 17:27

    Die Methode ("BitOR($WS_EX_COMPOSITED, $WS_EX_TOPMOST, $WS_EX_LAYERED)" als ExStyle), die Greenhorn vorgeschlagen hat, funktioniert bei mir mit Windows 7 (64 Bit) ohne flackern.
    Könnt ihr das Script hier mal testen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Opt('GuiOnEventMode', 1)
    Global $iCount = 0
    $hGui = GUICreate('Test', 400, 200, -1, -1, Default, BitOR($WS_EX_COMPOSITED, $WS_EX_TOPMOST, $WS_EX_LAYERED))
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    $ID_Label = GUICtrlCreateLabel('0', 50, 30, 200, 60)
    GUICtrlSetFont(-1, 24, 400)
    GUISetState()
    While True
    $iCount += 1
    GUICtrlSetData($ID_Label, _TicksToTimeFormat($iCount, '%hh:%mm:%ss %ms'))
    WEnd

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

    Func _End()
    Exit
    EndFunc ;==>_End

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

    ;===============================================================================
    ; Function Name: _TicksToTimeFormat($iTicks, $sFormat = '%hh:%mm:%ss')
    ; Description:: Diese Funktion wandelt Millisekunden in ein anzugebenes Zeitformat um
    ; Parameter(s): $iTicks = Zeit in Millisekunden
    ; $sFormat:
    ; %ww für Wochen
    ; %dd für Tage
    ; %hh für Stunden
    ; %mm für Minuten
    ; %ss für Sekunden
    ; %ms für Millisekunden
    ; sonstige Zeichen, die dazwischen stehen, werden übernommen
    ; Requirement(s): -
    ; Return Value(s): Zeit im ausgewählten Format (String)
    ; Author(s): Oscar (http://www.autoit.de)
    ;===============================================================================
    Func _TicksToTimeFormat($iTicks, $sFormat = '%hh:%mm:%ss')
    Local $aTime[6], $sOut, $aTimeFormat[6] = ['ww', 'dd', 'hh', 'mm', 'ss', 'ms'], $aFormat
    $aTime[4] = Int($iTicks / 1000)
    $aTime[5] = $iTicks - $aTime[4] * 1000
    $aTime[0] = Int($aTime[4] / 604800)
    $aTime[4] = Mod($aTime[4], 604800)
    $aTime[1] = Int($aTime[4] / 86400)
    $aTime[4] = Mod($aTime[4], 86400)
    $aTime[2] = Int($aTime[4] / 3600)
    $aTime[4] = Mod($aTime[4], 3600)
    $aTime[3] = Int($aTime[4] / 60)
    $aTime[4] = Mod($aTime[4], 60)
    $aFormat = StringRegExp($sFormat, '%([^%]+)', 3)
    If Not IsArray($aFormat) Then Return SetError(1, 0, $iTicks)
    For $i = 0 To UBound($aFormat) - 1
    For $j = 0 To UBound($aTimeFormat) - 1
    If StringLeft($aFormat[$i], 2) = $aTimeFormat[$j] Then $sOut &= StringFormat('%0' & 2 + ($j = 5) & 'i', $aTime[$j]) & StringMid($aFormat[$i], 3)
    Next
    Next
    Return $sOut
    EndFunc ;==>_TicksToTimeFormat

    [/autoit]
  • Happy Birthday Oscar

    • Oscar
    • 19. Januar 2013 um 08:51

    Ich danke euch für die vielen Glückwünsche. Gefeiert wird allerdings erst heute. :)
    Im Winter Geburtstag zu haben hat den Nachteil, dass man nicht draußen feiern kann. Draußen sitzen, Grillen etc. wäre da eine echte Herausforderung. :D

  • Icon aus EXE mit bestimmter Größe in GUI einbetten

    • Oscar
    • 16. Januar 2013 um 18:57
    Zitat von CyRoX


    Auch wenn ich den Index jetzt schon habe (der Gesuchte war 99), würde es mich interessieren, ob man die Indices auch eleganter auflisten könnte.

    Vielleicht so:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>

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

    Const $sPathExe = @SystemDir & '\mspaint.exe'
    Global $aidICO[1], $aidLABEL[1], $iCount = 0

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

    GUICreate('Test', 640, 200)
    For $i = 0 To 255
    $aidICO[$iCount] = GUICtrlCreateIcon($sPathExe, 2, 10 + $iCount * 64, 10, 48, 48)
    $aidLABEL[$iCount] = GUICtrlCreateLabel($i, 10 + $iCount * 64, 65, 48, 20, $SS_CENTER)
    $iRet = GUICtrlSetImage($aidICO[$iCount], $sPathExe, $i)
    If $iRet Then
    $iCount += 1
    ReDim $aidICO[$iCount + 1]
    ReDim $aidLABEL[$iCount + 1]
    EndIf
    Next
    GUISetState(@SW_SHOW)

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

    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

    [/autoit]
  • Erstes Projekt... Anfängerfrage zum Ersetzen von Bildern innerhalb der GUI

    • Oscar
    • 16. Januar 2013 um 16:08

    Beim erstellen des Pic-Control (GUICtrlCreatePic) wird doch die ID zurückgegeben. Diese speicherst Du einfach in einer Variablen. Dann kannst Du mit der Variablen weiterarbeiten und brauchst das InfoTool gar nicht.

  • Vista --> XP: Fehler beim Lesen des Datenträgers

    • Oscar
    • 15. Januar 2013 um 07:30

    Eine Recovery-CD von einem anderen Rechner funktioniert so gut wie nie. Vor allem, wenn Chipsatz und Prozessor anders sind. Und wenn Du es zum laufen bekommst, dann ist das Ding so instabil (absturzfreudig), dass Du damit keine Freude haben wirst. Benutze also lieber die Original-Recovery-CD oder kaufe Dir ein Original-Win-XP und installiere das. Wobei Du erstmal nachschauen solltest, ob es für den Rechner WinXP-Treiber gibt. Da habe ich schon negative Erfahrungen gemacht, sodass ich dann doch wieder Vista installieren musste.

  • Desktop effects - 22 Effekte mit BitBlt (früher Melting Desktop)

    • Oscar
    • 5. Januar 2013 um 19:52

    Andy: Mit der Änderung läuft es bei mir (AMD Phenom II X4 940 Processor, 3 GHz, Ati HD 5770, Win7 64 Bit) auch flüssig (~99 fps und 13900 - 14000 bps).
    Als Debug-Infos kommt allerdings dieses:

    Code
    @@ Debug(76) : $j = 0
    >Error code: 0
    @@ Debug(78) : $k = 0x070111A6
    >Error code: 0
    @@ Debug(7) : $a = 15
    >Error code: 0
    @@ Debug(9) : $b = 9.375
    >Error code: 0
    @@ Debug(76) : $j = 0x0003067C
    >Error code: 0
    @@ Debug(78) : $k = 0xC30111BB
    >Error code: 0
    Alles anzeigen
  • brauche hilfe bei meinem Updater

    • Oscar
    • 27. Dezember 2012 um 14:15
    Zitat von dreamer68

    funktioniert leider immer noch nicht ;•(

    Was funktioniert denn nicht?
    Sowas ist doch keine Fehlerbeschreibung! Etwas genauer sollte man das doch gerade als Programmierer hinkriegen. :rolleyes:
    Welchen Dateinamen hat denn Dein Updater? Vielleicht "DreamRadio1.exe" oder schonmal daran gedacht, diesen Prozess vorher (vor dem updaten) zu beenden?
    Wenn der Prozess noch läuft, dann kann man die Exe-Datei nicht überschreiben (InetGet schlägt fehl). Wo ist die Fehlerbehandlung für diesen Fall?
    Einfach mal die Rückgabe von InetGet auswerten könnte nicht schaden. Dann kommt man dem Problem deutlich näher. ;)

  • WARNUNG! Alle Battlefield 3 Spieler: LESEN!

    • Oscar
    • 20. Dezember 2012 um 18:53

    Wenn ich mir das hier so durchlese, komme ich aus dem Kopfschütteln gar nicht mehr raus. Aber ich gehöre auch zur älteren Generation und habe an den ganzen Games mittlerweile das Interesse verloren.
    Ich habe früher ja auch diverse Spiele gespielt, aber halt "just for fun". Wir brauchten keine Liga und eine entsprechende Platzierung. Es ging um Zeitvertreib, nicht um eSport (welch grausliches Wort).
    Diese "Sucht", immer zu den Besten gehören zu wollen, führt doch auch eher dazu, den Bezug zum realen Leben zu verlieren (IMHO). Aber ich will euch nicht das spielen vermiesen. Ich wollte nur mal daran erinnern, dass man diese Spiele nicht als Lebensinhalt ansehen sollte. Amen! :D

  • WARNUNG! Alle Battlefield 3 Spieler: LESEN!

    • Oscar
    • 19. Dezember 2012 um 19:18

    [verschoben nach Off-Topic]

  • Unverträglichkeit von Msg & State

    • Oscar
    • 19. Dezember 2012 um 18:50

    Das Problem scheint daran zu liegen, dass es kein Scroll-Control mehr gibt.
    Wenn man ein zusätzliches (nicht sichtbares) Inputfeld erstellt und diesem den Focus zuweist, dann funktioniert es:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    Global $h_Gui, $h_Input, $h_Dummy
    Global $a_Accel[1][2] = [['{enter}']]

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

    $h_Gui = GUICreate('')
    $h_Input = GUICtrlCreateInput('', 10, 10, 100, 20)
    $h_Dummy_Input = GUICtrlCreateInput('', 0, 0, 1, 1)
    $h_Dummy = GUICtrlCreateDummy()
    $a_Accel[0][1] = $h_Dummy
    GUISetAccelerators($a_Accel, $h_Gui)
    GUISetState(@SW_SHOW, $h_Gui)
    GUIRegisterMsg(0x020A, 'WM_MOUSEWHEEL') ; $WM_MOUSEWHEEL = 0x020A

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

    While True
    Switch GUIGetMsg()
    Case -3
    Exit
    Case $h_Dummy
    ; $GUI_HIDE = 32
    ; $GUI_DISABLE = 128
    GUICtrlSetState($h_Input, 160)
    GUICtrlSetState($h_Dummy_Input, $GUI_FOCUS)
    ;GUICtrlSetState($h_Input, 32)
    EndSwitch
    WEnd

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

    Func WM_MOUSEWHEEL($h_Wnd, $n_Msg, $w_Param)
    If $w_Param = 0x00780000 Then
    ConsoleWrite('up' & @CRLF)
    ElseIf $w_Param = 0xFF880000 Then
    ConsoleWrite('down' & @CRLF)
    EndIf
    EndFunc ;==> WM_MOUSEWHEEL

    [/autoit]

    Edit: Es spielt keine Rolle, was das für ein Dummy-Control ist (kann auch ein Label sein). Der Eingabe-Focus muss nur auf einem anderen Control liegen, dann funktioniert auch das MouseWheel wieder.

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™