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

Beiträge von BugFix

  • Wie kann ich einen Button so verlinken das beim Klick eine Funktion ausgeführt wird in der ControlSend vorkommt?

    • BugFix
    • 9. März 2008 um 20:39
    Zitat

    WinActivate ( "Notepat")


    Das Programm heißt Notepad ;)
    Und falls vorher Notepad noch nicht gestartet ist, solltest du es z.B. mit

    [autoit]

    Run("Notepad.exe", "", @SW_MAXIMIZE)

    [/autoit]


    aufrufen.

  • ein button! 2 funktionen?

    • BugFix
    • 9. März 2008 um 19:59

    Suchst du vielleicht sowas:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1)
    Global $toggle = False

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 303, 166, 193, 115)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    $Button1 = GUICtrlCreateButton("Button1", 64, 56, 161, 33, 0)
    GUICtrlSetOnEvent(-1, "Button1Click")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep(100)
    WEnd

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

    Func Button1Click()
    If $toggle Then
    _Fun2()
    Else
    _Fun1()
    EndIf
    $toggle = Not $toggle
    EndFunc

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

    Func Form1Close()
    Exit
    EndFunc

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

    Func _Fun1()
    MsgBox(0, '', 'Jetzt wird Funktion 1 ausgeführt')
    EndFunc

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

    Func _Fun2()
    MsgBox(0, '', 'Jetzt wird Funktion 2 ausgeführt')
    EndFunc

    [/autoit]

    Edit:
    Theoretisch kannst du auch beliebig viele verschiedene Funktionen auf diese Art ausführen.
    Bleibt natürlich die Frage, ob das Sinn macht. ;)
    Hier mal eine Version mit 5 Funktionen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <array.au3>
    Opt("GUIOnEventMode", 1)
    Global $aFunc[5] = [1,2,3,4,5]

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 303, 166, 193, 115)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    $Button1 = GUICtrlCreateButton("Button1", 64, 56, 161, 33, 0)
    GUICtrlSetOnEvent(-1, "Button1Click")
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep(100)
    WEnd

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

    Func Button1Click()
    Local $funNr = $aFunc[0]
    _ArrayPush($aFunc, $funNr)
    Execute('_Fun' & $funNr & '()')
    EndFunc

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

    Func Form1Close()
    Exit
    EndFunc

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

    Func _Fun1()
    MsgBox(0, '', 'Jetzt wird Funktion 1 ausgeführt')
    EndFunc

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

    Func _Fun2()
    MsgBox(0, '', 'Jetzt wird Funktion 2 ausgeführt')
    EndFunc

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

    Func _Fun3()
    MsgBox(0, '', 'Jetzt wird Funktion 3 ausgeführt')
    EndFunc

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

    Func _Fun4()
    MsgBox(0, '', 'Jetzt wird Funktion 4 ausgeführt')
    EndFunc

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

    Func _Fun5()
    MsgBox(0, '', 'Jetzt wird Funktion 5 ausgeführt')
    EndFunc

    [/autoit]
  • endlosschleife für metin auto-re-login

    • BugFix
    • 9. März 2008 um 16:21

    Du kannst keine Funktion INNERHALB einer schleife deklarieren!
    Also so sollte es etwa aussehen:

    [autoit]

    While True
    ; CODE
    ; Funktionsaufruf
    WEnd

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

    Func FUNKTION()
    ;Code
    EndFunc

    [/autoit]
  • FileInstallFolder ? Geht das ganzen ordner + Unterverzeichnis einbinden ?

    • BugFix
    • 9. März 2008 um 16:14

    Hi,
    ich hatte mal einen Skriptgenerator für FileInstall erstellt.
    Bindet auch Unterordner ein. Vielleicht passt das ja.

  • aktive Fenster im TrayMenü anzeigen und Nicht-/OnTop setzen

    • BugFix
    • 9. März 2008 um 01:22

    Hi,
    es ist noch ein kleiner Bug drin - aber jetzt zu spät (oder früh :P) um danach zu suchen. Die Grundfunktionalität wird aber ersichtlich.

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>
    #include <Process.au3>
    Opt('TrayOnEventMode', 1)
    Opt("TrayMenuMode",1)
    Opt('WinTitleMatchMode', 2)

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

    Global $aWin, $aComp, $aState[1][3]
    $aState[0][0] = -1

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

    $aWin = WinList()
    $t_mnu = TrayCreateMenu('Visible Windows')
    $t_shape = TrayCreateItem('')
    $t_end = TrayCreateItem('Ende')
    TrayItemSetOnEvent(-1, 'Ende')
    _CreateTrayItem()

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

    TraySetState()

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

    AdlibEnable('_CompareArrays', 10000)

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

    While True
    Sleep(100)
    WEnd

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

    Func Ende()
    Exit
    EndFunc

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

    Func Toggle()
    For $i = 0 To UBound($aState) -1
    If $aState[$i][0] = @TRAY_ID Then
    If $aState[$i][1] Then
    WinSetState($aState[$i][2], '', @SW_HIDE)
    TrayItemSetState($aState[$i][0], $TRAY_UNCHECKED)
    Else
    WinSetState($aState[$i][2], '', @SW_SHOW)
    TrayItemSetState($aState[$i][0], $TRAY_CHECKED)
    EndIf
    $aState[$i][1] = Not $aState[$i][1]
    ExitLoop
    EndIf
    Next
    EndFunc

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

    Func _CreateTrayItem()
    Local $i, $k
    For $i = 1 To UBound($aWin) -1
    If $aWin[$i][0] <> "" AND IsVisible($aWin[$i][1]) Then
    If $aState[0][0] = -1 Then ; [0]= ID TrayItem, [1]= True/False (checked/unchecked), [2]= WinTitle
    $k = 0
    Else
    ReDim $aState[UBound($aState)+1][3]
    $k = UBound($aState)-1
    EndIf
    $ProcessName = _ProcessGetName(WinGetProcess($aWin[$i][0]))
    $aState[$k][0] = TrayCreateItem($ProcessName, $t_mnu)
    TrayItemSetOnEvent(-1, 'Toggle')
    TrayItemSetState(-1, $TRAY_CHECKED)
    $aState[$k][1] = True
    $aState[$k][2] = $aWin[$i][0]
    EndIf
    Next
    $aComp = $aWin
    EndFunc

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

    Func IsVisible($handle)
    If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

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

    Func _CompareArrays()
    $aWin = WinList()
    For $i = 0 To UBound($aWin) -1
    If $aWin[$i][0] <> $aComp[$i][0] Then
    _DelItems()
    _CreateTrayItem()
    EndIf
    Next
    EndFunc

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

    Func _DelItems()
    For $i = 0 To UBound($aState) -1
    TrayItemDelete($aState[$i][0])
    Next
    ReDim $aState[1][3]
    $aState[0][0] = -1
    EndFunc

    [/autoit]

    Edit:
    Du willst ja das jeweilige Fenster OnTop setzen. Insofern ist @SW_SHOW / @SW_HIDE nicht so passend.
    Mit WinSetOnTop läßt sich das realisieren - allerdings müßte man für den richtigen Status wissen, welches Fenster im Augenblick OnTop ist. Und das ist über WinGetState nicht ermittelbar. Mal sehen, ob es dafür eine Möglichkeit gibt.

    Hab nochmal ein wenig gesucht - aber keine Möglichkeit gefunden, das Fenster im Vordergrund zu identifizieren. Eine entsprechende WinApi-Funktion bringt auch nur das Vordergrundfenster, wenn es aktiv ist zurück.

  • Array bearbeiten...!

    • BugFix
    • 8. März 2008 um 23:53
    Zitat

    Ich Berechne für jeden Startpunkt also die Zeit wie lange es zu Ziel1 dauert und speichere das in einem Array das dann so aussieht

    Warum fügst du hier nicht gleich die Begrenzung auf 175 Stunden ein und speicherst nur Werte die kleiner gleich 175 sind?

  • Fehler bereits in der EN Hilfe!!

    • BugFix
    • 8. März 2008 um 22:45

    Bitte beim Übersetzen beachten:
    Einige Hilfetexte sind schon im Originaltext fehlerhaft!
    Bitte die Fehler nicht mit übersetzen, also auch auf sachlich richtig prüfen.
    Bsp.: In der Funktion _ArrayTrim()
    ist im Original folgende Parametererklärung
    $iBase Optional: Start Array index for sort, normally set to 0 or 1.
    enthalten - gemeint ist trim statt sort.

  • aktive Fenster im TrayMenü anzeigen und Nicht-/OnTop setzen

    • BugFix
    • 8. März 2008 um 22:08

    Hier mal, wie du die Fensterliste reinbekommst:

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>
    Opt('TrayOnEventMode', 1)
    Opt("TrayMenuMode",1)
    Opt('WinTitleMatchMode', 2)

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

    Global $aWin

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

    $gui1 = GUICreate('TEST 1')
    $gui2 = GUICreate('TEST 2')
    $gui3 = GUICreate('TEST 3')
    $gui4 = GUICreate('TEST 4')

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

    $aWin = WinList('TEST') ; alle Fenster mit TEST im Titel
    Global $aState[$aWin[0][0]][3] ; [0]= ID TrayItem, [1]= True/False (checked/unchecked), [2]= WinHandle
    For $i = 0 To UBound($aState) -1
    $aState[$i][1] = False
    $aState[$i][2] = $aWin[$i+1][1]
    Next

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

    $t_mnu = TrayCreateMenu('Mein Traymenü')
    For $i = 1 To UBound($aWin) -1
    $aState[$i-1][0] = TrayCreateItem($aWin[$i][0], $t_mnu)
    TrayItemSetOnEvent(-1, 'Toggle')
    Next
    $t_shape = TrayCreateItem('', $t_mnu)
    $t_end = TrayCreateItem('Ende', $t_mnu)
    TrayItemSetOnEvent(-1, 'Ende')

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

    TraySetState()

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

    While True
    Sleep(100)
    WEnd

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

    Func Toggle()
    For $i = 0 To UBound($aState) -1
    If $aState[$i][0] = @TRAY_ID Then
    If $aState[$i][1] Then
    GUISetState(@SW_HIDE, $aState[$i][2])
    TrayItemSetState($aState[$i][0], $TRAY_UNCHECKED)
    Else
    GUISetState(@SW_SHOW, $aState[$i][2])
    TrayItemSetState($aState[$i][0], $TRAY_CHECKED)
    EndIf
    $aState[$i][1] = Not $aState[$i][1]
    ExitLoop
    EndIf
    Next
    EndFunc

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

    Func Ende()
    Exit
    EndFunc

    [/autoit]


    Aktualisieren kannst du auch, WinList intervallmäßig durchführen und mit der bestehenden Liste(Array) vergleichen. Wenn Unterschiede neu erstellen. Das kriegst du schon hin. ;)

  • aktive Fenster im TrayMenü anzeigen und Nicht-/OnTop setzen

    • BugFix
    • 8. März 2008 um 19:57

    So etwas?

    Spoiler anzeigen
    [autoit]

    #include <guiconstants.au3>
    Opt('TrayOnEventMode', 1)
    Opt("TrayMenuMode",1)

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

    Global $state = False
    $gui = GUICreate('TEST')

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

    $t_mnu = TrayCreateMenu('Mein Traymenü')
    $t_sub1 = TrayCreateItem('Fenster on/off', $t_mnu)
    TrayItemSetOnEvent(-1, 'Toggle')
    $t_sub2 = TrayCreateItem('Ende', $t_mnu)
    TrayItemSetOnEvent(-1, 'Ende')

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

    TraySetState()

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

    While True
    Sleep(100)
    WEnd

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

    Func Toggle()
    If $state Then
    GUISetState(@SW_HIDE, $gui)
    TrayItemSetState($t_sub1, $TRAY_UNCHECKED)
    Else
    GUISetState(@SW_SHOW, $gui)
    TrayItemSetState($t_sub1, $TRAY_CHECKED)
    EndIf
    $state = Not $state
    EndFunc

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

    Func Ende()
    Exit
    EndFunc

    [/autoit]
  • Plattform-Entwicklung

    • BugFix
    • 8. März 2008 um 19:28

    Ich hab im Hintergrund immer LingoPad offen, per Strg+C / Strg+V schwupp den Begriff rüberkopiert = Übersetzung beginnt sofort automatisch.

  • ListBox GetSelText Problem

    • BugFix
    • 8. März 2008 um 19:24
    [autoit]

    $index = _GUICtrlListBox_GetCurSel(GUICtrlGetHandle($List))
    MsgBox(0, 'Inhalt aktuelle Zeile', _GUICtrlListBox_GetText(GUICtrlGetHandle($List), $index))

    [/autoit]
  • Plattform-Entwicklung

    • BugFix
    • 8. März 2008 um 16:19

    Also die Geschichte mit Google als VorÜbersetzer scheitert an der Unbrauchbarkeit der Ergebnisse von Google.
    Für einzelne Wörter mag das brauchbar sein, aber bei komplexen, noch dazu fachlichen Texten, hilft eigentlich nur: Löschen und richtig übersetzen. ;)

  • ListBox GetSelText Problem

    • BugFix
    • 8. März 2008 um 12:03

    Hi,
    mehrere Fehler:

    [autoit]

    If $Msg=$ConfB Then
    msgbox(0,"",_GUICtrlListBox_GetSelItemsText($List))
    msgbox(0,"",_GUICtrlListBox_GetText($List, 1))
    EndIf

    [/autoit]


    - $List enthält die ID, die Funktionen erfordern aber das Handle (steht so auch in der Hilfe!), also:
    GUICtrlGetHandle($List) statt $List einsetzen
    - _GUICtrlListBox_GetSelItemsText() gibt ein Array zurück!!

  • Autoit Und Special Zeichen Wo ist da das Problem ?

    • BugFix
    • 7. März 2008 um 20:55

    Fileread('C:\).txt')

    Ich würde mich als Programm oder Betriebssystem auch weigern eine Datei mit diesem "Namen" zu verarbeiten. :D
    Geht eigentlich an jeder gängigen Nomenklatur vorbei. ;)

  • MSN für Kinder Zeitlich begrenzen (Prozess loggen und automatisch beenden)

    • BugFix
    • 6. März 2008 um 23:42

    Wie wärs, wenn du einfach die Ports sperrst?
    ICQ: TCP 20000, 20019, 20039, 20059
    MSN: TCP / UDP 1863, 5190, 6891, 6901
    IRC: 6667, 7000

  • TFT Auflösung ändern

    • BugFix
    • 5. März 2008 um 08:13

    Hi Anna,

    also bei den Größeneinstellungen muß genau der Text stehen, der unter dem Schieberegler zu lesen ist (z.B. "1280 x 1024 Pixel"). Denn diesen Text lese ich bei jedem Schleifendurchlauf aus.

    Wegen der Farbtiefe: Die Werte stehen in einer Combobox.
    Auf nicht selbst erzeugte Controls greift man am besten mit ControlCommand zu. Wenn du in der Hilfe zu diesem Befehl nachschaust, findest du dort die möglichen Parameter für unterschiedliche Controls.
    In der Combobox geht es darum zuerst zu ermitteln, welche Position innerhalb der Comboliste der gewünschte Wert einnimmt.
    In der Parameterübersicht als occurence (Vorkommen) bezeichnet. Das passiert hier:
    $occur = ControlCommand('Eigenschaften von Anzeige', '', $cbFarbtiefe, 'FindString', 'Höchste (32 Bit)')
    "$occur" enthält jetzt die Listen-Position von "Höchste (32 Bit)".
    Nun wird diese Position als aktuelle Auswahl gesetzt mit:
    ControlCommand('Eigenschaften von Anzeige', '', $cbFarbtiefe, 'SetCurrentSelection', $occur)

    Zitat

    wenn ich meine aktuelle auflösung nicht abfragen würde sondern direkt in die eigenschaften von Anzeige geh und sag er soll den register auf X*Y (bzw das höchste) stellen - wie würde da der code aussehen?

    Einfach solange
    ControlSend('Eigenschaften von Anzeige', '', $Regler_ID, '{RIGHT}')
    ausführen, bis
    $txt = ControlGetText('Eigenschaften von Anzeige', '', $Size_ID)
    sich nicht mehr ändert.
    Probier mal selbst, wenn du nicht klarkommst, meld dich wieder.

    Zitat

    2) Du hast geschrieben " wenn ja dann wandert der Regkler eine Stufe höher" eine Stufe oder sind das mehrere ?


    Die Anzahl der Stufen hängt von der verwendeten Grafikkarte ab.

    Zitat

    3) der Code -
    If Number(StringLeft($txt, 4)) < Number(StringLeft($Zielwert2, 4)) Then
    Was besagt er genau ? Was für ein Number? Stringleft ?txt ist einfach nur eine variable? Und was sagt die 4 aus ?


    Du mußt die Funktion von innen nach außen lesen:
    StringLeft($txt, 4) ==> liefert von "$txt" die linken 4 Zeichen, z.B. von "800 x 600 Pixel" die "800 "
    4 Zeichen deshalb, weil die größtmöglichen Werte 4 Zeichen lang sind. Hier wird das Leerzeichen mit übernommen - das wird aber beim Wandeln in eine Zahl ignoriert.
    Das ist jetzt aber eine Zeichenkette. Und um beim numerischen Vergleich keine falschen Ergebnisse zu bekommen wird diese Zeichenkette in eine Zahl umgewandelt, in diesem Bsp.:
    Number("800 ") ==> liefert 800
    Dasselbe passiert auf der Zielwertseite, sodass der Vergleich lautet:
    If 800 < 1024 Then

  • CMD Tool bauen

    • BugFix
    • 4. März 2008 um 20:16

    @ I3iLLiG:

    Zitat

    mach doch einfach mal nen GUI wie du dirs vorstellst


    LOL ==> Es soll ein CMD-Line Tool sein ;)

    sc4ry:
    Beim Start des Programms werden ja alle übergebenen Parameter im Array $CmdLine geführt.
    Du hast nun echte Parameter, die mit '-' beginnen und evtuelle Zusätze zu diesen Parametern, die im Augenblick als eigene, daher falsche Parameter geführt werden.
    Am Einfachsten wird sein, alle Parameter zu einem String zusammenzufügen und anschließend an der Position '-' neu zu splitten:
    übergeben: -s 56 -o blubb -l -m
    als 1 String: -s56-oblubb-l-m
    gesplittet an '-':
    s56
    oblubb
    l
    m

    Jetzt neu aufbereiten: 1. Zeichen ist Parameter, weitere Zeichen sind Zusatz:
    s 56
    o blubb
    l
    m

  • SciTE Updatecheck

    • BugFix
    • 4. März 2008 um 20:12

    Ha, ich weiß jetzt warum:
    Auf der History-Site steht als aktuelles Datum: 16.02.08
    Der Download hat aber das Datum: 20.02.08
    Für den Updatecheck wird die Histora-Site als Referenz genommen. Und so kommt es, dass der 16. halt neuer als der 20. ist. :P

  • SciTE Updatecheck

    • BugFix
    • 4. März 2008 um 20:01

    Unter: SciTE--> Tools --> SciTE Config

  • SciTE Updatecheck

    • BugFix
    • 4. März 2008 um 19:45

    Hi,
    Ich hatte gerade die neueste Version von SciTE installiert.
    Ein anschließender erneuter Updatecheck brachte folgendes, verblüffendes Ergebnis:

    http://www.pictureupload.de/pictures/040308195441_scite_up.PNG

    :rofl::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™