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

  • Verwirrung bei AND und BitAnd

    • BugFix
    • 28. August 2009 um 11:14

    :D
    Da war ich jetzt auf dem falschen Dampfer. Wenn der Vergleichswert kein Dualwert ist, ergibt sich als Ergebnis der Dualwert, der sowohl in Summe als auch Vergleichswert enthalten ist. In diesem Fall 8 - und somit hast du recht.
    Ich war etwas daneben, da ich als Vergleichswerte ausschließlich eigenständige Dualwerte verwende, sonst ist ja die Boolsche Abfrage nicht eindeutig. Denn BitAND(10,9) und auch BitAND(10,2) liefern True.

  • Wie schreibe ich eine Funktion

    • BugFix
    • 28. August 2009 um 11:00

    Bsp.

    [autoit]

    Func _MeineFunktion($Parameter, ....)
    ; Code
    ; Code
    Return $Rueckgabewert ; falls die Func einen Wert liefern soll
    EndFunc

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

    ; Aufruf
    $Rueckgabewert = _MeineFunktion() ; falls Parameter nötig, natürlich übergeben.

    [/autoit]
  • Verwirrung bei AND und BitAnd

    • BugFix
    • 28. August 2009 um 10:49
    Zitat von Joerdis

    Steh ziemlich auf dem Schlauch, weil ich nicht vertsehe warum ausgerechnet in einer If-Abfrage das BitAnd einen booleanwert zurückgeben sollte....


    Der Booleanwert ist nicht wirklich da. :)
    Wenn die Abfrage ohne Ergebnis ist, wird 0 zurückgegeben und das wird in AutoIt ebenso wie False interpretiert. Jeder Wert größer Null ist in der Interpretation True.
    Somit kann man Abfragen, bei denen der Rückgabewert vordergründig nicht weiter genutzt wird, zur besseren Übersicht einfach als Boolean nutzen.

    BitAnd(10,9) <== Hier gilt doch, dass 9 als Bitwert nicht in 10 enthalten ist - also falsch.
    Oops, ich sollte selber öfter mein Tut lesen, da war ich daneben. :D

  • Fehler in IE.au3?

    • BugFix
    • 28. August 2009 um 10:44

    Kann ich nicht nachvollziehen.
    Schau mal in Zeile 120 des Includes, dort erfolgt die Deklaration. (Include öffnen: Mit Cursor in die Include-Zeile, dann Alt+i)
    Global $__IEAU3V1Compatibility

  • Verwirrung bei AND und BitAnd

    • BugFix
    • 28. August 2009 um 10:31

    Du hast hier zwei Sachen:
    Einmal werden zwei einzelne Variablen auf Inhalt geprüft und wenn bei beiden der Inhalt stimmt ist die If-Abfrage wahr:
    If Var1=Wert1 AND Var2=Wert2 Then
    Das AND verknüpft nur die Bedingungen.

    Ein anderes mal hat man eine Variable, die mehrere Bitwerte trägt. Mit BitAND wird geprüft, ob ein Vergleichswert enthalten ist:
    If BitAND(Var, Vergleichswert) Then

    PS: Schau mal in meine Signatur - Bit-Tut

    Edit:
    Hier mal für dein Bsp.:

    [autoit]

    Local $recht = 0x00100001 ;Daten lesen-Recht
    Local $ausgelesen = 0x001F01FF ; -> Bsp: User hat Vollzugriff

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

    Local $sumRechte = BitOR($recht,$ausgelesen)

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

    If BitAND($sumRechte, $recht) Then ; Daten Lesen
    If BitAND($sumRechte, $ausgelesen) Then ; Vollzugriff

    [/autoit]
  • Stream in eine Text-Datei sichbar machen

    • BugFix
    • 28. August 2009 um 10:25
    Zitat von igillan

    denn wenn in der log-Datei nichts passiert, braucht man auch keine Schleife ständig "im Kreis herum rennen" zu lassen


    Eine Schleife mußt du in jedem Fall 'rennen' lassen. :)
    Du kannst natürlich mal prüfen ob dein Programm die Logdaten unter einer festen Speicheradresse parkt. Dann könntest du dort abfragen.
    Aber ich halte das Lesen der LogDatei für einfacher. Du brauchst doch nur deine Anzeige aktualisieren, wenn sich in der Logdatei was geändert hat. (z.B. Zeilenzahl als Referenzwert speichern und vergleichen)

  • ICQ Antwort Bot

    • BugFix
    • 28. August 2009 um 10:17

    @Gummibaer
    OK, aus deinem Zitat wird zumindest deutlich, dass sich Beschränkungen ausschließlich auf die ICQ-Software beziehen.
    Bei Nutzung anderer Messenger gelten deren Bedingungen.

  • ICQ Antwort Bot

    • BugFix
    • 27. August 2009 um 22:46

    autoBert
    Die Nutzungsbestimmungen sind m.E. schon seltsam.
    1. nicht wirklich eindeutig
    2. Freigabe des OSCAR-Protokolls und dadurch
    3. Zugriffsermächtigung für alle Multi-Messenger und
    4. Selbstprogrammierer

    Ich habe zum Bsp. noch nie ICQ auf meinem PC installiert gehabt und in den Nutzungsbestimmungen der Multimessenger hab ich meines Wissens keine derartigen (ICQ-spezifischen) Hinweise gefunden. ;)

    BTT:
    Da kann ich leider nicht wirklich helfen, da ich wie eben geschrieben, ICQ nicht installiert habe.

  • Fenster stylen

    • BugFix
    • 27. August 2009 um 22:40

    Style: $WS_POPUP ;)

  • WMPlayer Video Öffnen in GUI über Object

    • BugFix
    • 27. August 2009 um 22:37

    Ich habe keine Doku zum Objekt WMPlayer gefunden.
    Bist du dir sicher, dass es die Methode .open mit Parameter Datei gibt ?
    Ist es nicht evtl. eine Zuweisung? $oWMP.File = 'Deine_Datei'

  • WMPlayer Video Öffnen in GUI über Object

    • BugFix
    • 27. August 2009 um 21:50

    Du hast mehr Chancen auf Antworten, wenn du dein Skript postest (nicht anhängen).
    Dann kann man schnell mal einen Blick draufwerfen ohne es erst runterladen zu müssen. Ich bin viel zu faul zum Downloaden. :D

  • Anzahl Icons in einer ICL herrausfinden

    • BugFix
    • 27. August 2009 um 21:38
    Zitat von Raupi

    Das hab ich garnicht gewußt


    Ich hab das nur mal zufällig gemerkt, als ein DllCall über @error keinen Fehler brachte, $ret[0] aber 0 lieferte. Seitdem prüfe ich auf Rückgabewert.

  • Trotz kopierens weiterarbeiten

    • BugFix
    • 27. August 2009 um 18:19
    Zitat von aranha

    Nun hab ich das Problem, dass Dircopy die Gui solange blockiert, bis der Ordner kopiert ist.


    Ich weiß ja nicht, was du sonst noch vorhast - aber den nächsten Kopiervorgang kannst du eh erst ausführen, wenn der aktuelle durch ist. Zum Thema kopieren schau dir mal Oscars _MultiFileCopy an.

  • Verstecken funktion?

    • BugFix
    • 27. August 2009 um 18:06
    Zitat von Skar

    Jetzt Flackert es bei mir so wild, was fehlt den noch?


    Es fehlt nichts, es ist zu viel. :D
    Du mußt beim Auswerten von GUIGetMsg() die Checkbox als Case eintragen.

    [autoit]

    Switch GUIGetMsg()
    Case $Checkbox
    If BitAnd(GUICtrlRead($Checkbox), $GUI_CHECKED) Then ...

    [/autoit]

    Und verwende bitte AutoIt-Tags und Spoiler!

  • Verstecken funktion?

    • BugFix
    • 27. August 2009 um 17:48
    Zitat von Skar

    Wie frage ich richtig ab?

    [autoit]

    If BitAnd(GUICtrlRead($CheckBox), $GUI_CHECKED) Then ; ist markiert

    [/autoit]
  • 3D Array speichern (UDF)?

    • BugFix
    • 27. August 2009 um 17:42

    Brauchst doch nur die Arrays in geschachtelten Loops auslesen und dann wegschreiben.

  • 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]

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™