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
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Forum
  3. AutoIt 3
  4. Skripte

Auto-ICQ6

  • Jam00
  • 6. Dezember 2008 um 12:58
1. offizieller Beitrag
  • Jam00
    Meister
    Reaktionen
    1
    Beiträge
    1.671
    • 6. Dezember 2008 um 12:58
    • #1

    Ich hab mal ein Programm geschrieben, das bei ICQ6 automatisch antwortet wennn man einen Nachricht bekommt, den Text der geantwortet werden soll gibt man beim Start ein1

    [autoit]

    $Input1 = InputBox("Name", "Wie heist das Fenster?")
    $Input2 = InputBox("Text", "Welcher Text soll geantwortet werden?")
    WinActivate($Input1)
    While 1
    Sleep(50)
    WinMove($Input1, "", 0, 0)
    $1 = PixelGetColor(149, 328)
    If $1 = "0xD3E9E7" Then
    While 2
    $2 = PixelGetColor(149, 328)
    If $2 = "0xECFEF2" Then
    MouseClick("Left", 24, 357)
    Send($Input2, 1)
    Send("{enter}")
    ExitLoop
    EndIf
    WEnd
    EndIf
    $3 = PixelGetColor(37, 69)
    If $3 = "0xEDEA3D" Then
    MouseClick("Left", 37, 69)
    Send($Input2, 1)
    Send("{enter}")
    EndIf
    $4 = PixelGetColor(151, 69)
    If $4 = "0xEDE93F" Then
    MouseClick("Left", 151, 69)
    Send($Input2, 1)
    Send("{enter}")
    EndIf
    $4 = PixelGetColor(263, 69)
    If $4 = "0xEDEA3D" Then
    MouseClick("Left", 263, 69)
    Send($Input2, 1)
    Send("{enter}")
    EndIf
    $5 = PixelGetColor(371, 69)
    If $5 = "0xEDE93F" Then
    MouseClick("Left", 371, 69)
    Send($Input2, 1)
    Send("{enter}")
    EndIf
    Sleep(50)
    WEnd

    [/autoit]

    mfg. Jam00

  • anno2008
    Lernender
    Beiträge
    992
    • 6. Dezember 2008 um 13:24
    • #2

    Hi,
    also das "originale" ICQ Prog dafür zu benutzen ist äußerst ungünstig.
    Es gibt schon lange ICQ Command Line Tools, die man perfekt mit AutoIt steuern kann. Eine andere Möglichkeit wäre per Oscar Protokoll zu kommunizieren. (was aber nicht ganz einfach ist :P)

  • Jam00
    Meister
    Reaktionen
    1
    Beiträge
    1.671
    • 6. Dezember 2008 um 13:32
    • #3

    kapier ich nit :S Kann mir mal jemand erklären wie man es macht das hotkeys nur funken wenn das fenster aktiv is :?:

    mfg. Jam00

    Einmal editiert, zuletzt von Jam00 (6. Dezember 2008 um 13:42)

  • BugFix
    aka McBarby
    Reaktionen
    7
    Beiträge
    11.162
    • 6. Dezember 2008 um 14:21
    • Offizieller Beitrag
    • #4
    Zitat von Jam00

    Kann mir mal jemand erklären wie man es macht das hotkeys nur funken wenn das fenster aktiv is :?:

    Du fragst ab, ob das gewünschte Fenster, indem die Hotkeys wirksam sein sollen, aktiv ist (WinGetState). Ist das der Fall setzt du die Hotkeys, ist es inaktiv werden die Hotkeys wieder deaktiviert.

    MfG BugFix

    Mein Git | Meine UDF | Array-Tutorial | Bit-Tutorial | Dll-Tutorial | RegExp-Beispiel

    • Nächster offizieller Beitrag
  • Jam00
    Meister
    Reaktionen
    1
    Beiträge
    1.671
    • 6. Dezember 2008 um 14:38
    • #5

    kanste mir mal nen beispiel sagen? Ich wollte das acuh so haben, das die HotKeys wenn das fenster nit aktiv is dann auch für andere Programme funken

    mfg. Jam00

  • BugFix
    aka McBarby
    Reaktionen
    7
    Beiträge
    11.162
    • 6. Dezember 2008 um 14:52
    • Offizieller Beitrag
    • #6

    OK, hier ein Bsp.:

    [autoit]

    #include <GUIConstants.au3>
    Global $hk_set = False

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

    $gui = GUICreate('Test')
    GUISetState()

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

    Do
    If BitAND(WinGetState($gui), 8) And Not $hk_set Then
    HotKeySet('+s', 'HK_test')
    $hk_set = True
    ElseIf Not BitAND(WinGetState($gui), 8) And $hk_set Then
    HotKeySet('+s')
    $hk_set = False
    EndIf
    Until GUIGetMsg() = $GUI_EVENT_CLOSE

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

    Func HK_test()
    MsgBox(0, '', 'Hotkey gedrückt')
    EndFunc

    [/autoit]

    MfG BugFix

    Mein Git | Meine UDF | Array-Tutorial | Bit-Tutorial | Dll-Tutorial | RegExp-Beispiel

    • Vorheriger offizieller Beitrag
    • Nächster offizieller Beitrag
  • Jam00
    Meister
    Reaktionen
    1
    Beiträge
    1.671
    • 6. Dezember 2008 um 15:06
    • #7

    Hab hinbekommen, hab es so gemacht:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $gui = GUICreate('Test')
    GUISetState()
    While 1
    $1 = WinActive ("Test")
    If $1 = "0" Then
    HotKeySet ("+s")
    ElseIf $1 = "1" Then
    HotKeySet ("+s","S")
    EndIf
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    exit
    EndSwitch
    Wend
    Func S()
    MsgBox(0, '', 'Hotkey gedrückt')
    EndFunc

    [/autoit]

    Bei deinem hab ich nti ganz durgeblickt, aber ich hab genug davon versanden^^
    Kann man eigentlich auch nen Mausklick als HotKex benutzen?

    mfg. Jam00

    2 Mal editiert, zuletzt von Jam00 (6. Dezember 2008 um 15:26)

  • BugFix
    aka McBarby
    Reaktionen
    7
    Beiträge
    11.162
    • 6. Dezember 2008 um 16:27
    • Offizieller Beitrag
    • #8

    Deine Lösung setzt aber in jedem Schleifendurchlauf den Hotkey neu wenn das Fenster aktiv ist, selbst dann, wenn der Hotkey bereits gesetzt wurde. Beim Aufheben des Hotkeys verhält es sich ebenso.
    Das ist nicht sehr vorteilhaft. Deshalb hatte ich eine Variable hinzugefügt, die den Status "Hotkey gesetzt True/False" führt.

    MfG BugFix

    Mein Git | Meine UDF | Array-Tutorial | Bit-Tutorial | Dll-Tutorial | RegExp-Beispiel

    • Vorheriger offizieller Beitrag
  • Jam00
    Meister
    Reaktionen
    1
    Beiträge
    1.671
    • 6. Dezember 2008 um 16:57
    • #9

    Stimm, hast recht, so is es besser:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    $gui = GUICreate('Test')
    GUISetState()
    $active = 0
    While 1
    $1 = WinActive ("Test")
    If $1 = $active Then
    Sleep (1)
    Else
    If $1 = "0" Then
    $active = 0
    HotKeySet ("+s")
    ElseIf $1 = "1" Then
    $active = 1
    HotKeySet ("+s","S")
    EndIf
    EndIf
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    exit
    EndSwitch
    Wend
    Func S()
    MsgBox(0, '', 'Hotkey gedrückt')
    EndFunc

    [/autoit]

    Kann man auch die Maus als hotkey nehmen? z.B. HotKeySet ("left","func")

    mfg. Jam00

    Einmal editiert, zuletzt von Jam00 (6. Dezember 2008 um 17:06)

  • progandy
    Gast
    • 6. Dezember 2008 um 17:43
    • #10

    damit: http://www.autoitscript.com/forum/index.php?showtopic=64738&st=0

  • Jam00
    Meister
    Reaktionen
    1
    Beiträge
    1.671
    • 6. Dezember 2008 um 18:00
    • #11

    danke, habs hinbekommen ;)

    mfg. Jam00

  • Jam00
    Meister
    Reaktionen
    1
    Beiträge
    1.671
    • 7. Dezember 2008 um 15:48
    • #12

    Weiß jemand ob man in einer Edit-Feld nur die Schriftfarbe einer bestimten Zeile ändern kann, und nicht im gannzen Edit-Feld? Und auch die Hintergrundfarbe?

    mfg. Jam00

  • RR04
    Profi
    Reaktionen
    1
    Beiträge
    1.229
    • 7. Dezember 2008 um 15:59
    • #13

    Hi,
    so vielleicht (ganzseitig) ? :)

    Spoiler anzeigen
    [autoit]


    $Edit1 = GUICtrlCreateEdit("", 4, 40, 613, 369, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
    GUICtrlSetFont(-1, 11, 400, 0, "Lucida Console")
    GUICtrlSetColor(-1, 0x00FF00)
    GUICtrlSetBkColor(-1, 0x000000)

    [/autoit]


    Allen schöne Feiertage ! :thumbup:

    MfG RR04

    Auf gehts zu meiner AutoIt-Skriptsammlung!

    Einmal editiert, zuletzt von RR04 (7. Dezember 2008 um 16:06)

  • progandy
    Gast
    • 7. Dezember 2008 um 16:14
    • #14

    Dafür brauchst du ein RichEdit :) --> http://www.autoitscript.com/forum/index.php?showtopic=83763&hl=Rich+Edit

  • Jam00
    Meister
    Reaktionen
    1
    Beiträge
    1.671
    • 7. Dezember 2008 um 16:16
    • #15

    Ne ich meinte das so:

    Zeile 1
    Zeile 2
    Zeile 3

    mfg. Jam00

  • progandy
    Gast
    • 7. Dezember 2008 um 16:21
    • #16

    Also brauchst du RichEdit mit RTF oder InternetExplorer emedded mit HTML

    //Edit: UND MACH FÜR FRAGEN EINEN NEUEN THREAD AUF ( nicht in Sicher ist sicher posten!)

  • Jam00
    Meister
    Reaktionen
    1
    Beiträge
    1.671
    • 7. Dezember 2008 um 16:45
    • #17

    ich kann ja hier weiterfragen, ich kapier das mit RichEdit nit :(

    mfg. Jam00

  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™