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. Oscar

Beiträge von Oscar

  • HotKeySet

    • Oscar
    • 10. Dezember 2008 um 17:17
    Zitat von Jam00

    Kann man es machen das man HotKeys die schon von Windows besetzt sind :?: Also bei Programm die man sich runtergeladen hat geht das ja (also nti aus autoit) :!:

    Äh...gibt's diese Frage auch auf deutsch? ;)

  • Kann mir mal jemand erklären wie man nen Chat mach?

    • Oscar
    • 10. Dezember 2008 um 17:14

    Frage 1: Den Port, den Du in Deinen Scripts (Server und Client) verwendest.

    Frage 2: Das sollte dann Dein Script machen. ;)
    Du brauchst ein Serverscript und ein Clientscript, die dann eine Verbindung aufbauen müssen. Anschließend kannst Du zwischen den beiden Nachrichten übertragen.

    Frage 3: Nein! Oder sagen wir mal Jein! Nicht pauschal, aber wenn Du weißt wie (rechnerabhängig), dann kannst Du das mit AutoIt evtl. automatisieren.

    Ich habe aber die Vermutung, das solch ein Script Deine Fähigkeiten übersteigt (nicht böse gemeint). Vielleicht solltest Du Dich erstmal mit ein paar Grundlagen befassen. :huh:

  • Kann mir mal jemand erklären wie man nen Chat mach?

    • Oscar
    • 10. Dezember 2008 um 16:55

    Ein Chat-Programm benötigt die IP-Adresse des Gegenüber. Ob das nun eine lokale oder eine Internet-IP-Adresse ist, spielt keine Rolle. Wenn Du über's Internet chatten willst, dann musst Du Dir allerdings darüber Gedanken machen, wie Du an die IP-Adresse des Gegenüber kommst. Hier wäre z.B. DynDNS das Stichwort.
    Wichtig ist außerdem, dass der verwendete Port in der Firewall freigegeben ist und in einem evtl. vorhandenen Router an den "Server"-Rechner weitergereicht wird.

  • ClipboardMemo

    • Oscar
    • 10. Dezember 2008 um 16:37

    Frage 1: Ich habe mir aus dem Netz eine "Leer"-DLL geholt und die dann mit dem Resource-Hacker bearbeitet.

    Frage 2: Das mit der Icl-Datei hatte ich zuerst, aber dort werden die Icons dann nicht richtig angezeigt. Wobei ich jetzt nicht weiß, ob das etwas mit der Auflösung der Icons zu tun hat.

  • GUICtrlCreateCheckbox Schrift ändern

    • Oscar
    • 10. Dezember 2008 um 16:31

    Ich habe BugFix's Beispiel mal um einen MsgBox-Ausgabe-Button erweitert:

    Spoiler anzeigen
    [autoit]


    ; Muster Checkbox-Bearbeitung
    ; Ziel: einfache Abfrage, welche CB aktiviert sind

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

    #include <GUIConstants.au3>
    Opt('GUIOnEventMode', 1)
    Opt("MustDeclareVars", 1)
    Global $bCheckAll, $bUnCheckAll, $GUI, $i, $str, $bOutput
    Global $arCBNames = StringSplit('aaa,bbb,ccc,ddd,eee,fff,ggg,hhh,iii,jjj,kkk,mmm,nnn,ooo,ppp,qqq,rrr,sss,ttt,uuu', ',')
    Global $arCB[20][3] ; Array für Handle und Dual-Wert der CB
    Global $Checked = 0 ; Variable nimmt Status ALLER Checkboxen in einem Wert auf,
    ; Startstatus für alle: UNCHECKED
    Global $w = 500, $h = 20*30+40, $l = (@DesktopWidth-$w)/2, $t = (@DesktopHeight-$h)/2
    Global $top = -10
    $GUI = GUICreate('Test Checkbox', $w, $h, $l, $t)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_Ende')
    For $i = 0 To UBound($arCB) -1
    $top += 30
    $arCB[$i][1] = 2^$i ; Zuweisung eindeutiger Wert
    $arCB[$i][0] = GUICtrlCreateCheckbox($arCBNames[$i+1], 40, $top, 120)
    GUICtrlSetOnEvent(-1, '_ClickCB')
    Next
    $bCheckAll = GUICtrlCreateButton('Alle markieren', 250, 20, 150, 21)
    GUICtrlSetOnEvent(-1, '_CheckAll')
    $bUnCheckAll = GUICtrlCreateButton('Markierung aufheben', 250, 50, 150, 21)
    GUICtrlSetOnEvent(-1, '_UnCheckAll')
    $bOutput = GUICtrlCreateButton('MsgBox-Ausgabe', 250, 80, 150, 21)
    GUICtrlSetOnEvent(-1, '_Output')
    GUISetState()

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

    While 1
    Sleep(100)
    WEnd

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

    Func _Ende()
    Exit
    EndFunc

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

    Func _ClickCB()
    For $i = 0 To UBound($arCB) -1
    If $arCB[$i][0] = @GUI_CtrlId Then
    $Checked = BitXOR($Checked, $arCB[$i][1])
    ExitLoop
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _CheckAll()
    For $i = 0 To UBound($arCB) -1
    If Not BitAND($Checked, $arCB[$i][1]) Then
    GUICtrlSetState($arCB[$i][0], $GUI_CHECKED)
    $Checked = BitXOR($Checked, $arCB[$i][1])
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _UnCheckAll()
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then
    GUICtrlSetState($arCB[$i][0], $GUI_UNCHECKED)
    $Checked = BitXOR($Checked, $arCB[$i][1])
    EndIf
    Next
    _ReadCB()
    EndFunc

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

    Func _ReadCB() ; Fkt. dient nur zur Ausgabe, welche CB markiert sind
    Local $str = 'Markiert: '
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then $str &= $i+1 & ', '
    Next
    WinSetTitle($GUI, '', StringTrimRight($str, 2))
    EndFunc

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

    Func _Output()
    Local $str = ''
    For $i = 0 To UBound($arCB) -1
    If BitAND($Checked, $arCB[$i][1]) Then $str &= $arCBNames[$i+1] & ', '
    Next
    MsgBox(0, 'Ausgabe', StringTrimRight($str, 2))
    EndFunc

    [/autoit]
  • Kann mir mal jemand erklären wie man nen Chat mach?

    • Oscar
    • 10. Dezember 2008 um 16:16

    Wobei?
    Du hast hier nicht eine Zeile Code gepostet. Erwartest Du, dass wir Dir Deinen Chat schreiben? :(

  • 2 Gui´s

    • Oscar
    • 10. Dezember 2008 um 16:10

    Das ist Deine Aufgabe: Einfach Deinen ersten Post editieren und auf [gelöst] umstellen.


    Edit: Ich sehe gerade, der Thread war ja gar nicht von Dir, Zord! In dem Fall ist das die Aufgabe von Deepred. :)

  • ClipboardMemo

    • Oscar
    • 10. Dezember 2008 um 15:44

    Es gibt nochmal eine neue Version. Ich habe ganz vergessen, dass man ja auch Verzeichnisse kopieren können muss. :D

  • ClipboardMemo

    • Oscar
    • 10. Dezember 2008 um 14:58

    Verbesserungsvorschlag umgesetzt! Neue Version (siehe Post #1)!

    Danke! :)

  • Wie kann man eine Gui in den Vollbildschirm setzen?

    • Oscar
    • 10. Dezember 2008 um 13:48

    Die Hilfedatei nicht richtig gelesen: :rolleyes:
    "The left side of the dialog box. By default (-1), the window is centered."
    "The top of the dialog box. Default (-1) is centered."

  • Wie kann man eine Gui in den Vollbildschirm setzen?

    • Oscar
    • 10. Dezember 2008 um 13:09

    Aus Gewohnheit! :)
    Ist mir mal passiert und ich habe ziemlich lange gesucht, warum das Fenster so verschoben angezeigt wird.

  • ClipboardMemo

    • Oscar
    • 10. Dezember 2008 um 13:02

    Es gibt wieder eine neue Version (siehe Post #1).

  • Wie kann man eine Gui in den Vollbildschirm setzen?

    • Oscar
    • 10. Dezember 2008 um 12:48

    Und für die LEFT, TOP Koordinaten nicht "-1, -1" (zentriert) verwenden, sondern "0, 0", denn sonst wird das Fenster ein Stück nach oben und links verschoben.

  • _GUICtrlListView_GetHeader($hWnd) liefert komischen Wert

    • Oscar
    • 10. Dezember 2008 um 11:07

    Das hat im wesentlichen zwei Gründe:

    1. Für die UDF-Funktionen sollte man immer das Handle statt der ID benutzen, also mit: $hListview = GUICtrlGetHandle($listview) der Variablen das Handle übergeben.

    2. Die Koordinaten bei _GUICtrlHeader_HitTest() sind relativ zum Listview (Header), nicht zum Fenster.

    So funktioniert dann auch die Abfrage der Header (Ergebnis ist der Index):

    Spoiler anzeigen
    [autoit]


    #include<GuiHeader.au3>
    #include<GuiListView.au3>
    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>

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

    $hGui = GUICreate("listview items", 220, 250, 100, 200, -1, $WS_EX_ACCEPTFILES)

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

    $Listview = GUICtrlCreateListView("col1 |col2|col3 ", 10, 10, 200, 150)
    $hListview = GUICtrlGetHandle($Listview)
    $item1 = GUICtrlCreateListViewItem("item2|col22|col23", $listview)
    GUISetState()

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

    Do
    $msg = GUIGetMsg()
    Switch $msg
    Case $Listview
    $a = GUIGetCursorInfo($hGui)
    $Item_nr = _GUICtrlHeader_HitTest(_GUICtrlListView_GetHeader($hListview), $a[0]-12, $a[1]-12)
    ToolTip($Item_nr[0])
    EndSwitch
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]
  • 2 Gui´s

    • Oscar
    • 10. Dezember 2008 um 07:28

    Das "Child"-Fenster hat keinen Eintrag in der Taskleiste und es befindet sich vor dem "Parent"-Fenster:

    Spoiler anzeigen
    [autoit]


    #include<GUIConstantsEx.au3>
    $hGui1 = GUICreate('Parent', 600, 300, -1, -1)
    $hOpen = GUICtrlCreateButton('Open Child', 20, 20, 80, 25)
    $hGui2 = GUICreate('Child', 300, 150, -1, -1, Default, Default, $hGui1)
    GUISetState(@SW_SHOW, $hGui1)
    While True
    $msg = GUIGetMsg(1)
    Switch $msg[1] ; Window Handle
    Case $hGui1
    Switch $msg[0] ; Event
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hOpen
    GUISetState(@SW_SHOW, $hGui2)
    EndSwitch
    Case $hGui2
    Switch $msg[0] ; Event
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE, $hGui2)
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]
  • blinkendes symbol in der taskleiste

    • Oscar
    • 9. Dezember 2008 um 12:58

    Oder, wenn nur das Icon blinken soll, so:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    $hGui = GUICreate("My GUI")
    GUISetIcon("shell32.dll", -51)
    $stop = GUICtrlCreateButton('Stop', 20, 20, 60, 25)
    GUISetState(@SW_SHOW)
    $check = True
    AdlibEnable('_IconBlink', 800)
    Do
    $msg = GUIGetMsg()
    If $msg = $stop Then AdlibDisable()
    Until $msg = $GUI_EVENT_CLOSE

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

    Func _IconBlink()
    If $check Then
    GUISetIcon("shell32.dll", -71)
    $check = False
    Else
    GUISetIcon("shell32.dll", -51)
    $check = True
    EndIf
    EndFunc

    [/autoit]
  • blinkendes symbol in der taskleiste

    • Oscar
    • 9. Dezember 2008 um 12:34

    Das Beispiel finde ich nicht so besonders, weil das Icon zwischendurch ganz weg ist.
    Besser finde ich das hier:

    [autoit]


    #Include <Constants.au3>
    Opt("TrayMenuMode",1)
    $exit = TrayCreateItem("Exit")
    TraySetIcon("warning")
    TraySetToolTip("SOS")

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

    TraySetState(4) ; Blinkendes Icon

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

    sleep(5000)

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

    TraySetState(8) ; Stoppt das Blinken

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

    Do
    Until TrayGetMsg() = $exit

    [/autoit]
  • 2 Gui´s

    • Oscar
    • 9. Dezember 2008 um 06:15

    Naja, das kann schon funktionieren, nur wozu?
    Es ist doch überhaupt kein Problem mehrere GUIs in einem Script zu verwalten. Einfach alle GUIs am Anfang erstellen und bei Bedarf mit z.B. GUISetState(@SW_SHOW, $hGui1) anzeigen lassen bzw. mit GUISetState(@SW_HIDE, $hGui1) wieder verstecken.
    Mit dem erweiterten Modus von GUIGetMsg lassen sich die Events der GUI-Elemente auch eindeutig der jeweiligen GUI zuordnen (siehe obiges Beispiel von BugFix). Wenn Du willst, kannst Du auch den OnEvent-Mode benutzen (finde ich persönlich einfacher).
    Also, wozu eine "2-GUI-2-Script"-Version basteln, die umständlich die Variablenwerte per Ini hin- und herüberträgt? :rolleyes:

  • saubere Programmierung:Parameterübergabe an Funktionen

    • Oscar
    • 8. Dezember 2008 um 22:06

    Ja, so verstehe ich das zumindest. Ansonsten ergeben doch Dim und ByRef gar keinen Sinn. Oder ist das jetzt ein Denkfehler von mir?

    Edit: Achso, nee...ByRef war jetzt echt ein Denkfehler. Aber wozu dient dann noch Dim?

  • saubere Programmierung:Parameterübergabe an Funktionen

    • Oscar
    • 8. Dezember 2008 um 21:26

    Ein "Problem" bei AutoIt ist, dass alle Variablen, die außerhalb einer Funktion deklariert werden, globale Variablen sind (ich halte das immer noch für einen Bug), auch wenn man sie explizit als Lokal deklariert.

    Beispiel:

    [autoit]


    Local $a = 5
    Test()
    MsgBox(0,'Global', '$a = ' & $a)

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

    Func Test()
    $a += 5
    MsgBox(0,'Innerhalb der Funktion', '$a = ' & $a)
    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™