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

  • OnEvent Funktionen funktionieren in GUI 2. Ebene nicht

    • BugFix
    • 27. August 2009 um 17:40

    Du hast bei einem Button 'GUISetOnEvent' verwendet, der braucht aber 'GUICtrlSetOnEvent' ;)

  • [Download] Koda - schonwieder sry

    • BugFix
    • 27. August 2009 um 09:12

    Übrigens kannst du Koda aus SciTe heraus nur öffnen, wenn du dich in einer existierenden .au3-Datei befindest.
    Also erst: Datei-Neu, Speichern als: *.au3, und dann Alt+m zum Start von Koda.

  • Mouseover inkl. Tabitem

    • BugFix
    • 27. August 2009 um 08:52

    Du mußt nur das aktive TabItem abfragen und in der Auswertung überprüfen.
    Habe es mal angepaßt.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #Include <GuiTab.au3>
    Global $Tab

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

    $wintitel = "Form1"
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 400,400)
    $Tab = GuiCtrlCreateTab(5, 5, 380, 380)
    GuiCtrlCreateTabItem("Tab 1")
    $Button1 = GUICtrlCreateButton("exit", 10, 100, 61, 31, 0)
    GuiCtrlCreateTabItem("Tab 2")
    $Button2 = GUICtrlCreateButton("exit", 100, 100, 61, 31, 0)
    GuiCtrlCreateTabItem("Tab 2")
    $Button2 = GUICtrlCreateButton("exit", 200, 100, 61, 31, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    Exit
    EndSwitch
    _Tooltip()
    Sleep(10)
    WEnd

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

    Func _MouseOver($_mo_x, $_mo_y, $_mo_width, $_mo_height)
    If Not WinActive($wintitel) Then Return ; WICHTIG!!!!! NUR WENN DAS FENSTER AKTIV IST MOUSOVER PRÜFEN
    $_mo_pos = GUIGetCursorInfo()
    If ($_mo_pos[0] > $_mo_x) and ($_mo_pos[0] < $_mo_x + $_mo_width) and ($_mo_pos[1] > $_mo_y) and _
    ($_mo_pos[1] < $_mo_y + $_mo_height) Then Return 1
    Return 0
    EndFunc

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

    Func _Tooltip()
    $currTab = _GUICtrlTab_GetCurSel($Tab)
    $tooltip_sleep = '50'
    ;Spieler1-----------------------------------------------------------------------------
    If _MouseOver(10, 100, 61, 31) And $currTab = 0 Then
    Do
    ToolTip ("Button Tab 1",Default,Default,'Test1',1)
    Sleep($tooltip_sleep)
    Until _MouseOver(10, 100, 61, 31) = 0
    ToolTip('')
    EndIf

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

    ;Name2-----------------------------------------------------------------------------
    If _MouseOver(100, 100, 61, 31) And $currTab = 1 Then
    Do
    ToolTip ("Button Tab 2",Default,Default,'Test 2',1)
    Sleep($tooltip_sleep)
    Until _MouseOver(100, 100, 61, 31) = 0
    ToolTip('')
    EndIf

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

    ;Name3-----------------------------------------------------------------------------
    If _MouseOver(200, 100, 61, 31) And $currTab = 2 Then
    Do
    ToolTip ("Button Tab 3",Default,Default,'Test 3',1)
    Sleep($tooltip_sleep)
    Until _MouseOver(200, 100, 61, 31) = 0
    ToolTip('')
    EndIf
    EndFunc

    [/autoit]

    Edit:
    Ich hab dir mal die Funktion _Tooltip() noch 'verschlankt'. ;)


    [autoit]

    Func _Tooltip()
    $currTab = _GUICtrlTab_GetCurSel($Tab)
    $tooltip_sleep = '50'
    Local $aButton[3][6] = [[10,100,61,31,'Button Tab 1','Test1'],[100,100,61,31,'Button Tab 2','Test2'],[200,100,61,31,'Button Tab 3','Test3']]
    If _MouseOver($aButton[$currTab][0], $aButton[$currTab][1], $aButton[$currTab][2], $aButton[$currTab][3]) Then
    Do
    ToolTip ($aButton[$currTab][4],Default,Default,$aButton[$currTab][5],1)
    Sleep($tooltip_sleep)
    Until Not _MouseOver($aButton[$currTab][0], $aButton[$currTab][1], $aButton[$currTab][2], $aButton[$currTab][3])
    ToolTip('')
    EndIf
    EndFunc

    [/autoit]
  • Anzahl Icons in einer ICL herrausfinden

    • BugFix
    • 27. August 2009 um 08:26

    Die Auswertung des DllCall über @error ist nicht immer erfolgreich.
    Da der DllCall stets ein Array liefert und $ret[0] bei einem Fehler =0 ist, ist es m.E. günstiger darauf zu prüfen.

    [autoit]

    ; im Bsp. statt:
    If Not @error Then Return $iCount[0]

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

    ; lieber:
    If $iCount[0] Then Return $iCount[0]

    [/autoit]
  • Ich schon wieder ^^ Ich komme einfach nicht weiter!

    • BugFix
    • 26. August 2009 um 21:26

    Bitte IMMER die Nutzungsbedingungen lesen!
    Es gibt so gut wie keinen Internetservice, der automatisierte Zugriffe gestattet.

    Zitat von TERMS OF SERVICE

    You are not allowed to invoke the conversion service directly from other websites or using automated tools.

  • Array deklarieren?

    • BugFix
    • 26. August 2009 um 17:57
    Zitat von Andy

    ist doch sowohl das Handling als auch der Schreibaufwand identisch?! Sowohl beim Füllen als auch bei der Abfrage. Gibt es signifikante Geschwindigkeitsunterschiede?


    Es gibt einen Vorteil beim Füllen und Auslesen: Du kannst über den Bezeichner ("str Bezeichner;...") die Inhalte assoziativ ansprechen. Das hilft besonders dann, wenn du nach 'ewigen' Zeiten mal wieder die Source anguckst und nicht grübeln mußt, was sich hinter $array[0][1][0][0][1][0] für ein Detail verbirgt. :D
    Geschwindigkeitsmäßig ist ohne Zweifel das Array schneller.

  • Array deklarieren?

    • BugFix
    • 26. August 2009 um 08:50
    Zitat von MatthiasG.

    Also $Array[Kleidungsart(Polo/Pulli/Shirt)][Groesse][Schnittform][Farbe][...]

    Es ist relativ praktisch :D


    Da hätte sich aber eine objektähnliche Lösung mittels Strukturen angeboten (und ist wohl besser zu händeln als 6 Dimensionen :rolleyes: ).
    Etwa in der Form:

    Spoiler anzeigen
    [autoit]

    $tagARTIKEL = "str Art;str Groesse;str Form;str Farbe"
    Local $aArtikel[100]

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

    $aArtikel[0] = DllStructCreate($tagARTIKEL)
    DllStructSetData($aArtikel[0], 1, 'Pulli')
    DllStructSetData($aArtikel[0], 2, 'XXL')
    DllStructSetData($aArtikel[0], 3, 'cool')
    DllStructSetData($aArtikel[0], 4, 'schweinchenrosa')

    [/autoit]
  • Programm Login.

    • BugFix
    • 25. August 2009 um 22:43

    Stimmt, hatte ich in dem Moment nicht bedacht. Nun gelöst.:

    Spoiler anzeigen
    [autoit]

    Func _Login()
    $source = _INetGetSource("http://tuttifrutti.kilu.de/l33tm3.html")
    If Not @error Then
    ;$sapfelversion1 = StringRegExp($source, '<br> Benutzername:&nbsp;(.*?)<br>', 1)
    $sapfelversion2 = StringRegExp($source, '(?:Benutzername:&nbsp;\s*)([\w\d]+)', 3)
    $sapfelversion3 = StringRegExp($source, '(?:E-Mail:&nbsp;\s*)([\w\d@.]+)', 3)
    ;Überprüfe Name + Passwort +++ Soll gucken ob Datein auf Server sind.
    EndIf
    $index = _ArraySearch($sapfelversion2, GUICtrlRead($Input1))
    If Not @error And $sapfelversion3[$index] = GUICtrlRead($Input2) Then
    ShellExecute("Server [Tutti].exe", "", @ScriptDir, "open")
    Else
    MsgBox(64, "Fehler", "Benutzername oder/und E-mail sind Falsch.")
    EndIf;### Tidy Error -> func is never closed in your script.
    EndFunc

    [/autoit]
  • Programm Login.

    • BugFix
    • 25. August 2009 um 22:25

    So, es waren Fehler in den Pattern und beim Vergleich mußt du die Inputs natürlich auch auslesen. ;)

    [autoit]

    Func _Login()
    $source = _INetGetSource("http://tuttifrutti.kilu.de/l33tm3.html")
    If Not @error Then
    ;$sapfelversion1 = StringRegExp($source, '<br> Benutzername:&nbsp;(.*?)<br>', 1)
    $sapfelversion2 = StringRegExp($source, '(?:Benutzername:&nbsp;\s*)([\w\d]+)', 1)
    $sapfelversion3 = StringRegExp($source, '(?:E-Mail:&nbsp;\s*)([\w\d@.]+)', 1)
    ;Überprüfe Name + Passwort +++ Soll gucken ob Datein auf Server sind.
    EndIf
    If GUICtrlRead($Input1) & GUICtrlRead($Input2) = $sapfelversion2[0] & $sapfelversion3[0] Then
    ShellExecute("Server [Tutti].exe", "", @ScriptDir, "open")
    Else
    MsgBox(64, "Fehler", "Benutzername oder/und E-mail sind Falsch.")
    EndIf;### Tidy Error -> func is never closed in your script.
    EndFunc

    [/autoit]
  • RMCHART

    • BugFix
    • 25. August 2009 um 21:34
    Zitat von subzero007

    und Excel ist leider nicht dafür gedacht


    Nun, vielleicht nicht dafür gedacht - aber was spricht dagegen, das Diagramm in Intervallen zu aktualisieren? OK, nicht ganz so toll, wie eine laufende Linie.

  • RMCHART

    • BugFix
    • 25. August 2009 um 21:15

    Verwende doch Excel-Diagramme. Wie du das lösen kannst, hatte ich dir bereits gezeigt.

  • Array deklarieren?

    • BugFix
    • 25. August 2009 um 21:10

    Oder hier mal mit Zahlen, vergleich selber - ich finde es wenig übersichtlich.

    Spoiler anzeigen
    [autoit]

    Local $a[3][2][2]
    $a[0][0][0] = 1
    $a[0][0][1] = 2
    $a[0][1][0] = 3
    $a[0][1][1] = 4

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

    $a[1][0][0] = 5
    $a[1][0][1] = 6
    $a[1][1][0] = 7
    $a[1][1][1] = 8

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

    $a[2][0][0] = 9
    $a[2][0][1] = 0
    $a[2][1][0] = 11
    $a[2][1][1] = 12

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

    Local $a[3][2][2] = [[[1,2],[3,4]],[[5,6],[7,8]],[[9,0],[11,12]]]

    [/autoit]
  • Array deklarieren?

    • BugFix
    • 25. August 2009 um 20:54

    Das machst keinen Sinn bei 3D oder mehr.
    Da geht dir die Übersicht verloren. Es ist da besser nach der Deklaration zu befüllen.
    Also:

    [autoit]

    Local $a[3][2][2]
    $a[0][0][0] =
    $a[0][0][1] =
    $a[0][1][0] =
    $a[0][1][1] =

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

    $a[1][0][0] =
    $a[1][0][1] =
    $a[1][1][0] =
    $a[1][1][1] =

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

    $a[2][0][0] =
    $a[2][0][1] =
    $a[2][1][0] =
    $a[2][1][1] =

    [/autoit]
  • Array deklarieren?

    • BugFix
    • 25. August 2009 um 20:35

    Na du gibst die Anzahl der Dimensionen durch je ein eckiges Klammerpaar an.

    [autoit]

    Local $a[10][2][2]
    Local $a[9][9][9][9]

    [/autoit]
  • Verknüpfung erstellen

    • BugFix
    • 25. August 2009 um 08:50

    Steht in der Hilfe doch schon sauber erklärt.
    Aber hier nochmal:

    [autoit]

    ; allgemein
    FileCreateShortcut('kpl_Pfad_der_Datei', 'Linkpfad')

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

    ; Bsp.
    $Path = 'C:\Programme\Ein_Programm\programm.exe' ; Speicherort des Programms
    $Link = @DesktopDir & '\proggi.lnk' ; <== Link auf Desktop als Name "proggi"
    FileCreateShortcut($Path, $Link, 'C:\Programme\Ein_Programm') ; <== Angabe WorkDir bei vielen Programmen erforderlich

    [/autoit]
  • Hostname to IP

    • BugFix
    • 24. August 2009 um 15:31

    _TCPIpToName()

  • Hostname to IP

    • BugFix
    • 24. August 2009 um 14:18

    TCPNameToIP()

  • Fenster Verstecker

    • BugFix
    • 24. August 2009 um 13:52
    Zitat von Sithlord95

    Danke Bugfix das du die Tags gesetzt hast und den Spoiler natürlich.


    Kannst ja mal probieren, die Tags von Hand zu schreiben: [ spoiler ] [ autoit ] code [ /autoit ] [ /spoiler ]
    Natürlich ohne Leerzeichen.

  • Regex und Binärdateien

    • BugFix
    • 24. August 2009 um 13:48

    Probier es mal, indem du als Pattern die Hexwerte der Zeichen verwendest, für deinen zweiten Fall
    chr(0)&chr(16)&chr(65) wäre das: "\x00\x10\x41"

  • Variable im Zahlenbereich

    • BugFix
    • 24. August 2009 um 12:19

    Meinst du sowas:

    [autoit]

    Func _IsInRange($Value, $Von, $Bis)
    If $Value >= $Von And $Value <= $Bis Then Return True
    Return False
    EndFunc

    [/autoit]

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™