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

  • Ich brauche TCP Tutorial's ^.^

    • BugFix
    • 16. August 2009 um 10:10
    Zitat von ToxicData

    2.
    Ich bräuchte auch nen tutorial oda ne hilfe wie man ne console erstellt


    Hier ein Bsp. zum Eigene Console erstellen.

    Und zum IRC-Bot hatte ich dir hier schon geantwortet.

    [OT]
    Auch wenn ich euer Engagement gegen Bots schätze, so bitte ich euch doch etwas Augenmerk walten zu lassen. Im Allgemeinen sollte man den Deliquenten erst mal anhören und nicht sofort erschiessen. :D
    Wie Pee richtig bemerkte, es gibt nicht nur böse Bots. ;)
    [/OT]

  • Problem beim Auslesen von Daten

    • BugFix
    • 16. August 2009 um 09:57

    So würde es mit INI gehen:

    [autoit]

    Local $INI = @ScriptDir & '\meine.ini'
    ; Inhalt der INI
    #cs
    [verbindungen]
    uin_1=pw1
    uin_2=pw2
    uin_3=pw3
    uin_4=pw4
    #ce

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

    Local $arVerbindungen = IniReadSection($INI, 'verbindungen')
    ; $arVerbindungen ist ein 2D-Array mit allen Schlüssel-Wert-Paaren der Sektion 'verbindungen'
    ; $arVerbindungen[0][0] enthält die Anzahl der Schlüssel-Wert-Paare
    ; $arVerbindungen[1][0] = Schlüssel 1 (UIN1)
    ; $arVerbindungen[1][1] = Wert 1 (PW1) usw.

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

    ; Ausgabe aller Werte
    For $i = 1 To UBound($arVerbindungen) -1
    ConsoleWrite('Verbindung: ' & $i & ' UIN: ' & $arVerbindungen[$i][0] & @TAB & 'PW: ' & $arVerbindungen[$i][1] & @CRLF)
    Next

    [/autoit]
  • Problem beim Auslesen von Daten

    • BugFix
    • 16. August 2009 um 00:00

    Die Länge ist völlig egal. Verwende StringSplit und trenne den Eintrag am Doppelpunkt in UIN und Pw auf. ;)
    Kannst auch gleich eine INI verwenden, die speichert ja nach dem Prinzip Schlüssel=Wert.
    Wobei ich das Speichern von Pw im Klartext nicht sehr sinnvoll finde.

  • Random zugehörigkeit

    • BugFix
    • 15. August 2009 um 22:20
    Zitat von razor09

    Und zwar, wie verhindere ich, das random wert nochmal genommen wird

    z.B. so:

    [autoit]

    ; Bsp. 5 Zufallszahlen aus 1 bis 40, keine doppelt
    Local $aRandom[40]
    For $i = 1 To 40
    $aRandom[$i-1] = $i
    Next

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

    $count = 0
    $sRandom = ''
    Do
    $random = Random(0, 39, 1) ; Index des Array mit den Werten 1 bis 40
    If $aRandom[$random] > 0 Then
    $sRandom &= $aRandom[$random] & ';'
    $aRandom[$random] = 0
    $count += 1
    EndIf
    Until $count = 5

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

    ConsoleWrite(StringTrimRight($sRandom, 1) & @CRLF)

    [/autoit]
  • FAQ

    • BugFix
    • 15. August 2009 um 21:44

    Hi,
    da immer wieder angefragt wird, wie man mit Dll's arbeitet, habe ich mich aufgerafft und mal versucht ein kleines Tut zu erstellen. Die Datentypenbeschreibung aus der AutoIt-Hilfe habe ich mit übernommen, damit alles beieinander ist.

    Hier findet ihr das Tut. Ich hab es auch angehängt.

    Sollte irgendwas fehlerhaft sein, bitte melden. 100% fit bin ich bei dem Thema noch nicht. :rolleyes:

    Edit: Habe es nochmal überarbeitet und um Strukturen und Pointer erweitert. Außerdem ist es optisch aufgefrischt ;)

  • Random zugehörigkeit

    • BugFix
    • 14. August 2009 um 22:52
    Zitat von razor09

    das ich mit include einfüge, so kann ichs immer veränderen einfach..


    Dann mußt du aber jedes mal neu kompilieren... :S

  • [spiel] Autoit.de kann nicht bis 100 zählen

    • BugFix
    • 14. August 2009 um 17:45

    Ihr dürft von vorn beginnen: 2-mal 47 :rofl:

  • Random zugehörigkeit

    • BugFix
    • 14. August 2009 um 17:19

    Hi,
    hab mal im Bsp. eine Combo verwendet. Kannst du ja umbauen, wie du möchtest.

    [autoit]

    #Include <SendMessage.au3>
    Global $INI = @ScriptDir & '\fragen.ini'
    Global $arLevel1 = IniReadSection($INI, 'level1') ; in [n][0] sind Fragen, in [n][1] die zugehörigen Antworten
    Global $arLevel2 = IniReadSection($INI, 'level2')
    Global $arLevel3 = IniReadSection($INI, 'level3')
    Global $msg, $gui, $bt1, $bt2, $bt3, $bt4, $combo, $current

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

    Global Const $CB_ADDSTRING = 0x143
    Global Const $CB_GETCURSEL = 0x147
    Global Const $CB_SETCURSEL = 0x14E
    Global Const $CB_RESETCONTENT = 0x14B

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

    $gui = GUICreate('Test')
    $bt1 = GUICtrlCreateButton('Level 1', 20, 20, 100)
    $bt2 = GUICtrlCreateButton('Level 2', 140, 20, 100)
    $bt3 = GUICtrlCreateButton('Level 3', 260, 20, 100)
    $combo = GUICtrlCreateCombo('', 20, 60)
    $bt4 = GUICtrlCreateButton('Zeige Antwort', 20, 100, 100)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $bt1
    _FillCombo($arLevel1, $combo)
    $current = 1
    Case $bt2
    _FillCombo($arLevel2, $combo)
    $current = 2
    Case $bt3
    _FillCombo($arLevel3, $combo)
    $current = 3
    Case $bt4
    MsgBox(0, 'Antwort', _GetAnswer() )
    EndSwitch
    WEnd

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

    Func _FillCombo($ARRAY, $IDcombo)
    Local $struc, $hWnd = GUICtrlGetHandle($IDcombo)
    _SendMessage($hWnd, $CB_RESETCONTENT)
    For $i = 1 To UBound($ARRAY) -1 ; du kannst natürlich auch GuiCtrlSetData verwenden ;=)
    $struc = DllStructCreate('char [' & StringLen($ARRAY[$i][0])+1 & ']')
    DllStructSetData($struc, 1, $ARRAY[$i][0])
    _SendMessage($hWnd, $CB_ADDSTRING, 0, DllStructGetPtr($struc))
    Next
    _SendMessage($hWnd, $CB_SETCURSEL)
    EndFunc

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

    Func _GetAnswer()
    Local $indx = _SendMessage(GUICtrlGetHandle($combo), $CB_GETCURSEL)
    Switch $current
    Case 1
    Return $arLevel1[$indx+1][1]
    Case 2
    Return $arLevel2[$indx+1][1]
    Case 3
    Return $arLevel3[$indx+1][1]
    EndSwitch
    EndFunc

    [/autoit]
  • [HIlfe]Wie mache ich eine Console :s

    • BugFix
    • 14. August 2009 um 15:18

    Schau dir das mal an: Basis-Client für IRC-Chat

  • Random zugehörigkeit

    • BugFix
    • 13. August 2009 um 19:55

    Du kannst es auch mit einer INI machen und dann in einem Rutsch alle Fragen/Antworten eines Levels in ein Array einlesen (IniReadSection).
    Bsp. für INI:

    Code
    [level1]
    Frage=Antwort
    Frage=Antwort
    Frage=Antwort
    
    
    [level2]
    Frage=Antwort
    Frage=Antwort
    Frage=Antwort
    
    
    [level3]
    Frage=Antwort
    Frage=Antwort
    Frage=Antwort
    Alles anzeigen
  • Scriptfehler in Funktion, Globale Variable wird als nicht deklariert bezeichnet?

    • BugFix
    • 13. August 2009 um 18:40
    Zitat von H2112

    Warum?


    Weil du zuerst AdlibEnable() startest (geht übrigens nur EINMAL !!!) und in der zugeordneten Funktion die noch nicht deklarierte Variable genutzt wird.

  • Datei liste aus Lisview übernehmen neue erzeugen und aktuellste datei anzeigen?

    • BugFix
    • 13. August 2009 um 14:26

    Hier hast du das Array befüllt:

    [autoit]

    $aFiles[$i][0] = $aFilelist[$i]
    $aFiles[$i][1] = FileGetTime($imagepath & $ListViewText[1] & '\' & $aFilelist[$i], 0, 1)

    [/autoit]


    und hier brauchst du einen Wert davon für das ListView:
    GUICtrlCreateListViewItem($ListViewText[1] & $aFiles[$i][0], $LVNP)

  • USB Stick suchen

    • BugFix
    • 13. August 2009 um 14:16
    Zitat von Alina

    Hier rate ich zur Seriennummer, da diese ja nicht mal ebend geändert werden kann.


    Das setzt aber voraus, dass dein Stick eine Seriennummer hat. Von meinen 5 Sticks sind 3 ohne SNr. :D

  • Datei liste aus Lisview übernehmen neue erzeugen und aktuellste datei anzeigen?

    • BugFix
    • 13. August 2009 um 14:14

    Bitte lies doch die Fehlermeldung. ;)
    Du willst auf ein 2D-Array Eindimensional zugreifen - dat jeht nich :D

  • Random zugehörigkeit

    • BugFix
    • 13. August 2009 um 12:28

    Erstelle ein 2D-Array
    $array[n][0] = 'Frage'
    $array[n][1] = 'Antwort'

  • Timer / Bedingung

    • BugFix
    • 13. August 2009 um 12:05

    Wozu überhaupt die Idlezeit abfragen?
    Setz doch einfach die Idletime entsprechend hoch (z.B. auf 10 Stunden). Wenn diese Einstellungen beim Neustart verschwunden sind, füge einfach dieses Skript in den Autostart ein:

    [autoit]

    #Include <WinAPI.au3>
    Const $SPI_SETSCREENSAVETIMEOUT = 15
    Local $timeout = 36000 ; Angabe in Sekunden
    _WinAPI_SystemParametersInfo($SPI_SETSCREENSAVETIMEOUT, $timeout, 0, 0)

    [/autoit]


    Eigentlich sollte sich der Bildschirmschoner mit dieser Funktion und der Message: SPI_SETSCREENSAVEACTIVE direkt deaktivieren lassen, das konnte ich bisher aber nicht erreichen. Obwohl die Funktion Erfolg meldete.

  • Ist GUICtrlSetOnEvent schneller als eine While + GUIGetMsg -Loop?

    • BugFix
    • 13. August 2009 um 09:15

    Auch wenn ich lieber im OnEvent-Mode arbeite - rein unter Betrachtung des Codes sehe ich keinen Grund, warum die Modi unterschiedliche Speed haben sollten. Hier könnte sogar der OnEvent-Mode Zeit verlieren, wenn das Sleep() in der While-Schleife mehr Zeit frißt als GuiGetMsg() benötigt. :D

  • *Mausklick* ohne Klickbefehl in Windoof auszuführen via hooking

    • BugFix
    • 13. August 2009 um 09:02
    Zitat von PokerFace

    Wie einen Klick ausführen, wenn man ihn gar nicht macht


    Stimmt, du hast es völlig falsch verstanden. ;)
    Es geht darum, bei einem Mausklick die zugehörige Aktion abzufangen und durch eine andere zu ersetzen. Dieses Abfangen nennt man Hook. In meinem Bsp. Kannst du mit der Maus auf Button1 klicken so oft du willst - der Button wird einfach nicht betätigt, der Klick landet in diesem Fall im Nirvana.

  • *Mausklick* ohne Klickbefehl in Windoof auszuführen via hooking

    • BugFix
    • 13. August 2009 um 00:09

    Hi,
    ich hab dir mal ein Bsp. gemacht.
    Immer schön aufpassen, dass der Hook nur für ein bestimmtes Ctrl /GUI gültig ist. Ansonsten schießt du dir die Maus ab. :D

    [autoit]

    #include <WinAPI.au3>
    #include <WindowsConstants.au3>
    #include <StructureConstants.au3>

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

    Global Const $HC_ACTION = 0
    Global Const $WM_LBUTTONDOWN = 0x201

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

    Global $hStub_MouseProc = DllCallbackRegister("_MouseProc", "long", "int;wparam;lparam")
    Global $hmod = _WinAPI_GetModuleHandle(0)
    Global $hHook = _WinAPI_SetWindowsHookEx($WH_MOUSE_LL, DllCallbackGetPtr($hStub_MouseProc), $hmod)
    Global $gui, $btn1, $btn2

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

    $gui = GUICreate('Mouse-Hook', 400, 300)
    GUICtrlCreateLabel('Der Klick auf den Button 1 bleibt wirkungslos', 10, 10, 380)
    $btn1 = GUICtrlCreateButton('Button 1', 20, 40, 100, 20)
    $btn2 = GUICtrlCreateButton('Button 2', 150, 40, 100, 20)
    GUISetState()

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case -3
    Exit
    Case $btn1
    MsgBox(0, '', 'Button 1 geklickt')
    Case $btn2
    MsgBox(0, '', 'Button 2 geklickt')
    EndSwitch
    WEnd

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

    Func _MouseProc($nCode, $wParam, $lParam)
    If $nCode < 0 Or (Not _MouseOverCtrl($gui, $btn1)) Then
    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndIf
    If $nCode = $HC_ACTION And $wParam = $WM_LBUTTONDOWN Then
    ; hier kann Ersatzfunktion aufgerufen werden
    Return -1 ; Mausklick wird ignoriert
    EndIf
    Return _WinAPI_CallNextHookEx($hHook, $nCode, $wParam, $lParam)
    EndFunc

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

    Func OnAutoItExit()
    _WinAPI_UnhookWindowsHookEx($hHook)
    DllCallbackFree($hStub_MouseProc)
    EndFunc ;==>OnAutoItExit

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

    Func _MouseOverCtrl($GUI, $ID)
    If Not BitAND(WinGetState($GUI), 8) Then Return False
    Local $old = Opt('MouseCoordMode', 2)
    Local $posM = MouseGetPos()
    Opt('MouseCoordMode', $old)
    Local $posC = ControlGetPos($gui, '', $ID)
    If ($posM[0] >= $posC[0] And $posM[0] <= $posC[0]+$posC[2]) And _
    ($posM[1] >= $posC[1] And $posM[1] <= $posC[1]+$posC[3]) Then
    Return True
    Else
    Return False
    EndIf
    EndFunc

    [/autoit]
  • Bunte Labels erzeugen

    • BugFix
    • 12. August 2009 um 09:49

    Hi,
    funzt soweit.
    Allerdings sollte man beachten, dass nicht alle Fonts überall verfügbar sind. Auf meinem PC gibt es z.B. "Colonna MT" nicht und somit liefert die Größenermittlung den Wert 0 für beide Parameter zurück.

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™