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

  • Koordinatenproblem

    • BugFix
    • 14. Juli 2008 um 17:04

    Wenn es so, wie in deiner Zeichnung ist, liegt ja das Farbsymbol neben dem eigentlichen Icon.
    Also mußt du doch Pixelweise scannen (wie von mir am Anfang empfohlen) um das erste Grün, das wohl über dem richtigen Icon liegt, auch zu erwischen.

  • MsgBox Flags

    • BugFix
    • 14. Juli 2008 um 16:37

    Oder guggst du hier.
    Aber auch in SciTE ( Alt+W )

  • Koordinatenproblem

    • BugFix
    • 14. Juli 2008 um 16:33
    Zitat von qui xux

    dass er das symbol rechts nebendran bewegt und nicht das bei dem die grüne fläche aufpopt


    Das liegt wohl daran, dass das grüne Feld nicht über dem eigentlichen Icon, sondern rechts daneben erscheint. Dann setze das Raster auf 5 Pixel herunter, dann ist die Chance größer, dass der über dem richtigen Icon liegende Bereich erwischt wird.

    Zitat von qui xux

    ich hätte aber gerne, dass sie weiter läuft und er das gesammte raster absuchet


    Grundsätzlich kein Problem, entferne ExitLoop aus der Schleife und probiere.

  • Gobby - Dateien gemeinsam bearbeiten

    • BugFix
    • 14. Juli 2008 um 16:20

    Ist eine xml-Datei, sollte nicht allzu schwierig sein, dass zu erstellen. Ist halt nur einiges an Arbeit ;)

  • StringRegExp bringt Skript zum Absturz

    • BugFix
    • 14. Juli 2008 um 15:48
    Zitat von HowToBen


    Hm, wenn ich da die WS raus mach, findet StringRegExp doch keinen Match mehr.


    :) Stimmt, ich dachte auch mehr an nur die Umbrüche.
    Wie gehst du vor? Alles in ein Array listen und iterieren oder zeilenweise einlesen und prüfen?

  • Koordinatenproblem

    • BugFix
    • 14. Juli 2008 um 15:17

    Na dann eben in 10-er Pixelblöcken die Maus setzen und jeweils den Bereich 10x10 rechts von der Maus scannen:

    [autoit]

    Global $x_start = 100, $x_end = 300, $y_start = 100, $y_end = 200
    Global $x_ziel = 400, $y_ziel = 500, $color = 0x66FF00, $match
    For $i = $x_start To $x_end Step 10
    For $k = $y_start To $y_end Step 10
    MouseMove($i, $k, 5)
    $match = PixelSearch($i, $k, $i+10, $k+10,$color)
    If IsArray($match) Then
    MouseClickDrag('left', $match[0], $match[1], $x_ziel, $y_ziel, 1)
    ExitLoop(2)
    EndIf
    Next
    Next

    [/autoit]
  • Gui Fragen

    • BugFix
    • 14. Juli 2008 um 15:10

    Schau in der Hilfe zu GUICreate(), dort findest du Styles und Extended-Styles. Einfach den Links folgen.

  • StringRegExp bringt Skript zum Absturz

    • BugFix
    • 14. Juli 2008 um 15:07

    Vielleicht kannst du ja mal dein Pattern posten.
    Vielleicht besteht ein Problem bei Zeilenumbrüchen, entferne die einfach mal vor dem Check (StringStripWS).

  • Koordinatenproblem

    • BugFix
    • 14. Juli 2008 um 14:22

    War mir schon klar, aber das Springen im 50 Pixel-Takt ist Quatsch.

    Zitat

    Du müßtest dann die Maus Pixel für Pixel bewegen und jedesmal scannen ob das Symbol auftaucht.


    Deshalb auch mein obiges Bsp. ;)

  • Prozessstop automatisch erkennen

    • BugFix
    • 14. Juli 2008 um 13:48

    Vielleicht bringt es dir was die Prozesseigenschaften auszuwerten.
    Mal ein Bsp. für die ersten 5 Durchläufe, die Daten aller Prozesse im 2 Sekunden-Takt:

    Spoiler anzeigen
    [autoit]

    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
    $objRefresher = ObjCreate("WbemScripting.SWbemRefresher")
    $colItems = $objRefresher.AddEnum _
    ($objWMIService, "Win32_PerfFormattedData_PerfProc_Process").objectSet
    $objRefresher.Refresh
    $str = ''

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

    For $i = 1 to 5
    For $objItem in $colItems
    $str &= "Caption: " & $objItem.Caption & @LF
    $str &= "Creating Process ID: " & $objItem.CreatingProcessID & @LF
    $str &= "Description: " & $objItem.Description & @LF
    $str &= "Elapsed Time: " & $objItem.ElapsedTime & @LF
    $str &= "Handle Count: " & $objItem.HandleCount & @LF
    $str &= "ID Process: " & $objItem.IDProcess & @LF
    $str &= "I/O Data Bytes Per Second: " & $objItem.IODataBytesPersec & @LF
    $str &= "I/O Data Operations Per Second: " & $objItem.IODataOperationsPersec & @LF
    $str &= "I/O Other Bytes Per Second: " & $objItem.IOOtherBytesPersec & @LF
    $str &= "I/O Other Operations Per Second: " & $objItem.IOOtherOperationsPersec & @LF
    $str &= "I/O Read Bytes Per Second: " & $objItem.IOReadBytesPersec & @LF
    $str &= "I/O Read Operations Per Second: " & $objItem.IOReadOperationsPersec & @LF
    $str &= "I/O Write Bytes Per Second: " & $objItem.IOWriteBytesPersec & @LF
    $str &= "I/O Write Operations Per Second: " & $objItem.IOWriteOperationsPersec & @LF
    $str &= "Name: " & $objItem.Name & @LF
    $str &= "Page Faults Per Second: " & $objItem.PageFaultsPersec & @LF
    $str &= "Page File Bytes: " & $objItem.PageFileBytes & @LF
    $str &= "Page File Bytes Peak: " & $objItem.PageFileBytesPeak & @LF
    $str &= "Percent Privileged Time: " & $objItem.PercentPrivilegedTime & @LF
    $str &= "Percent Processor Time: " & $objItem.PercentProcessorTime & @LF
    $str &= "Percent User Time: " & $objItem.PercentUserTime & @LF
    $str &= "Pool Nonpaged Bytes: " & $objItem.PoolNonpagedBytes & @LF
    $str &= "Pool Paged Bytes: " & $objItem.PoolPagedBytes & @LF
    $str &= "Priority Base: " & $objItem.PriorityBase & @LF
    $str &= "Private Bytes: " & $objItem.PrivateBytes & @LF
    $str &= "Thread Count: " & $objItem.ThreadCount & @LF
    $str &= "Virtual Bytes: " & $objItem.VirtualBytes & @LF
    $str &= "Virtual Bytes Peak: " & $objItem.VirtualBytesPeak & @LF
    $str &= "Working Set: " & $objItem.WorkingSet & @LF
    $str &= "Working Set Peak: " & $objItem.WorkingSetPeak & @LF
    ConsoleWrite( $str & @CRLF & @CRLF)
    $str = ''
    Sleep (2000)
    $objRefresher.Refresh
    Next
    Next

    [/autoit]

    Edit:
    Evtl. bringt dich ja das Auflisten der Threads/ ~status weiter.
    Auflisten kannst du so:

    Spoiler anzeigen
    [autoit]

    $objDictionary = ObjCreate("Scripting.Dictionary")
    $strComputer = "."
    $objWMIService = ObjGet("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & $strComputer & "\root\cimv2")
    $colProcesses = $objWMIService.ExecQuery("Select * from Win32_Process")

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

    For $objProcess in $colProcesses
    $objDictionary.Add ($objProcess.ProcessID, $objProcess.Name)
    Next

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

    $colThreads = $objWMIService.ExecQuery ("Select * from Win32_Thread")

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

    For $objThread in $colThreads
    $intProcessID = Int($objThread.ProcessHandle)
    $strProcessName = $objDictionary.Item($intProcessID)
    ConsoleWrite( $strProcessName & @TAB & $objThread.ProcessHandle & _
    @TAB & $objThread.Handle & @TAB & $objThread.ThreadState & @CRLF)
    Next

    [/autoit]
  • Koordinatenproblem

    • BugFix
    • 14. Juli 2008 um 13:22

    Ich verstehe nicht, welchen Sinn das hier haben soll:

    [autoit]

    for $i = 2 to 5
    MouseMove ( $xcords[$i] , $ycords[$i]) ; <- soll die koordinaten checken gegebenenfalls das symbol verschieben
    call ("checkgreen")
    sleep ( 100)
    Next

    [/autoit]


    Das Prüfen der Koordinaten (Auffinden Symbol) erledigst du doch mit Pixelsearch. Wozu willst du da auf einer Waagerechten in 50 Pixel Abständen rumspringen, um dann doch jedesmal denselben Bereich abzusuchen ?
    Du müßtest dann die Maus Pixel für Pixel bewegen und jedesmal scannen ob das Symbol auftaucht.

    Edit:
    Also ich glaube, du suchst sowas:

    [autoit]

    Global $x_start = 100, $x_end = 300, $y_start = 100, $y_end = 200
    Global $x_ziel = 400, $y_ziel = 500, $color = 0x66FF00
    For $i = $x_start To $x_end
    For $k = $y_start To $y_end
    MouseMove($i, $k, 1)
    If PixelGetColor($i, $k) = $color Then
    MouseClickDrag('left', $i, $k, $x_ziel, $y_ziel, 1)
    ExitLoop(2)
    EndIf
    Next
    Next

    [/autoit]
  • Mit AutoIt bei ICQ einloggen?

    • BugFix
    • 14. Juli 2008 um 12:49
    Zitat von Protokollbeschreibung OSCAR

    Der FLAP-Header beginnt mit dem hexadezimalen Wert 2A zur Erkennung des FLAP-Pakets. Es folgt ein Channel (siehe unten), eine Sequenznummer zur Fehlererkennung und die Größe der angehängten Daten.


    Darum sagte ich ja, du mußt erstmal das Protokoll nachbauen. Den Receive zerlegen in die einzelnen Protokollbestandteile und entsprechend reagieren.

    Edit: Anscheinend hast du noch nicht danach gesucht, hier das offengelegte OSCAR Protokoll

  • Gobby - Dateien gemeinsam bearbeiten

    • BugFix
    • 14. Juli 2008 um 12:27

    Spinne, es ist empörend, dass du uns das Teil so lange verschwiegen hast. :rofl:
    Nee, ernsthaft, sieht gut aus - vielleicht können wir alternativ zur ShoutBox eine ScriptBox auf der Basis einbauen :D


    Edit:
    Nachdem ich die Posts getrennt habe, hier nochmal der Link zu Gobby

  • Mit AutoIt bei ICQ einloggen?

    • BugFix
    • 14. Juli 2008 um 12:20

    Du mußt dir das Protokoll nachbauen. Wenn du dann die Startsequenz sendest bekommst du ein Receive. Das mußt du auswerten. Dann wirst du auch die angeforderten User/PW-Sequenzen entdecken. Ist aber recht anspruchsvoll. Und vergiß nicht MD5-Checksumme, sonst bekommst du eh keine Verbindung.
    Personalisiere doch einfach einen bestehenden Client.

  • Taste "wiederholt drücken" und "lösen" per Script

    • BugFix
    • 14. Juli 2008 um 12:13

    oder so:

    [autoit]

    Global $start = False
    HotKeySet('^1', '_start_stop')

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

    Func _start_stop()
    $start = Not $start
    If $start Then
    AdlibEnable('_leer', 50)
    Else
    AdlibDisable()
    EndIf
    EndFunc

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

    Func _leer()
    Send('{SPACE}')
    EndFunc

    [/autoit]
  • Zu zweit an einem Projekt online arbeiten

    • BugFix
    • 14. Juli 2008 um 11:21

    Eine etwas andere Möglichkeit wäre, dass du deinen Kumpel per VNC direkt auf deinen PC zugreifen lassen kannst. Dann arbeitet zwar auch immer nur einer, aber der andere ist live dabei und sieht es und kann reagieren.
    Und per TeamSpeak könnt ihr euch abstimmen :)

  • Text sichtbar aber nicht zu makieren

    • BugFix
    • 14. Juli 2008 um 11:01

    Alles in ein großes Editfeld schreiben. Genau über das Edit (außer Scroll-Leiste) legst du ein transparentes, TopMost- PopUp-Window (als Child) .
    Hier mal als Bsp.:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include<EditConstants.au3>
    Opt("GUIOnEventMode", 1) ; OnEventMode = EIN

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

    $gui1 = GUICreate('GUI 1', 400, 400, -1, -1, Default, $GUI_WS_EX_PARENTDRAG)
    GUISetOnEvent($GUI_EVENT_CLOSE, 'GUI1_close')
    $e = GUICtrlCreateEdit('Die Winkelfunktionen können aber als Sekanten-'& @CRLF& _
    'und Tangentenabschnitte am Einheitskreis auch'& @CRLF& 'auf größere Winkel erweitert werden. '& @CRLF& _
    'Vom Schnittpunkt des einen Winkelschenkels'& @CRLF& 'mit dem Einheitskreis werden die Lote'& @CRLF& _
    'auf die beiden Koordinatenachsen gefällt'& @CRLF& 'und liefern Sinus und Kosinus des Winkels.'& @CRLF& _
    'Die Tangenten in den Punkten x = 1 bzw. y = 1'& @CRLF& 'schneiden den Schenkel ebenfalls und liefern dann'& @CRLF& _
    'in der Projektion auf die Achsen den Tangens'& @CRLF& 'und den Kotangens. Dabei muss der Schenkel'& @CRLF& _
    'gegebenenfalls rückwärts verlängert werden,'& @CRLF& 'um einen Schnittpunkt zu erzielen.'& @CRLF& _
    'Auf diese Weise können jedem Winkel von 0 bis 360 Grad Werte der Winkelfunktionen zugeordnet werden,'& @CRLF& _
    'die nun freilich auch negativ werden können (siehe Abbildung).'& @CRLF& _
    'Die oben angegebenen Beziehungen gelten dabei weiterhin.'& @CRLF& 'In der Analysis werden Sinus und Kosinus'& @CRLF& _
    'in der Regel über Potenzreihen definiert,'& @CRLF& 'wobei der Winkel im Bogenmaß angegeben wird.'& @CRLF& _
    'Näheres siehe in den Artikeln Sinus und Kosinus'& @CRLF& 'sowie Tangens.', _
    5, 5, 390, 200, BitOR($WS_VSCROLL, $WS_HSCROLL, $ES_READONLY), $ES_MULTILINE)
    $bt = GUICtrlCreateButton('Ende', 170, 240, 60, 20)
    GUICtrlSetOnEvent(-1, 'GUI1_close')
    ControlFocus('','',$bt)

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

    $trans = GUICreate('',375, 180, 5, 5,$WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_MDICHILD), $gui1)
    WinSetTrans($trans,'',10)
    GUISetState(@SW_SHOW, $trans)

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

    GUISetState(@SW_SHOW, $gui1)

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

    While True
    Sleep(100)
    WEnd

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

    Func GUI1_close()
    Exit
    EndFunc

    [/autoit]
  • Verschiedene Fonts und Farben in einer Editbox (Word ähnlicher Editor)

    • BugFix
    • 14. Juli 2008 um 09:54

    Das ist kein Fehler. Das Programm benachrichtigt dich, dass die zuvor geladene Bibliothek entladen wird und informiert anschließend über den Erfolg des Vorgangs. Ist sicher irgendwo in einer Debug-Funktion hinterlegt. Such mal nach der Ausgabe im Code. Kannst du also ganz entfernen oder in eine Log-Datei umleiten.

  • Zu zweit an einem Projekt online arbeiten

    • BugFix
    • 14. Juli 2008 um 09:49

    Für so etwas benötigt man Subversion Software (z.B. SVN-Repository). Allerdings braucht ihr dann auch eine Plattform, auf der diese im Web läuft.
    Vielleicht ist die einfachere Variante ein Speicherplatz im Web. Ihr ladet die Daten jeweils und prüft mit WinMerge die Änderungen ab. Ersetzt natürlich keine Subversion.

    Oder: Wenn ihr immer zeitgleich daran arbeitet, kann die Repository-SW auch lokal laufen und der andere verbindet sich auf deinen PC als Server.

  • Media Player

    • BugFix
    • 13. Juli 2008 um 22:20

    Na, wen hab ich denn zitiert ;)
    Ich denke mal, ein: ...schöne Sache, mit Drag & Drop würde es mir noch besser gefallen... wäre angemessener gewesen. :S

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™