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

  • Firefox öffnen!

    • BugFix
    • 22. Oktober 2008 um 11:03

    Die eckigen Klammern rausnehmen - die bedeuten in der Syntaxbeschreibung, dass diese Parameter optional sind.

  • Bug bei verwenden der Shift Taste

    • BugFix
    • 22. Oktober 2008 um 10:57

    Hi,
    so kannst du LeftShift und RightShift auseinanderhalten:

    [autoit]

    While 1
    Sleep(20)
    If _IsPressedAsync('A0') Then
    MsgBox(0, '', 'LeftShift')
    ElseIf _IsPressedAsync('A1') Then
    MsgBox(0, '', 'RightShift')
    ElseIf _IsPressedAsync('51') Then
    Exit
    EndIf
    WEnd

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

    Func _IsPressedAsync($sHexKey)
    Local $ret, $i
    For $i = 1 To 256
    $ret = DllCall("user32.dll", "int", "GetAsyncKeyState", "int", '0x' & Hex($i, 2))
    If $ret[0] <> 0 And Hex($i, 2) = $sHexKey Then Return True
    Next
    Return False
    EndFunc

    [/autoit]
  • Sternzeichen & Alter

    • BugFix
    • 22. Oktober 2008 um 10:00

    Und wenn du genau hinschaust, wirst du feststellen, dass die Sternzeichenzuordnung eh horrender Blödsinn ist, da alles auf der Ansicht des Sternenhimmels von vor ca. 2000 Jahren beruht. Da gehört ein Shift rein, der die reale Position der Himmelskörper zur jeweiligen Zeit ermittelt :P -- Viel Spaß beim Rechnen :rofl:

  • Chat programmieren

    • BugFix
    • 21. Oktober 2008 um 23:15

    SuFu richtig nutzen!
    IMMER erweiterte Suche benutzen und den Haken bei "Exakter Treffer" entfernen. - Dann klappts auch mit dem Nachbarn ;)

  • Problem mit einer Delphi-DLL und DllCall /DllStruct (Logitech G15 lglcd_dda_dll)

    • BugFix
    • 21. Oktober 2008 um 19:24

    Wozu das Rad neu erfinden? - Hat doch GtaSpider schon geschrieben:
    G15 LCD Fernsteuern mit Acitve-X

  • _GUICtrlListView_GetItemText($ListView1, _GUICtrlListView_GetSelectedIndices($ListView1), 2)

    • BugFix
    • 20. Oktober 2008 um 17:30

    Wie hast du das Listview erzeugt?
    Die UDF arbeiten zuverlässig, wenn das Handle verwendet wird. Dieses wird auch von _GUICtrlListView_Create() zurückgegeben. Falls du mit GUICtrlCreateListView() gearbeitet hast, lass dir das Handle ausgeben:

    [autoit]

    $ListView = GUICtrlCreateListView()
    $hListView = GUICtrlGetHandle($ListView)

    [/autoit]
  • Eingabe von Inputfeld an andere Stelle in einen Text einfügen?

    • BugFix
    • 19. Oktober 2008 um 22:48

    Schau dir mal GUICtrlRead() an.

  • Datum Umwandeln in UTC-Format?

    • BugFix
    • 19. Oktober 2008 um 22:34

    Deine Angabe ist aber kein UTC-Format. Es gibt verschiedene Darstellungsformen aber die Zeit wird in jedem Fall 6-stellig ausgegeben und das Offset 4-stellig. Wobei Datum und Uhrzeit durch T getrennt sind.
    So könntest du es verwenden:

    [autoit]

    ConsoleWrite(_GetUTC('19.10.2008') & @CRLF)

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

    Func _GetUTC($TTMMJJJJ, $OFFSET='+0100')
    Return StringMid($TTMMJJJJ, 7, 4) & StringMid($TTMMJJJJ, 4, 2) & StringLeft($TTMMJJJJ, 2) & 'T000000' & $OFFSET
    EndFunc

    [/autoit]
  • AutoIt Editor

    • BugFix
    • 19. Oktober 2008 um 15:52

    Die Idee eines "Board Manager" ist OK. Aber vielleicht wäre es sinnvoll Elemente so zu bezeichnen, dass deren Bedeutung intuitiv erkannt wird. z.B. würde Copy-Container o.ä. sofort klären, worum es geht.
    Weiter so.

    Edit:
    Anhand der vorigen Beiträge sehe ich, dass DeInstall-Probleme auftauchen. Mal als Tipp: Bietet Euer Tool, solange es in der Erprobungsphase ist, installationsfrei an. Denn solche Bugs, wie Zerschießen des Kontextmenüs, dürfen nicht passieren. Wer hat schon Lust, sein System zu reparieren, wenn er ein Programm getestet hat.

  • Clipboard-Problem mit Format etc.

    • BugFix
    • 19. Oktober 2008 um 12:08

    Oder gleich die Farbe zurückgeben und nicht erst einer Variablen zuweisen ;)

    [autoit]

    Func Farbezuordnen($Button)
    If FileExists("C:\Programme\Cliptomatik\Settings\Settings" & $Button & ".ini") Then
    Return 0xff0000
    Else
    Return 0x008000
    EndIf
    EndFunc ;==>Farbezuordnen

    [/autoit]
  • Zeitweise eine Programschleife verlassen

    • BugFix
    • 18. Oktober 2008 um 21:01
    Zitat von XNeoX

    for to next geht hier nicht!


    Was bitte, sollen wir jetzt damit anfangen?
    Woraus schließt du, das diese Schleifenform für deinen Fall nicht möglich sei?

  • array search

    • BugFix
    • 16. Oktober 2008 um 22:05
    Zitat von sataan1337

    jetz funktioniert der _arraysearch befehl anscheinend nicht mit mehrdimensionalen arrays - kann ich das irgendwie bewerkstelligen?


    Doch, tut es - Syntaxbeschreibung lesen. Du kannst die Dimension, in der gesucht werden soll angeben.

  • Noch eine frage zu GUIListView

    • BugFix
    • 16. Oktober 2008 um 08:09
    Zitat von hofi02

    Ist es möglich eine markierte zeile zu "updaten" also mit neuen daten zu füllen wenn eine zeile angeklickt wurde?


    Möglich ist es - aber ohne zu wissen, aus welcher Quelle du die Daten für das Listview zusammenstellst, kann man nichts konkretes sagen.
    Also bitte mehr Infos.

  • Fehlermeldung oder Beendeter Script

    • BugFix
    • 15. Oktober 2008 um 18:29

    Bitte :D
    hier mal in einer Schleife:

    Spoiler anzeigen
    [autoit]

    Global $arPeriodSys[2][3] = [ _
    ["H", "Wasserstoff", "Wasserstoff: Gasförmig, Atommasse: 1,01u"], _
    ["He", "Helium", "Helium: Gasförmig, Atommasse: 4u"]]

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

    While True
    $sOut = ''
    Do
    $Input = InputBox('Eingabe', 'Bitte Namen oder Kürzel des Elements eingeben.' & @LF & 'Mit "Ende" wird das Programm beendet.')
    Until $Input <> ''
    If $Input = 'Ende' Then Exit
    For $i = 0 To UBound($arPeriodSys) -1
    If $arPeriodSys[$i][0] == $Input Or $arPeriodSys[$i][1] == $Input Then
    $sOut = $arPeriodSys[$i][2]
    ExitLoop
    EndIf
    Next
    If $sOut <> '' Then MsgBox(0, 'Info', $sOut)
    WEnd

    [/autoit]
  • Fehlermeldung oder Beendeter Script

    • BugFix
    • 15. Oktober 2008 um 18:13

    Das ist ein Paradebeispiel für den Einsatz von Arrays.

    [autoit]

    Global $arPeriodSys[2][3] = [ _
    ["H", "Wasserstoff", "Wasserstoff: Gasförmig, Atommasse: 1,01u"], _
    ["He", "Helium", "Helium: Gasförmig, Atommasse: 4u"]]

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

    $Input = 'He'

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

    For $i = 0 To UBound($arPeriodSys) -1
    If $arPeriodSys[$i][0] == $Input Or $arPeriodSys[$i][1] == $Input Then ExitLoop
    Next
    MsgBox(0, 'Info', $arPeriodSys[$i][2])

    [/autoit]
  • Hilfe bei Funscript

    • BugFix
    • 15. Oktober 2008 um 18:02

    Leg doch 'ne FullSize-GUI auf den Desktop und in dieser GUI hast du als Hintergrund den Screenshot. Aber machs mit Timer, damit der User spätestens nach 30 sec weiß - Das war ein Joke. Ansonsten sind evtl. schädliche Aktionen des Users die Folge.

  • eigene Lautstärkeregelung einblendbar

    • BugFix
    • 15. Oktober 2008 um 14:05

    Hab mal die Erweiterung für MIC gemacht, einfach über CheckBox auf Mikro switchen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <SliderConstants.au3>
    #include <WindowsConstants.au3>
    #include <audio.au3>
    Opt("GUIOnEventMode", 1)
    HotKeySet("^+{F6}", "_exitVol")

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

    Global $pos1[2] = [@DesktopWidth-3, @DesktopHeight/2 -108]
    Global $pos2[2] = [@DesktopWidth-43, @DesktopHeight/2 -108]
    Global $moved = False

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

    $guiSpeaker = GUICreate("PC", 38, 256, $pos1[0], $pos1[1], BitOR($WS_MINIMIZEBOX,$WS_CAPTION, _
    $WS_POPUP,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $slVol = GUICtrlCreateSlider(8, 16, 20, 150, BitOR($TBS_VERT,$TBS_TOP,$TBS_LEFT,$TBS_NOTICKS))
    GUICtrlSetOnEvent(-1, "slVolChange")
    GUICtrlSetData(-1, 100-_SoundGetMasterVolume())
    $cbMute = GUICtrlCreateCheckbox("", 11, 173, 17, 17)
    GUICtrlSetOnEvent(-1, "cbMuteClick")
    If _isMute() Then
    GUICtrlSetState(-1, $GUI_CHECKED)
    GUICtrlSetState($slVol, $GUI_DISABLE)
    EndIf
    $Label1 = GUICtrlCreateLabel("Aus", 9, 194, 22, 17)
    $cbMic = GUICtrlCreateCheckbox("", 11, 215, 17, 17)
    GUICtrlSetOnEvent(-1, "cbMicClick")
    $LabelMic = GUICtrlCreateLabel("Mic", 9, 234, 22, 17)
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(100)
    _checkPos()
    WEnd

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

    Func _exitVol()
    Exit
    EndFunc

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

    Func cbMuteClick()
    Local $id
    If BitAND(GUICtrlRead($cbMic), $GUI_CHECKED) Then
    $id = 5000
    Else
    $id = 1000
    EndIf
    If BitAND(GUICtrlRead($cbMute), $GUI_CHECKED) Then
    GUICtrlSetState($slVol, $GUI_DISABLE)
    _MuteVol($id)
    Else
    GUICtrlSetState($slVol, $GUI_ENABLE)
    _UnMuteVol($id)
    EndIf
    EndFunc

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

    Func cbMicClick()
    If BitAND(GUICtrlRead($cbMic), $GUI_CHECKED) Then
    WinSetTitle($guiSpeaker, '', 'MIC')
    If Not _isMute(5000) Then
    GUICtrlSetState($cbMute, $GUI_UNCHECKED)
    Else
    GUICtrlSetState($cbMute, $GUI_CHECKED)
    EndIf
    GUICtrlSetData($slVol, 100-_SoundGetMicrophoneVolume())
    Else
    WinSetTitle($guiSpeaker, '', 'PC')
    If Not _isMute() Then
    GUICtrlSetState($cbMute, $GUI_UNCHECKED)
    Else
    GUICtrlSetState($cbMute, $GUI_CHECKED)
    EndIf
    GUICtrlSetData($slVol, 100-_SoundGetMasterVolume())
    EndIf
    EndFunc

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

    Func slVolChange()
    If BitAND(GUICtrlRead($cbMic), $GUI_CHECKED) Then
    _SoundSetMicrophoneVolume(100- GUICtrlRead($slVol))
    Else
    _SoundSetMasterVolume(100- GUICtrlRead($slVol))
    EndIf
    EndFunc

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

    Func _checkPos()
    Local $mouse = MouseGetPos()
    If ($mouse[0] > $pos1[0]) Then
    WinMove($guiSpeaker, '', $pos2[0], $pos2[1])
    $moved = True
    ElseIf $moved And ($mouse[0] < $pos1[0]-50) Then
    WinMove($guiSpeaker, '', $pos1[0], $pos1[1])
    $moved = False
    EndIf
    EndFunc

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

    Func _MuteVol($opt = 1000)
    Local $retVal = 0, $ex = False
    If Not WinExists('[CLASS:Volume Control]') Then
    Run('sndvol32', '', @SW_HIDE)
    $ex = True
    EndIf
    If WinWait('[CLASS:Volume Control]', '', 2) = 0 Then Return -1
    $retVal = ControlCommand('[CLASS:Volume Control]', '', $opt, 'isChecked')
    If @error Then Return -2
    If Not $retVal Then
    ControlCommand('[CLASS:Volume Control]', '', $opt, 'Check')
    If @error Then Return -2
    EndIf
    If $ex = True Then WinClose('[CLASS:Volume Control]')
    Return
    EndFunc ;==>_MuteVol

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

    Func _UnMuteVol($opt = 1000)
    Local $retVal = 0, $ex = False
    If Not WinExists('[CLASS:Volume Control]') Then
    Run('sndvol32', '', @SW_HIDE)
    $ex = True
    EndIf
    If WinWait('[CLASS:Volume Control]', '', 2) = 0 Then Return -1
    $retVal = ControlCommand('[CLASS:Volume Control]', '', $opt, 'isChecked')
    If @error Then Return -2
    If $retVal Then
    ControlCommand('[CLASS:Volume Control]', '', $opt, 'UnCheck')
    If @error Then Return -2
    EndIf
    If $ex = True Then WinClose('[CLASS:Volume Control]')
    Return
    EndFunc ;==>_UnMuteVol

    [/autoit]
  • Zeitweise eine Programschleife verlassen

    • BugFix
    • 15. Oktober 2008 um 13:13

    Das ist allgemeingültig. Ausnahmen bilden Run() und ShellExecute(), da wird das aufrufende Skript sofort fortgesetzt. Deshalb gibt es beide Befehle auch mit der Ergänzung ~Wait.

  • eigene Lautstärkeregelung einblendbar

    • BugFix
    • 15. Oktober 2008 um 13:07
    Zitat von ctec

    wo krieg ich dir her :?:


    Lesen?

    Zitat

    Benötigt wird dafür die audio.au3 von hier

    Da steht im ersten Post der Link. ;)

  • Zeitweise eine Programschleife verlassen

    • BugFix
    • 15. Oktober 2008 um 13:05

    1. Statt der While-Schleife, verwende einer zählergesteuerte Schleife (For-To-Next).
    2. Es macht wenig Sinn, wenn du einen String splittest, und mit jedem enthaltenen Buchstaben einen HotKey generierst, die dann alle dieselbe Funktion benutzen. (zumindest erschließt sich mir der Sinn nicht)

    Übrigens brauchst du eine Schleife nicht verlassen, um eine Funktion auszuführen.
    Wenn du innerhalb der Schleife die Funktion aufrufst, wird diese ausgeführt und erst dann die Schleife fortgesetzt.
    Hier mal ein Muster, alle 10 min wird eine Funktion aufgerufen:

    [autoit]

    $start = Timerinit()
    While True
    If TimerDiff($start) > 10*60*1000 Then ; alle 10 min
    _myFunc() ; Aufruf der Funktion
    $start = Timerinit() ; Timer neu initialisieren
    EndIf
    WEnd

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

    Func _myFunc()
    ; Code der Funktion
    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™