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

Beiträge von unearth

  • Skript in der Tray von einem eigenständigen Skript aus aktualisieren

    • unearth
    • 19. Juli 2007 um 19:34
    Zitat

    Original von Xenobiologist
    verstehe es leider noch nicht genau. Das Skript wird mehrfach gestartet und beendet und die Icons bleiben im Tray stehen und diese willt du beseitigen, oder wie?

    Jup, genau, Mein Systemtray sieht dann ungefähr so aus, wie auf dem Bild unten. Mir ist im Grunde egal wie, aber ich möchte nicht, dass so eine Völkerkwanderung der Icons entsteht.
    Das mehrfache Starten und Beenden mache ich nur, weil ich sonst nicht weiß, wie ich die Daten im Menü aktualisieren soll, sobald das andere Skript diese Daten geändert hat.

    Das habe ich vielleicht nicht so ausdrücklich gesagt: Im Hauptskript ändere ich Daten, die im Trayskript synchron aktualisiert werden sollen.

    Hoffentlich ist es jetzt ein wenig deutlicher.

    Bilder

    • systemtray.jpg
      • 8,97 kB
      • 317 × 24
  • Skript in der Tray von einem eigenständigen Skript aus aktualisieren

    • unearth
    • 19. Juli 2007 um 18:56

    Hi Mega,

    wenn ich _Singleton richtig verstehe, hilft es in meinem Fall nicht. Oder mir fehlt die nötige Phantasie, es richtig einzusetzen.

    Ich möchte das Skript ja ausgeführen, jedoch nicht, das im Systemtray die Icons jedes Mal neu gezeichnet werden und alten Spuren erhalten bleiben, was sich bei meiner derzeitigen Vorgehensweise (aus meiner Sicht) nicht verhindern lässt.

    Übersehe ich etwas?

  • Skript in der Tray von einem eigenständigen Skript aus aktualisieren

    • unearth
    • 19. Juli 2007 um 18:35

    Hallo,

    ich habe folgendes Problem. Ich werde versuchen, das möglichst übersichtlich zu halten.

    Ich habe ein Hauptskript (Programm), das eine ini ausließt, bearbeitet und verwaltet die Einträge und andere Optionen. Ein weiteres Skript, das die in der ini verzeichneten Einträge als Traymanager(Programm) ausführt.
    In 95 Prozent der Fälle läuft nur das Skript in der Tray zum Ausführen der Einträge, da die Funktionen aus dem Hauptskript nur in einigen speziellen Situationen gebraucht werden.

    Ich versuche nun schon seit einiger Zeit, das Trayprogramm bzw. die Items im Tray zu aktualisieren. Jedoch bin ich leider nur auf den Trichter gekommen, das Trayprogramm zu schließen und wieder neu zu starten. Was aber einen optischen Makel hat: Da, wenn das Hauptprogramm mal was gemacht hat, häufig aktualisiert wurde, wurde auch das Trayprogramm häufig geschlossen und wieder neu gestartet. Dies führt dazu, dass das Trayicon im Zweifel sogar dutzendfach vorhanden ist.

    Ein gemeinsames Skript könnte das zwar lösen, würde im Arbeitsspeicher aber dreifach zu Buche schlagen. Da ich aber meistens nur das schmale Trayprogramm brauche, halte ich das für unökonomisch.

    Meine Frage(n):
    -Fällt jemandem ein besserer Weg ein, dies zu lösen? EnvSet und EnvGet gehen nicht, da ich das Trayprogramm ja nicht spawne.
    -Kann ich das Systemtray mit AutoIt aktualisieren, damit duplizierte Trayicons verschwinden?

    Wäre schön, wenn einer der Spezialisten mir einen Hinweis geben könnte.

    Grüße

    Chris

  • Gui Probleme

    • unearth
    • 5. Juli 2007 um 14:37

    @th.meger: dann werde ich mich da mal umschauen, vielen dank. ich hatte halt irgendwie die wahrscheinlich naive hoffnung, es gäbe so etwas wie eine übersicht.

  • SMS Sender - 100%ig kosteloses SMS Senden!

    • unearth
    • 4. Juli 2007 um 17:51

    GtaSpider : hammer! von der alten version, die ich kenne, ist das optisch schon ein sprung! ich find´s sehr stark. muss mir wohl mal anschauen, was auto3lib so alles auf dem kasten hat. das ist ja anscheinend einiges an spielerei möglich. nur ein paar punkte: 1. ich hätte in gerne einen button zum abbrechen in der hauptgui. 2. das der bildschirm abgedunkelt wird, um den captcha zu betonen ist fesch, aber ich war schon etwas erschrocken. 3. nützliches prog, falls ich es nicht schon erwähnt habe ;)

  • Gui Probleme

    • unearth
    • 4. Juli 2007 um 17:05

    @all (leider etwas offtopic): Wo ich das hier grad gelesen habe, kommt mir eine frage: ich habe mit dlls noch gar nichts gemacht und wüsste nun gerne, ob es zu den windows- oder nur der user32.dll eine ähnliche hilfe gibt wie für die autoit-funktionen, damit ich mich mal damit auseinandersetzen kann? könnte mir einer von euch einen schubs in die richtige richtung geben? auf der microsoft-seite verlier ich die übersicht. danke!

  • Binary datei einlesen und wieder speichern

    • unearth
    • 4. Juli 2007 um 02:52

    Der hängt die Zeile aber anscheinend nur an den bestehenden Text an und nicht dort, wo Du ihn haben willst.

  • Tray ein/ausblenden

    • unearth
    • 29. Juni 2007 um 15:59

    Sorry, hab ich wohl falsch verstanden.

  • Tray ein/ausblenden

    • unearth
    • 29. Juni 2007 um 15:32

    Voilà! Aber frag mich net, warum ich den Hotkey auf {UP} gesetzt habe. :D

    [autoit]

    HotKeySet("{UP}", "TrayIcon")
    $trayiconflag = 0

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

    ;Tray-Icon
    While 1

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

    WEnd

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

    Func TrayIcon()
    If $trayiconflag = 0 Then
    $trayiconflag = 1
    Opt("TrayIconHide", 1)
    ElseIf $trayiconflag = 1 Then
    $trayiconflag = 0
    Opt("TrayIconHide", 0)
    EndIf
    EndFunc

    [/autoit]

    grüße

    p.s. und finde bitte selbst eine lösung dafür, dass die Systemauslastung auf 100% steigt! ;)

  • Warten, bis das Installationsscript komplett fertig ist (Zwischen Installationsschitten pause einbau

    • unearth
    • 28. Juni 2007 um 20:11

    Hi Bosk!

    Ich kenne mich nicht so gut mit installationsskripten und den dazugehörigen Funktionen aus. Ich würde aber sagen, dass Du lieber mal prüfen solltest, ob die ControlID in der Funktion ControlClick stimmt. Dass AutoIt nach einer Zeit einfach Schluss macht, ist ziemlich unwahrscheinlich.
    Es scheint dort eher ein Fehler im Deinem Skript vorzuliegen, wenn ich mich nicht vertue. Es spricht auch dafür, dass es wohl immer zum selben Zeitpunkt im Skript auftritt.

    Gruß

    chris

  • karte

    • unearth
    • 27. Juni 2007 um 21:55

    Also, ich habe eines meiner Skripte aus meiner Experimentierphase, da könntest Du Dir eventuell was abschauen, wie Du die Labels bewegst. Ist aber nur ein Entwurf.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <Misc.au3>

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

    $GUI = GUICreate("Test", 300, 300)
    $example = GUICtrlCreateLabel("Label", 10, 10) ;Ein verschiebbares Label
    GUICtrlSetCursor(-1, 0) ;Setzt einen Cursor über der Control
    $example2 = GUICtrlCreateLabel("Grafik", 25, 38) ;Ein verschiebbares Label der Grafik
    $example1 = GUICtrlCreateGraphic(10, 40, 10, 10);, -1, -1,$SS_CENTERIMAGE) ;Eine verschiebbare Grafik
    GUICtrlSetCursor(-1, 0) ;Setzt einen Cursor über der Control
    GUICtrlSetGraphic(-1, $GUI_GR_COLOR, 0x000000, 0xffffff) ;Farben der folgenden Ellipse (oder in diesem Fall ein Kreis)
    GUICtrlSetGraphic(-1, $GUI_GR_ELLIPSE, 0, 0, 10, 10) ;Setzt einen Punkt als Grafik
    $button = GUICtrlCreateButton("Fließtext", 10, 260)

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

    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $example
    $coords = WinGetPos($GUI) ;Auslesen der Fensterposition für _MouseTrap
    _MouseTrap($coords[0], $coords[1] + 27, $coords[0] + $coords[2], $coords[1] + $coords[3]) ;Begrenzt den Cursor auf die GUI
    Do
    $a = GUIGetCursorInfo() ;Cursorposition auslesen
    GUICtrlSetPos($example, $a[0] - 10, $a[1] - 10);Die Position der Control an Cursorposition anpassen
    ;~ Sleep(100)
    Until $a[2] = 0
    _MouseTrap() ;Hebt die Cursorbegrenzung auf
    Case $msg = $example1
    $coords = WinGetPos($GUI) ;Auslesen der Fensterposition für _MouseTrap
    _MouseTrap($coords[0], $coords[1] + 27, $coords[0] + $coords[2], $coords[1] + $coords[3]);Begrenzt den Cursor auf die GUI
    Do
    $a = GUIGetCursorInfo() ;Cursorposition auslesen
    GUICtrlSetPos($example1, $a[0] - 10, $a[1] - 10);Die Position der Control an Cursorposition anpassen
    GUICtrlSetPos($example2, $a[0] + 5, $a[1] - 12);Die Position der Control an Cursorposition anpassen
    ;~ Sleep(50)
    Until $a[2] = 0
    _MouseTrap() ;Hebt die Cursorbegrenzung auf
    Case $msg = $button
    $vertscroll = 290
    $horizontal = 100
    $fliesstext = GUICtrlCreateLabel("Fließtext", $horizontal, 10)
    For $vertscroll = 290 To 10 Step - 3
    GUICtrlSetPos($fliesstext, $horizontal, $vertscroll)
    Sleep(25)
    $horizontal += 2
    Next
    GUICtrlDelete($fliesstext)
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    EndSelect
    WEnd

    [/autoit]
  • GUICtrlCreateCheckbox

    • unearth
    • 27. April 2007 um 18:52

    Das Einzige, das mir einfällt, und dem, was Du gerne hättest, halbwegs nahe kommt:

    Mit GUICtrlSetImage ein beliebig großes Bild drauflegen. Musst natürlich vorher in GUICtrlCreateCheckbox die width und height angeben und für die Checkbox den Style $BS_ICON oder ...Bitmap setzen und dann noch $BS_PUSHLIKE.

    Sieht dann so aus (Variante des Examples):

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    GUICreate("My GUI Checkbox") ; will create a dialog box that when displayed is centered

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

    $checkCN = GUICtrlCreateCheckbox ("CHECKBOX 1", 10, 10, 150, 70, BitOR($BS_ICON, $BS_PUSHLIKE))
    GUICtrlSetImage (-1, "shell32.dll",22)

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

    GUISetState () ; will display an dialog box with 1 checkbox

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

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    Wend

    [/autoit]

    Ist am Ende aber nicht, was Du wolltest...

    Gruß

    Chris

    P.S. Könntest natürlich dafür sorgen, dass das Icon je nachdem ob die CHeckbox markiert ist oder nicht wechseln. Wäre dann ein wenig getrickst, aber einen Versuch eventuell wert.

  • Daten in ein Array - filtern - Ergebnis in Liste ausgeben

    • unearth
    • 26. April 2007 um 20:06

    Freut mich, dass Du jetzt weiterarbeiten kannst.

    Zum neuen Problem:
    _FileListToArray ist jetzt nicht mein Spezialgebiet, aber spontan würde ich eine Abfrage der Ordner machen, also mit $iFlag auf 2 gesetzt und für diese dann wieder jeweils eine weitere _FileListToArray For...Next-Abfrage. Sollten da auch wieder Unterordner sein, wiederum das selbe Schema anwenden.

    Wird aber dadurch schon ein wenig aufwändiger. Ist aber Deine Sache oder Freizeit ;)

  • Bin neue und brauche Hilfe

    • unearth
    • 26. April 2007 um 17:00

    ControlGetPos, Mist! Ich wusste, ich hab was vergessen :hammer:

    Mach mal aus $GUI_EVENT_RESIZED ein $GUI_EVENT_RESTORE. Sollte dann klappen.

  • Daten in ein Array - filtern - Ergebnis in Liste ausgeben

    • unearth
    • 26. April 2007 um 15:10

    Kann´s nicht im Detail checken, aber was mir aufgefallen ist:

    1. In Zeile 54:

    [autoit]

    GUICtrlCreateTreeViewItem($Pfad & $FileList[$i], $listview);$TreeViewItems[$i] =

    [/autoit]

    Das sollte ein ListViewItem sein oder Du machst aus Zeile 12 GUICreateTreeView, aber so passt das wohl nicht.

    2. Wenn Du alle Items auflisten willst, solltest Du die in Arrays für die TreeView/ListView lesen und ausgeben. ungefähr so:

    [autoit]

    $listviewitem[$i] = GuiCreateListViewItem(...)

    [/autoit]

    Kann sein, dass ich das nicht richtig verstehe. Kann Dein Script nicht ausführen, da mir die Funktion image_get_info.au3 fehlt.

    3. Ich denke, wenn 1 und 2 geklärt sind, ergibt sich Dein Problem von selbst. Die Prüfung sieht für mich auf den ersten Blick ganz schlüssig aus.

    Gruß

    Chris

  • Bin neue und brauche Hilfe

    • unearth
    • 26. April 2007 um 14:44

    Versuch´s doch mal mit WinGetClientSize auf dein Script. Dann noch eine Width- und Height-Variable in Relation zu den Arrays von WinGetClientSize setzen und diese in der Schleife bei Änderungen über _GUICtrlListViewSetColumnWidth aktualisieren lassen.

    So, oder so ähnlich würde ich da rangehen. Probier´s mal aus.

    Gruß

    Chris

    P.S. Vielleicht gibt´s auch ein Makro oder eine UDF dafür, hab nicht detailliert nachgeschaut.

  • Bin neue und brauche Hilfe

    • unearth
    • 25. April 2007 um 13:40

    Wenn Du in der Hilfe nachschlägst, sieht es wohl so aus, als ginge das erst einmal nicht, was Du da vorhast. Jedes Item in der Listview kann ein Icon haben, dass jedoch erstens immer das selbe ist und zweitens nur für die gesamte Zeile zugeordnet werden kann. Also sind verschiedene Icons in unterschiedlichen Spalten eines Items (also die Zeile) , so wie ich die Hilfe lese, nicht möglich.

    Gruß

    Chris

    P.S. Etwas komplizierter, aber wohl deutlicher ausgedrückt, jede Spalte und jede Zeile bräuchten eine spezifische controlID. So dass deren Verbindung, nennen wir das mal Zeilenspalte, eine eigene controlID-Kombination hätte, die man mit GUICtrlSetImage ansprechen müsste. Dies ist aber nicht vorhanden und/oder machbar.

  • Neue 3.2.0.0-Hilfe übersetzen

    • unearth
    • 24. April 2007 um 20:22

    Bescheidene Frage: Kann man da noch irgendwie unterstützend eingreifen? Ich habe keine große Erfahrung im Umgang mit AutoIt, könnte jedoch anbieten, schon fertiggestellte Teile zur Korrektur gegenzulesen. Hätte für mich auch den Vorteil, dass ich über einige neue Dinge stolpere. Wie stellt man das am besten an, wenn Bedarf besteht?

    Falls da alles im Lot sein sollte, auf jeden Fall vielen Dank für die Arbeit, da es mich in vielen Dingen schon rausgerissen hat, zur englischen Version auch die deutsche Hilfe querlesen zu können.

    Gruß

    Chris

  • ShellExecute-Fehlermeldung

    • unearth
    • 24. April 2007 um 20:13

    Hi noch mal!

    Das mit Registry wird auf Dauer das Beste sein, jedoch bin ich jetzt schon interessiert, warum ShellExecute diesen Fehler bringt.
    Und da ich oben etwas mißverständlich formuliert habe, noch mal die Voraussetzungen. Ich habe ein kleines Script, für das ich lokal eine Dokumentation in html hinterlegt habe, die (im Standardbrowser) geöffnet werden soll.
    Ich erhalte aber immer oben genannte Fehlermeldung, wenn der Browser nicht schon läuft. Übrigens auch, wenn ich es mit Comspec usw. mache. Hat irgendjemand eine Idee, wo dieser Fehler herkommt. Ich hab auch schon mit RunErrorsFatal rumgespielt, das Script stürzt auf jeden Fall nach der Fehlermeldung ab. Das wurmt mich jetzt schon, da ich durch die Scripte auch ein wenig tiefer in die Mechanismen des Systems einsteigen möchte. Aber das hier übersteigt meinen Horizont.

    Gruß

    Chris

  • ShellExecute-Fehlermeldung

    • unearth
    • 24. April 2007 um 11:00

    Ist mir auch grad aufgefallen. Ich kenne mich mit Registry nicht so gut aus. Hast Du einen Hinweis oder Link, wie ich den Standardbrowser auslesen kann?

    Die html soll als kleines Hilfedokument oder Anleitung geöffnet werden, da ich keine Ahnung habe, wie ich mir schnell mal eine chm basteln kann, habe ich halt meinen Editor geschnappt und die html gemacht.

    Außerdem - welchen Rechner meinst Du? Den mehr oder weniger zuverlässigen, den ich auf meinen Schultern herumtrage oder den unterm Schreibtisch? :rofl:

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™