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

  • Endlosschleife bei Msgbox beenden

    • Oscar
    • 19. November 2010 um 15:42

    Nein, im MessageLoop-Modus darf man kein zusätzliches Sleep einfügen, weil dann (Sleep zu groß) die Buttons etc. nicht mehr reagieren.

  • Endlosschleife bei Msgbox beenden

    • Oscar
    • 19. November 2010 um 15:40

    Bei dem Beispiel bestimmt GUIGetMsg die Zählfrequenz (je schneller Du die Maus bewegst, umso schneller zählt das Script). Das hat mit dem dynamischen "Sleep" des MessageLoop-Modus zu tun.
    Wenn Du den Sleepwert selbst bestimmen willst, musst Du den OnEvent-Modus benutzen:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    Global $aChange[2] = [-14, -15], $iChange = True
    Opt('GUIOnEventMode', 1)

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

    $hGui = GUICreate('Test', 200, 200)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End')
    $hIcon = GUICtrlCreateIcon('shell32.dll', $aChange[$iChange], 40, 40, 32, 32)
    $hCounter = GUICtrlCreateLabel('1', 40, 100, 100, 20)
    GUISetState()
    AdlibRegister('_ChangeIcon', 1000)
    While True
    Sleep(100)
    GUICtrlSetData($hCounter, GUICtrlRead($hCounter) + 1) ; <- nur als Beispiel für das nebenbei laufende Script
    WEnd

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

    Func _ChangeIcon()
    $iChange = Not $iChange
    GUICtrlSetImage($hIcon, 'shell32.dll', $aChange[$iChange])
    EndFunc

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

    Func _End()
    Exit
    EndFunc

    [/autoit]
  • Lieblings Spiel der 80. Jahre

    • Oscar
    • 19. November 2010 um 15:34

    Pac-Man fand ich auch gut, aber "Lode Runner" hatte ich damals (auf'm C64) ohne Ende gespielt.

    Bevor das bei mir mit 'nem Computer anfing, hatte ich noch so eine kleine "Spielekonsole". Das muss so ca. 1981-82 gewesen sein.
    Ich weiß nicht mehr genau, wie das Spiel hieß, aber ich glaube es hieß "Caveman". Da war auf der linken Seite eine Höhle und auf der rechten Seite das Nest von einem Dino. In dem Nest befanden sich drei Eier, die man mit einem Höhlenmenschen holen und zur Höhle transportieren musste. Dabei durfte man sich nicht von dem Dino erwischen lassen. Den Dino konnte man mit einem gezielten Steinwurf vorübergehend außer Gefecht setzen, um an die Eier zu kommen. Im Hintergrund gab es noch einen Vulkan, der hin und wieder ausbrach. Dann musste man auf dem Weg von und zur Höhle zusätzlich noch den Lavabrocken ausweichen, die vom Himmel fielen.
    Dieses Spiel begeisterte mich damals auch sehr.

  • Endlosschleife bei Msgbox beenden

    • Oscar
    • 19. November 2010 um 14:51

    Ich habe Dir mal ein Beispiel erstellt:

    Spoiler anzeigen
    [autoit]


    Global $aChange[2] = [-14, -15], $iChange = True

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

    $hGui = GUICreate('Test', 200, 200)
    $hIcon = GUICtrlCreateIcon('shell32.dll', $aChange[$iChange], 40, 40, 32, 32)
    $hCounter = GUICtrlCreateLabel('1', 40, 100, 100, 20)
    GUISetState()
    AdlibRegister('_ChangeIcon', 1000)
    Do
    GUICtrlSetData($hCounter, GUICtrlRead($hCounter) + 1) ; <- nur als Beispiel für das nebenbei laufende Script
    Until GUIGetMsg() = -3

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

    Func _ChangeIcon()
    $iChange = Not $iChange
    GUICtrlSetImage($hIcon, 'shell32.dll', $aChange[$iChange])
    EndFunc

    [/autoit]
  • Endlosschleife bei Msgbox beenden

    • Oscar
    • 19. November 2010 um 13:17

    Dein Skript ist nicht nur unvollständig, sondern auch syntaktisch fehlerhaft (Anführungszeichen fehlen).

    Aber abgesehen davon ist auch der Ansatz verkehrt. Wenn Du einen bestimmten Code ausführen lassen willst, während im Hintergrund abwechselnd die Bilder geändert werden, dann schau Dir mal AdlibRegister an.
    Damit kannst Du eine Funktion zeitgesteuert aufrufen (hier jede Sekunde), in der Du dann jeweils das andere Bild anzeigen lässt. Du brauchst auch nicht immer wieder ein neues Bild erstellen und dieses dann wieder löschen. Erstelle das Bild einmalig (am Skriptanfang) und lade anschließend nur die Bilder neu (GUICtrlSetImage).

  • Treeview FileExplorer

    • Oscar
    • 19. November 2010 um 06:59

    Es gibt noch eine neue Version. Einen kleinen Bug beseitigt und die Übernahme der Explorer-Einstellungen (versteckte Dateien und Systemdateien anzeigen/verstecken).
    Neue Version in Post#1.

  • [abgebrochen] µitLight November/Dezember 2010

    • Oscar
    • 18. November 2010 um 20:08

    Ich habe mich mal hingesetzt und mit IcoFX ein paar Schachfiguren zusammengepixelt.
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

    Edit: Hier noch die gleichen Figuren im 3D-Stil:
    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.
    Die (Icondateien im Anhang) könnt ihr benutzen, wenn ihr wollt.

    Bilder

    • Schachfiguren.png
      • 1,63 kB
      • 630 × 80
    • Schachfiguren3D.png
      • 9,86 kB
      • 760 × 90

    Dateien

    Schach.zip 4,75 kB – 288 Downloads Schach3D.zip 10,81 kB – 290 Downloads
  • Treeview FileExplorer

    • Oscar
    • 18. November 2010 um 15:18

    @Großvater: Volltreffer! Als 32 Bit-Version funktioniert es. Es muss also an der 64 Bit-Variante liegen. Irgend ein Fehler in der Struktur!?

    Ich habe jetzt

    [autoit]

    #AutoIt3Wrapper_UseX64=n

    [/autoit]


    eingefügt, dann funktioniert es auch als Script.

    So nebenbei funktioniert damit jetzt auch die Tastatursteuerung (Pfeil nach rechts/links zum auf-/zuklappen). Neue Version in Post#1.

    Danke! :thumbup:

  • Happy Birthday, Techmix

    • Oscar
    • 18. November 2010 um 04:22

    Hallo Techmix!
    Alles Gute zum Geburtstag!

  • Treeview FileExplorer

    • Oscar
    • 17. November 2010 um 17:46

    Sorry, die Werte aus Post#75 waren mit der geänderten $tagNMHDR (wie von Dir, nuts, beschrieben).
    Hier sind die Werte mit der Original-StructureConstants.au3:

    Spoiler anzeigen
    Code
    174313839: -17
    174314073: -12
    174314088: -17
    174314650: -2
    174314650: TVN_ITEMEXPANDING - 0
    174314650: -12
    174314650: TVN_ITEMEXPANDED - 30
    174314650: -455
    174314650: -17
    174314650: -12
    174314759: -17
    174319736: -12
    174319751: -17
    174320282: -12
    174320297: -17
    174320672: -12
    174320687: -17
    174320765: -12
    174321545: -8
    174321545: -12
    Alles anzeigen

    nuts: Ja, Ich habe hier Win7, 64 Bit laufen.

  • Treeview FileExplorer

    • Oscar
    • 17. November 2010 um 17:33

    Da bekomme ich nur Konsolenausgaben (auf das Plus von C: geklickt):

    Spoiler anzeigen
    Code
    173231857: 4294967279
    173232169: 4294967284
    173232185: 4294967279
    173232278: 4294967284
    173232466: 4294967279
    173232497: 4294967284
    173232497: 4294967279
    173232544: 4294967284
    173232559: 4294967279
    173235367: 4294967294
    173235367: 4294966842
    173235367: 4294967284
    173235367: 4294966841
    173235367: 4294967279
    173235367: 4294967284
    173235476: 4294967279
    173237785: 4294967288
    Alles anzeigen


    Den Verzeichnissen von C: fehlt aber das Pluszeichen.

  • Laptop Kühler - Welcher ist gut?

    • Oscar
    • 17. November 2010 um 04:23

    chip: Doch, moderne Rechner werden durchaus langsamer. Wenn die CPU zu heiß wird, wird automatisch die Taktfrequenz gesenkt. Das geht soweit, dass es sogar zu einem Absturz kommt. Das habe ich bei einem Laptop auch schon gesehen.

  • Treeview FileExplorer

    • Oscar
    • 17. November 2010 um 04:06

    Wie meinst Du das bzw. wie soll ich das rauskriegen?

  • Wildcard ersetzung

    • Oscar
    • 16. November 2010 um 20:52

    Ich meinte es eher so:

    Spoiler anzeigen
    [autoit]


    $String = 'bla <monat> blubb <jahr> blablubb'
    Dim $Array[2][2] = [['<monat>', '@MON'], ['<jahr>', '@YEAR']]
    _Wildcards($String, $Array)
    MsgBox(0, '', $String)

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

    Func _Wildcards(ByRef $String, ByRef $Array, $iStart = 0)
    If Not IsArray($Array) Then Return SetError(1, 0, -1)
    If UBound($Array, 0) <> 2 Then Return SetError(2, 0, -1)
    For $i = $iStart To UBound($Array) - 1
    $String = StringReplace($String, $Array[$i][0], $Array[$i][1])
    Next
    EndFunc ;==>_Wildcards

    [/autoit]


    $Replace brauchst Du nicht und wenn Du ByRef verwendest, wird direkt die Variable aus dem Hauptprogramm geändert (kein Return $String nötig).

  • Laptop Kühler - Welcher ist gut?

    • Oscar
    • 16. November 2010 um 19:47
    Zitat von AntiSpeed

    Wie oft muss man denn seinen Lüfter/Kühler sauber machen (In welchen Abständen) ?


    Immer dann, wenn er verdreckt ist. :D

    Nee, im Ernst: Es kommt aber wirklich darauf an, wie hoch die Staub-/Nikotin-/Fliegen-/Käferkonzentration in der Umgebungsluft ist. So ein Lüfter ist quasi wie ein Staubsauger und das ein oder andere bleibt schonmal an den Flügeln des Lüfters oder den Lamellen des Kühlkörpers hängen. Deshalb kann man die Frage nicht pauschal beantworten. Wenn der Rechner zu heiß wird, dann wird es mal wieder Zeit für eine Reinigung. :)

  • Wildcard ersetzung

    • Oscar
    • 16. November 2010 um 19:38

    Ich bin jetzt mal gemein und verfasse einen kritischen Beitrag:
    - ByRef benutzen (spart die Rückgabe mit Return)
    - $Replace wurde nicht als Local deklariert
    - $Replace ist aber sowieso überflüssig
    - Fehlerbehandlung fehlt (falls $Array gar kein Array ist)

    SCNR :)

  • Laptop Kühler - Welcher ist gut?

    • Oscar
    • 16. November 2010 um 18:53

    anno2008 liegt vermutlich gar nicht so falsch mit seiner Vermutung, dass der Lüfter verdreckt ist. Das ist eine ziemlich häufige Ursache für solch ein "abschalten" bei Belastung.
    Wenn Du Dir das öffnen nicht zutraust, gehe doch mal mit dem Laptop zu einem Computerhändler Deines Vertrauens. Am besten zu dem, bei dem Du den Laptop gekauft hast, falls das nicht gerade im Versandhandel oder bei M*diaM*rkt war.
    Alternativ besorge Dir eine Dose Druckluftspray und puste damit die Lamellen des Kühlers vom Staub frei (in die Ansaug- und Ausblasöffnung sprühen). Laptop vorher natürlich runterfahren/ausschalten.

  • USB-Ports programmieren

    • Oscar
    • 16. November 2010 um 16:12

    Nein, so einfach wie der TO sich das vorstellt geht es nicht. USB ist ein serieller Port. Einfach eine LED an einen USB-Stecker anschließen und einen Befehl senden geht nicht!
    Dazu braucht es schon ein USB-Interface, was Dir dann digitale und/oder analoge Anschlüsse zur Verfügung stellt. Außerdem braucht man für das Interface dann eine DLL, um eine Zusammenarbeit mit AutoIt hinzukriegen.

  • AntiSpeed hat B-Day

    • Oscar
    • 16. November 2010 um 15:58

    Herzlichen Glückwunsch!
    Achja, 15 Jahre...lang, lang ist's her... :rolleyes:

    Und hier noch ein

    Geburtstags-Skript
    [autoit]


    #include <ButtonConstants.au3>
    #include <WindowsConstants.au3>
    $iWidth = @DesktopWidth
    $iHeight = @DesktopHeight
    $hGui = GUICreate('Geburtstag', $iWidth, $iHeight, 0, 0, $WS_POPUP)
    GUISetBkColor(0x000000)
    $hClose = GUICtrlCreateButton('Happy Birthday' & @CR & 'to you', Random(1, $iWidth - 130, 1), Random(1, $iHeight - 50, 1), 110, 50, $BS_MULTILINE)
    GUISetState()
    AdlibRegister('_MoveButton', 1000)
    Do
    Until GUIGetMsg() = $hClose
    Func _MoveButton()
    GUICtrlSetPos($hClose, Random(1, $iWidth - 130, 1), Random(1, $iHeight - 50, 1))
    EndFunc

    [/autoit]
    Tipp zum beenden

    [TAB] & [ENTER]

  • Treeview FileExplorer

    • Oscar
    • 16. November 2010 um 15:31

    Das mit $tagNMTREEVIEW habe ich schon komplett durch (alle Parameter versucht). Unter Windows7 kommt dabei nichts brauchbares raus.
    Entweder stimmt die Struktur nicht oder Windows7 sendet dabei keine notification message.
    Ich weiss nicht, wie man sonst noch an das angeklickte Item kommt?! ?(

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™