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

Beiträge von Andy

  • Was ist ein "sichtbares" Fenster, bzw wie finde ich heraus ob ein Fenster von einem anderen verdeckt ist?

    • Andy
    • 19. Oktober 2009 um 16:27

    Wie schon gesagt, ein Fenster zu aktivieren ist nicht das Problem. Problem ist herauszufinden, ob das 2. Fenster verdeckt ist.
    Da die Abfrage in einer Endlosschleife läuft kann ich nicht einfach das 2. Fenster aktivieren wenn das 1. aktiv ist (oder gerade geworden ist). Denn dann wäre das 2. Fenster permanent aktiv....

    [autoit]

    while 1
    if winactive($gui) then winactivate($gui2) ;funzt nicht, bei jedem klick in die erste gui wird die 2. aktiviert
    wend

    [/autoit]

    Werde wohl mal bei den Messagehandlern gucken gehen müssen...

  • Was ist ein "sichtbares" Fenster, bzw wie finde ich heraus ob ein Fenster von einem anderen verdeckt ist?

    • Andy
    • 19. Oktober 2009 um 15:25

    Moinz,
    habe eine Gui mit 2 (Haupt- und Neben-)Fenstern, beide sind nebeneinander angedockt.
    Wenn ich nun ein Fenster über diese beiden lege und dann das "Hauptfenster" per Klick auf die Taskbar in den Vordergrund hole, dann soll das 2.Fenster auch erscheinen, es bleibt aber unter den anderen Fenstern liegen.
    Es soll aber auch nur zusammen mit dem ersten Fenster erscheinen.
    Habe schon mit

    [autoit]

    local $stat1=bitand(Wingetstate($anleitung),1)
    local $stat2=bitand(Wingetstate($anleitung),2)
    local $stat3=bitand(Wingetstate($anleitung),4)
    local $stat4=bitand(Wingetstate($anleitung),8)
    local $stat5=bitand(Wingetstate($anleitung),16)
    local $stat6=bitand(Wingetstate($anleitung),32)

    [/autoit]

    den Status der Fenster abgefragt, aber der Status "sichtbar" bleibt, egal ob das Fenster verdeckt ist oder nicht.
    Zzt. weiss ich nicht mal wie ich herausfinde, ob ein Fenster überhaupt verdeckt bzw sichtbar ist.....
    Sonst wäre es einfach, wenn mein Hauptfenster sichtbar ist, dann Nebenfenster aktivieren. Wenn Hauptfenster nicht sichtbar, dann passiert nix.

    ciao
    Andy

  • Script für die Schule

    • Andy
    • 19. Oktober 2009 um 14:50

    Jonathan, meine alten Augen brauchen immer bissl Zeit, komplette GuI´s zu erfassen. Wenn die in einer hundertstel Sekunde übern Bildschirm fliegen, pack ich das nicht mehr^^
    Ausserdem wollte ich dort etwas nachschauen, habs aber wieder zurückgeändert und nur die Zeile vergessen rauszumachen

    @simon
    wks-if3-....das sind die Rechnernamen, die werden per

    [autoit]

    TCPNameToIP

    [/autoit]

    in IP-Adressen aufgelöst

  • Gui in 2 Sprachen darstellen - Wie?

    • Andy
    • 19. Oktober 2009 um 13:35
    Zitat

    Google Übersetzer

    wenn man das als einzige Quelle nimmt, dann hat man genauso verloren wie die "steht aber so in Wikipedia"-Schreier! Aber wo ist das Problem 5 der Übersetzer anzufragen und dann einfach aus den 5 Ergebnissen eine feine Eigene Übersetzung zu basteln?
    Thai wäre garnicht mein Ding^^, dann schon eher koreanisch. Wenn man absolut keinen Plan hat, dann sollte man auch nicht übersetzen!

  • Script für die Schule

    • Andy
    • 19. Oktober 2009 um 13:20

    habs mal um 500 zeilen gekürzt^^

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    ;~ Includes
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <ComboConstants.au3> ;<- Für Combolist
    #include <inet.au3> ;<- zum prüfen ob PChostname die endung le hat
    #include <Misc.au3> ;<- zum prüfen, ob Programm bereits läüft
    ;testen, ob Programm bereits läuft.Wenn ja: Hinweis darauf und beenden
    If _Singleton("Skript", 1) = 0 Then
    MsgBox(64, "MasterControl", "MasterControl läuft bereits", 5)
    Exit
    EndIf
    ; teste, ob Programm auf Lehrer PC ausgeführt wird. Wenn nicht: Meldung + Beenden
    TCPStartup()
    $hostname = _TCPIpToName(@IPAddress1)
    $hostnametest = StringSplit($hostname, "-")

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

    If $hostnametest[0] = 3 Then ;wenn im hostname 3 - vorhanden sind dann

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

    If $hostnametest[3] <> "le" Then
    MsgBox(64, "MasterControl", "Dieses Programm darf nur auf Lehrerrechnern ausgeführt werden")
    Exit
    EndIf
    If $hostnametest[3] <> "LE" Then
    MsgBox(64, "MasterControl", "Dieses Programm darf nur auf Lehrerrechnern ausgeführt werden")
    Exit
    EndIf
    Else ; wenn im hostname keine 2 - vorhanden sind
    MsgBox(64, "MasterControl", "Dieses Programm sollte auf einem Lehrerrechner der Schule ausgeführt werden")
    EndIf

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

    TCPShutdown()

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

    ;~ Hier startet der GUI-Code
    $Gui = GUICreate("MasterControl 1.0 BETA", 350, 320); <-- Erstelle die GUI
    GUICtrlCreateLabel("Auswahl der PCs", 10, 20)
    ; checkboxen zum PCs auswählen
    Dim $pc[21]
    Dim $pcip[21]
    Dim $verbindung[21]
    Dim $datenpcfenster[21]

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

    For $i = 1 To 20
    $pc[$i] = GUICtrlCreateCheckbox($i, 10 + (($i > 10) * 40), 30 + ($i - (($i > 10) * 10)) * 20)
    Next

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

    GUISetState(@SW_SHOW)

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

    ;copyright
    GUICtrlCreateLabel("© Copyright Alexander Imka", 110, 295)

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

    ;Icon setzten
    If FileExists(@ScriptDir & "\icon.ico") Then
    GUISetIcon(@ScriptDir & "\icon.ico")
    Else
    MsgBox(48, "Icon fehlt", "Das Icon wurde nicht gefunden. Das Programm wird ohne das Icon weiter ausgeführt!")
    EndIf

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

    ;trennlinie
    GUICtrlCreatePic("linie.jpg", 100, 5, 2, 310)
    $Buttonuebernehmen = GUICtrlCreateButton("Übernehmen", 5, 295, 90, 25, $WS_GROUP)
    $Buttonalle = GUICtrlCreateButton("alle", 55, 265, 40, 25, $WS_GROUP)
    $buttonkeinen = GUICtrlCreateButton("keinen", 5, 265, 40, 25, $WS_GROUP)

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

    ;Combolist
    $combo = GUICtrlCreateCombo("", 110, 10, 145, 25, BitOR($CBS_DROPDOWNLIST, $CBS_AUTOHSCROLL))
    GUICtrlSetData(-1, "Reboot|Sperren|Fenster|MsgBox")
    $combobutton = GUICtrlCreateButton("wechseln", 270, 10, 65, 20, $WS_GROUP)
    ; --- --- --- --- Funktionenen --- --- --- ---
    ;Reboot
    $neustart = GUICtrlCreateButton("Neustarten", 110, 100, 100, 50, $WS_GROUP)
    $herunterfahren = GUICtrlCreateButton("Herunterfahren", 110, 150, 100, 50, $WS_GROUP)
    $abmelden = GUICtrlCreateButton("Abmelden", 220, 100, 100, 50, $WS_GROUP)
    $standby = GUICtrlCreateButton("Standby", 220, 150, 100, 50, $WS_GROUP)
    GUICtrlSetState($neustart, $GUI_HIDE)
    GUICtrlSetState($herunterfahren, $GUI_HIDE)
    GUICtrlSetState($abmelden, $GUI_HIDE)
    GUICtrlSetState($standby, $GUI_HIDE)

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

    ;MsgBox
    $msgboxicon1 = GUICtrlCreateIcon("shell32.dll", 263, 110, 70)
    $msgboxicon2 = GUICtrlCreateIcon("shell32.dll", 240, 170, 70)
    GUICtrlSetState($msgboxicon1, $GUI_HIDE)
    GUICtrlSetState($msgboxicon2, $GUI_HIDE)

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

    $msgboxlabel1 = GUICtrlCreateLabel("1", 150, 72)
    $msgboxlabel2 = GUICtrlCreateLabel("2", 210, 72)
    $msgboxlabel3 = GUICtrlCreateLabel("Icon wählen:", 120, 40)
    $msgboxlabel4 = GUICtrlCreateLabel("Text eingeben:", 120, 120)
    GUICtrlSetState($msgboxlabel1, $GUI_HIDE)
    GUICtrlSetState($msgboxlabel2, $GUI_HIDE)
    GUICtrlSetState($msgboxlabel3, $GUI_HIDE)
    GUICtrlSetState($msgboxlabel4, $GUI_HIDE)

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

    $msgboxinhalt = GUICtrlCreateInput("", 112, 150, 228)
    GUICtrlSetState($msgboxinhalt, $GUI_HIDE)

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

    $iconwahl1 = GUICtrlCreateRadio("Icon1", 230, 70)
    $iconwahl2 = GUICtrlCreateRadio("Icon2", 230, 90)
    GUICtrlSetState($iconwahl1, $GUI_HIDE)
    GUICtrlSetState($iconwahl2, $GUI_HIDE)

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

    $msgboxsenden = GUICtrlCreateButton("Senden", 174, 200, 100, 50)
    GUICtrlSetState($msgboxsenden, $GUI_HIDE)

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

    $pcip[1] = "127.0.0.1"
    $pcip[2] = "192.168.1.100"
    $pcip[3] = "192.168.178.0"
    $pcip[4] = "192.168.178.0"
    $pcip[5] = "192.168.178.0"
    $pcip[6] = "192.168.178.0"
    $pcip[7] = "192.168.178.0"
    $pcip[8] = "192.168.178.0"
    $pcip[9] = "192.168.178.0"
    $pcip[10] = "192.168.178.0"
    $pcip[11] = "192.168.178.0"
    $pcip[12] = "192.168.178.0"
    $pcip[13] = "192.168.178.0"
    $pcip[14] = "192.168.178.0"
    $pcip[15] = "192.168.178.0"
    $pcip[16] = "192.168.178.0"
    $pcip[17] = "192.168.178.0"
    $pcip[18] = "192.168.178.0"
    $pcip[19] = "192.168.178.0"
    $pcip[20] = "192.168.178.0"

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

    ;hostnames zu ips
    ;If $hostnametest[0] = 3 Then
    ProgressOn("IP ermitteln", "Die IP's werden ermittelt")
    TCPStartup()

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

    For $i = 1 To 20
    $r = StringFormat("_%02u%", $i)
    ProgressSet(5 * $i, "Rechner " & $i & " / 20", "Die IP's werden ermittelt")
    If Ping("wks-if3-" & $r, 50) Then $pcip[$i] = TCPNameToIP("wks-if3-" & $r)

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

    Next
    _arraydisplay($pcip)

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

    TCPShutdown()
    ProgressOff()
    ;EndIf

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

    ;sperren
    $sperreneingabe = GUICtrlCreateButton("Eingabe sperren", 110, 100, 100, 50, $WS_GROUP)
    $sperrenbildschirm = GUICtrlCreateButton("Bildschirm sperren", 110, 150, 100, 50, $WS_GROUP)
    $entsperreneingabe = GUICtrlCreateButton("Eingabe freigeben", 220, 100, 100, 50, $WS_GROUP)
    $entsperrenbildschirm = GUICtrlCreateButton("Bildschirm freigeben", 220, 150, 100, 50, $WS_GROUP)
    GUICtrlSetState($sperreneingabe, $GUI_HIDE)
    GUICtrlSetState($sperrenbildschirm, $GUI_HIDE)
    GUICtrlSetState($entsperreneingabe, $GUI_HIDE)
    GUICtrlSetState($entsperrenbildschirm, $GUI_HIDE)

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

    ; Fenster

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

    $aktualisieren = GUICtrlCreateButton("Aktualisieren", 110, 35, 230, 20, $WS_GROUP)
    GUICtrlSetState($aktualisieren, $GUI_HIDE)

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

    ; --- --- --- ---Ende Funktionen --- --- --- ---

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

    ;starticon
    $starticon = GUICtrlCreateIcon("shell32.dll", 19, 200, 150);starticon
    GUISetState($starticon, $GUI_HIDE)

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

    UDPStartup()

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

    While 1 ; <-- Endlosschleife anfangen

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

    $nMsg = GUIGetMsg(); <-- Fange die Button-Events ab
    Switch $nMsg ;<-- Unterscheide die Events
    Case $GUI_EVENT_CLOSE ; <-- Wenn GUI geschlossen wird dann
    UDPShutdown()
    Exit ; <-- Skript beenden
    Case $Buttonuebernehmen
    ProgressOn("Bitte warten...", "Verbindungen werden hergestellt")

    For $i = 1 To 20

    If GUICtrlRead($pc[$i]) = $GUI_CHECKED Then
    If Ping($pcip[$i]) Then
    $verbindung[$i] = UDPBind($pcip[$i], 2000)
    Else
    ToolTip("PC " & $i & " ist nicht erreichbar")
    sleep(1000)
    GUICtrlSetState($pc[$i], $GUI_UNCHECKED)
    EndIf
    EndIf
    ProgressSet(5 * $i, $i & "/20")

    sleep(200)
    Next
    _arraydisplay($verbindung)
    ToolTip("")
    ProgressOff()

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

    Case $Buttonalle
    For $i = 1 To 20
    GUICtrlSetState($pc[$i], $GUI_CHECKED)
    Next
    Case $buttonkeinen
    For $i = 1 To 20
    GUICtrlSetState($pc[$i], $GUI_UNCHECKED)
    Next
    Case $combobutton

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

    If GUICtrlRead($combo) = "Reboot" Then
    GUICtrlSetState($neustart, $GUI_SHOW)
    GUICtrlSetState($herunterfahren, $GUI_SHOW)
    GUICtrlSetState($abmelden, $GUI_SHOW)
    GUICtrlSetState($standby, $GUI_SHOW)

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

    Else
    GUICtrlSetState($neustart, $GUI_HIDE)
    GUICtrlSetState($herunterfahren, $GUI_HIDE)
    GUICtrlSetState($abmelden, $GUI_HIDE)
    GUICtrlSetState($standby, $GUI_HIDE)

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

    EndIf
    If GUICtrlRead($combo) = "" Then
    GUICtrlSetState($starticon, $GUI_SHOW)
    Else
    GUICtrlSetState($starticon, $GUI_HIDE)

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

    EndIf

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

    If GUICtrlRead($combo) = "MsgBox" Then
    GUICtrlSetState($msgboxicon1, $GUI_SHOW)
    GUICtrlSetState($msgboxicon2, $GUI_SHOW)
    GUICtrlSetState($msgboxlabel1, $GUI_SHOW)
    GUICtrlSetState($msgboxlabel2, $GUI_SHOW)
    GUICtrlSetState($iconwahl1, $GUI_SHOW)
    GUICtrlSetState($iconwahl2, $GUI_SHOW)
    GUICtrlSetState($msgboxlabel3, $GUI_SHOW)
    GUICtrlSetState($msgboxlabel4, $GUI_SHOW)
    GUICtrlSetState($msgboxinhalt, $GUI_SHOW)
    GUICtrlSetState($msgboxsenden, $GUI_SHOW)
    sleep(2000)

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

    Else
    GUICtrlSetState($msgboxicon1, $GUI_HIDE)
    GUICtrlSetState($msgboxicon2, $GUI_HIDE)
    GUICtrlSetState($msgboxlabel1, $GUI_HIDE)
    GUICtrlSetState($msgboxlabel2, $GUI_HIDE)
    GUICtrlSetState($iconwahl1, $GUI_HIDE)
    GUICtrlSetState($iconwahl2, $GUI_HIDE)
    GUICtrlSetState($msgboxlabel3, $GUI_HIDE)
    GUICtrlSetState($msgboxlabel4, $GUI_HIDE)
    GUICtrlSetState($msgboxinhalt, $GUI_HIDE)
    GUICtrlSetState($msgboxsenden, $GUI_HIDE)

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

    EndIf

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

    If GUICtrlRead($combo) = "Sperren" Then
    GUICtrlSetState($sperreneingabe, $GUI_SHOW)
    GUICtrlSetState($sperrenbildschirm, $GUI_SHOW)
    GUICtrlSetState($entsperreneingabe, $GUI_SHOW)
    GUICtrlSetState($entsperrenbildschirm, $GUI_SHOW)
    Else
    GUICtrlSetState($sperreneingabe, $GUI_HIDE)
    GUICtrlSetState($sperrenbildschirm, $GUI_HIDE)
    GUICtrlSetState($entsperreneingabe, $GUI_HIDE)
    GUICtrlSetState($entsperrenbildschirm, $GUI_HIDE)

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

    EndIf

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

    If GUICtrlRead($combo) = "Fenster" Then
    GUICtrlSetState($aktualisieren, $GUI_SHOW)
    Else
    GUICtrlSetState($aktualisieren, $GUI_HIDE)

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

    EndIf

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

    Case $aktualisieren
    $standartheight = 50
    ProgressOn("Bitte warten...", "Infos werden abgerufen")
    For $i = 1 To 20
    If Ping($pcip[$i]) Then
    If GUICtrlRead($pc[$i]) = $GUI_CHECKED Then
    UDPSend($verbindung[$i], "fensteranfrage")
    While 1
    $datenpcfenster[$i] = UDPRecv($verbindung[$i], 50000)
    If $datenpcfenster[$i] <> "" Then ExitLoop
    ToolTip("warte auf PC " & $i)
    WEnd
    ToolTip("")
    $pcfenster1 = StringSplit($datenpcfenster[$i], "%")
    For $x = 2 To $pcfenster1[0]
    GUICtrlCreateLabel($pcfenster1, 110, $standartheight)
    $standartheight += 10
    Next
    EndIf
    EndIf
    ProgressSet(5 * $i, "")
    Next

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

    ProgressOff()

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

    EndSwitch

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

    WEnd ; <-- Beginne Schleife von Vorne;### Tidy Error -> while is never closed in your script.

    [/autoit]

    Die Idee finde ich nicht schlecht, was ich nicht so ganz verstanden habe ist die Verwendung von UDP?! Gerade bei solch einem Tool ist es wichtig, daß die Pakete auch ankommen, bzw der Lehrer eine Rückmeldung erhält. Das ist doch bei UDP nur mit viel Protokollschreibkram möglich, der bei TCP komplett wegfällt....


    Zitat

    Du musst dann nur mit der Platzierung der Checkboxen aufpassen, das ginge auch über For, wär aber wahrscheinlich kompliziert.

    [autoit]

    For $i = 1 To 20
    $pc[$i] = GUICtrlCreateCheckbox($i, 10 + (($i > 10) * 40), 30 + ($i - (($i > 10) * 10)) * 20)
    Next

    [/autoit]


    ciao
    Andy

  • Gui in 2 Sprachen darstellen - Wie?

    • Andy
    • 19. Oktober 2009 um 11:10

    Hallo,
    Zufälle gibts^^, habe gerade eins meiner Scripte mehrsprachig gemacht. Dabei ist mir aufgefallen, daß ich einige einfache Phrasen auch direkt von einem Onlineübersetzer (Google usw.) hätte machen lassen können.
    Daher werde ich genau dafür ein Script schreiben. Es wird folgendermaßen funktionieren.
    - Lesen des Quelltextes und separieren bzw filtern der "Texte",
    - Zuordnung von zusammenhängendem Text zu einer Variablen, mehrfach vorkommende Texte bekommen auch nur eine Variable
    - Gui mit Vorschlag "Text", Variablenname und Übersetzung (Onlineunterstützung durch z.B. Google). GGf noch Anzeige des Codesegmentes, um eine Art Schwellwert für die Länge des Übersetzungstextes festzulegen.
    - Speichern von Text und Variablennamen in einer INI-Datei

    Code
    [Sprache]
    variablenname="Text" aus dem Quellcode

    - Ersetzen der übersetzten Texte im Quellcode durch die Variablennamen
    - Anhängen einer Funktion an den Quelltext, welche die Variablennamen mit den Übersetzten Texten füttert
    - Erstellen einer Sprachauswahl im Traymenu.

    Wenn das Programm in eine Sprache "übersetzt" ist, d.h. in der INI-Datei 2 Sprachen stehen, dann ist es ziemlich einfach, eine weitere Sprache hinzuzufügen.
    - Für "von Hand"-Übersetzer: Variablenblock in der INI-Datei kopieren und die einzelnen Zeilen übersetzen, oder

    Script:
    - Lesen des Variablenblocks einer Sprache (oder ggf auch mehrere Sprachen) aus der INI
    - Ersetzen der zu übersetzenden Textstellen per Google oder anderen Übersetzern
    - Block speichern....fertig

    Das Problem bei dieser Methode (Text im Quellcode durch Variablen ersetzen) ist eindeutig die "schwerere" Lesbarkeit des Quellcodes, jedenfalls für mich. Wenn das Script aber die "Beta" verlassen hat, d.h. wahrscheinlich nicht mehr sonderlich viel ergänzt/erweitert werden muss, dann ist diese Variante m.E. optimal.

  • [StringRight] Klappt das Programm nicht? Oder bin ich einfach nur dumm? :D

    • Andy
    • 18. Oktober 2009 um 23:16

    Hallo MasterRobb,
    ggf solltest du nicht die Hilfe, sondern mal deine Schreibweise überprüfen!

    Zitat

    Und wo finde ich jetzt _stingreverse ?
    Du hast gerade gepostet als ich es bearbeitet habe - also schreibe ich es lieber nochmal
    In meiner Hilfe gibts kein _stingreverse


    _stringreverse
    Es geht um den Autoitbefehl

    [autoit]

    _StringReverse()

    [/autoit]

    ....auch die beste Hilfe kann mit Fehlern in der Rechtschreibung keine Ergebnisse finden....
    Gib den Befehl einfach in Scite ein, wenn es keine Vorschläge über die Schreibweise gibt und auch der Befehl nicht farbig als AutoIt-Befehl angezeigt wird, dann hast du mit Sicherheit einen Rechtschreibfehler drin...
    ciao
    Andy

  • Progressbar in taskleiste (Win 7)

    • Andy
    • 18. Oktober 2009 um 23:07

    Wenns nur um die Anzeige einer "Progressbar" im Trayicon geht, darüber gibts zumindest einen Thread
    Auf diese Art und Weise lassen sich die Icons ja beliebig animieren. Wers braucht......

  • 'Ersatz'-Signatur

    • Andy
    • 18. Oktober 2009 um 14:45

    Sehr schön, vielen Dank!
    Das könnte ja zu einer "allgemeinen" Sammlung ausgebaut werden, das war doch von einigen Usern vor längerer Zeit sowieso mal angedacht.
    Wenn jeder der "TOPTEN" hier im Forum Bugfixens Beispiel mit diesem Thread folgt und DANN auch noch jemand alle diese Threads in einen "Links zu Beispielen der TOPTEN-AutoIt´ler" (natürlich sticky auf der ersten Seite bei den Links der dt. Hilfe) zusammenführen würde, könnte man sicher etliche der "wie geht XY" -Fragen mit einem simplen RTFSUT (Read The Fu***** Super User Thread) beantworten.
    Ggf könnte man auch aus der deutschen Hilfe zu einigen Beispielen hier direkt verlinken.

  • In einer Datei eine Zahl hochrechnen (+1)

    • Andy
    • 17. Oktober 2009 um 17:28

    @arkaneus...yepp, aber wenn man zu faul ist um die genaue Syntax nachzuschlagen macht mans "zu Fuß"^^

  • In einer Datei eine Zahl hochrechnen (+1)

    • Andy
    • 17. Oktober 2009 um 14:04
    Spoiler anzeigen
    [autoit]

    #include <Array.au3>

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

    #NoTrayIcon

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

    Global $File, $AnzDownloads, $DownloadFile[90000][5]

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

    #include <GUIConstantsEx.au3>

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Download Hinzufügen", 408, 235, 193, 125)
    $Group1 = GUICtrlCreateGroup("Download Hinzufügen:", 0, 32, 410, 169)
    $Input1 = GUICtrlCreateInput("Download Manager", 208, 40, 121, 21)
    $Input2 = GUICtrlCreateInput("DowMan", 208, 72, 121, 21)
    $Input3 = GUICtrlCreateInput(".exe/.rar/.zip/.tar.gz", 208, 104, 121, 21)
    $Input4 = GUICtrlCreateInput("/downloads/", 208, 136, 121, 21)
    $Input5 = GUICtrlCreateInput("*", 208, 168, 121, 21)
    $Label1 = GUICtrlCreateLabel("Endzeichen (Wird nicht angezeigt):", 8, 176, 169, 17)
    $Label6 = GUICtrlCreateLabel("Restliche URL wo der Download liegt:", 8, 144, 184, 17)
    $Label2 = GUICtrlCreateLabel("Die Dateiendung (z.B. DownMan.exe)", 8, 112, 183, 17)
    $Label3 = GUICtrlCreateLabel("Programm Name (Auf Ihrem Server):", 8, 80, 173, 17)
    $Label4 = GUICtrlCreateLabel("Download Name (Dient zur Orientierung):", 8, 48, 197, 17)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Label5 = GUICtrlCreateLabel("Download Manager - Download Hinzufügen", 8, 0, 379, 27)
    GUICtrlSetFont(-1, 12, 400, 4, "Arial Black")
    $Button1 = GUICtrlCreateButton("Hinzufügen", 128, 208, 163, 25, 0)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $msg = GUIGetMsg()
    If $msg=$GUI_EVENT_CLOSE Then
    Exit
    EndIf

    If $msg=$Button1 Then

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

    $dateiinhalt=FileRead(@ScriptDir&"\datei.txt") ;Dateiinhalt in einen string
    $array=stringsplit($dateiinhalt,@crlf,3) ; dateiinhalt zeilenweise ins Array
    $reg=stringregexp($array[0],"\d",1) ;die Zahl in der ersten Zeile finden
    $array[0]=number($reg[0])+1 ;erste zeile um eins erhöhen
    $dateiinhalt=_ArrayToString($array,@crlf) ;alles wieder in einen String
    filedelete(@ScriptDir&"\datei.txt")
    FileWrite(@ScriptDir&"\datei.txt", $dateiinhalt)
    FileWriteLine(@ScriptDir&"\datei.txt", "")
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input1))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input2))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input3))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input4))
    FileWriteLine(@ScriptDir&"\datei.txt", GUICtrlRead($Input5))
    EndIf

    WEnd

    [/autoit]
  • Splashtext und Hotkey

    • Andy
    • 17. Oktober 2009 um 13:37

    Hi,
    bei mir funktionieren beide Beispiele......ggf solltest du genauer beschreiben, was das Script eigentlich machen soll....

  • Text aus Zwischenablage zeichenweise lesen

    • Andy
    • 17. Oktober 2009 um 12:07

    mit dem Quelltext meinte ich eigentlich den Text mit der Artikelnummer^^

  • Text aus Zwischenablage zeichenweise lesen

    • Andy
    • 17. Oktober 2009 um 11:13

    Hi,
    peethebee

    Zitat

    bin ein Noob in Sachen Programmierung

    Zitat

    dann StringRegExp und du hast die Nummer

    in Köln würde man sagen "dau bis ene fiese Möpp" :D
    @gnArfL
    kopier einfach die 10 Zeilen aus dem Quelltext hierher, damit wir sehen um was es geht.
    ciao
    Andy

  • Splashtext und Hotkey

    • Andy
    • 17. Oktober 2009 um 11:02
    [autoit]


    hotkeyset("{ESC}","hotkey_ende")
    global $hotkey_ende=0

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

    while 1
    wend

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

    Func HotKey_Ende()
    If bitnot($hotkey_ende) = 0 Then
    SplashTextOn("Ausschalten", "Rechner wird anschließend heruntergefahren", 110, 70, Default, Default, 1, "", 9)
    Else
    SplashTextOn("Programm Beenden", "Rechner bleibt anschließend im Betrieb", 110, 70, Default, Default, 1, "", 9)
    EndIf
    Sleep(2000)
    SplashOff()
    $hotkey_ende=bitnot($hotkey_ende) ;0, -1, 0, -1, 0, -1....
    EndFunc

    [/autoit]

    /*EDIT*/ vieeeel zu langsam^^, ich sollte mir abgewöhnen, zwischen dem Schreiben der Antwort und dem Abschicken Kaffee zu kochen :rofl:

  • UDP Problem

    • Andy
    • 17. Oktober 2009 um 10:46

    Hi,
    UDP in der "einfachen" Ausführung ist aber auch nicht dafür gedacht, den 100%igen Empfang der gesendeten Daten beim Empfänger zu gewährleisten! Verlorengegangene Pakete werden anders als bei TCP auch nicht wieder angefordert, ausserdem muss bei dem Empfänger die Reihenfolge der empfangenen Daten nicht unbedingt so sein wie sie abgeschickt wurden....für Anwendungen wie Sprachübertragungen z.B. ist das alles völlig schnurz, da kommts nur auf den "Speed" an, minimale Fehler bei der Übertragung sind unerheblich.
    Andy

  • hostname

    • Andy
    • 17. Oktober 2009 um 01:46

    Also ich habe mit http://80.156.86.87/ kein Problem, das ist wohl ein t-online upgradeserver...

  • hostname

    • Andy
    • 16. Oktober 2009 um 21:51

    Hi,

    Zitat

    Wenn ich aber nun die hostadresse als url eingebe

    Wo gibst du was als URL ein?

    Zitat

    komme ich nie auf die angepingte seite

    Wer hat bisher gepingt?

    Zitat

    habe ich was falsch gemacht?

    Ich würde dir ja gerne helfen, aber leider hat meine Glaskugel heute ihren freien Tag, und da gehen die immer Kartenspielen, jedenfalls dauerts lange bis die wieder bei mir ist und bis dahin wären einige weitere Informationen ggf nützlich!

    ciao
    Andy

  • Hackersimulation schreiben

    • Andy
    • 16. Oktober 2009 um 16:09

    Hi,
    Script extrem gekürzt und die "richtige" Matrix-Optik eingebaut....

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Outfile=Simulation.exe
    #AutoIt3Wrapper_UseUpx=n
    #AutoIt3Wrapper_Change2CUI=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <Array.au3>
    #include <String.au3>
    #include <Misc.au3>
    ;~ Das Alles So Lassen
    ;~ Also Nichts Ändern

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

    Opt('MustDeclareVars', 1)

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

    Local $matrixmode, $dll, $fallend, $Kerne, $leerstring, $objItem, $objWMIService, $Prozessor, $sleep, $colItems, $takt, $timer, $pos
    Global $dosboxzeilen, $stars, $stars1, $anzahlsternchen, $sKennwort

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

    $sKennwort = "Weist du Nicht!"; <-- Das "Fake"- Kennwort
    $matrixmode = 0
    If $cmdline[0] <> 0 Then
    ; _ArrayDisplay($cmdline)
    For $i = 1 To $cmdline[0] ;alle parameter durchgehen
    If StringLeft($cmdline[$i], 3) = "/p=" Then ;passwort gesetzt
    $sKennwort = StringTrimLeft($cmdline[$i], 3)
    EndIf

    If StringLeft($cmdline[$i], 3) = "/m=" Then ;Matrixmodus gesetzt
    $matrixmode = Int(Number(StringTrimLeft($cmdline[$i], 3)))
    If $matrixmode < 0 Or $matrixmode > 1 Then $matrixmode = 0
    EndIf

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

    If StringLeft($cmdline[$i], 3) = "/h" Or StringLeft($cmdline[$i], 3) = "/?" Then ;passwort gesetzt
    ConsoleWrite("Parameter:" & @CRLF)
    ConsoleWrite(" /p=[Passwort] beliebiges Passwort eingeben" & @CRLF)
    ConsoleWrite(" /m=[0/1] 0 es faellt nur ein Buchstabe" & @CRLF)
    ConsoleWrite(" 1 es faellt eine Reihe mit Buchstaben" & @CRLF)
    ConsoleWrite(" /h oder /? dieser Hilfetext" & @CRLF & @CRLF)
    ConsoleWrite("Beispiel: Simulation.exe /m=0 /p=TestPassWort" & @CRLF)
    Exit
    EndIf
    Next

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

    EndIf

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

    $dll = DllOpen("user32.dll"); für _ispressed()

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

    $stars = _StringRepeat("*", StringLen($sKennwort)) ;Kennwort mit Sternchen auffüllen
    $leerstring = _StringRepeat(" ", StringLen($sKennwort))
    $anzahlsternchen = StringLen($stars)
    $stars1 = $stars

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

    $dosboxzeilen = 25

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

    ;Taktfrequenz des Prozessors holen, je schneller, desto schneller "knackt" der Rechner das PW!
    ; by Oscar
    $objWMIService = ObjGet('winmgmts:\\localhost\root\CIMV2')
    $colItems = $objWMIService.ExecQuery('SELECT * FROM Win32_Processor', 'WQL', 0x30)
    If IsObj($colItems) Then
    For $objItem In $colItems
    $Prozessor = $objItem.Name
    $takt = $objItem.CurrentClockSpeed / 1000 ;Mhz
    $Kerne = $objItem.NumberOfCores
    Next
    EndIf

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

    $sleep = 4000 / $takt / $Kerne ;Wartezeit in ms
    ;ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sleep = ' & $sleep & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console

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

    $timer = TimerInit()

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

    ConsoleWrite(@CRLF & @CRLF & @CRLF)
    ConsoleWrite("--------------------------------------------------------------------------------" & @CRLF)
    ConsoleWrite("Das Passwort dieses Computers wird nun mittels der MATRIX-Methode entschlüsselt!" & @CRLF)
    ConsoleWrite("Prozessor: " & $Prozessor & " mit " & $takt & " Mhz und " & $Kerne & " Kernen" & @CRLF)
    ConsoleWrite("Drücken Sie bitte die Leertaste, um das Passwort zu entschlüsseln..." & @CRLF)
    ConsoleWrite("--------------------------------------------------------------------------------" & @CRLF)
    While 1
    If _IsPressed("20", $dll) Then ExitLoop
    If _IsPressed("0D", $dll) Then
    ConsoleWrite("Die Leertaste ist die lange Taste unten an der Tastatur, auf der KEINE " & @CRLF & "Buchstaben stehen!" & @CRLF)
    ConsoleWrite("Das üben wir nochmal...zur Strafe 10 Sekunden warte n!" & @CRLF)
    Sleep(10000)
    ConsoleWrite("Dann probieren wir es nochmal...." & @CRLF & @CRLF)
    ConsoleWrite("Bitte die Leertaste drücken!" & @CRLF)
    EndIf

    WEnd

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

    dim $array[$dosboxzeilen + 1]

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

    For $i = 1 To $dosboxzeilen-1
    $array[$i] = $leerstring
    Next
    $array[$dosboxzeilen] = $stars1 ;in der letzten Zeile steht das Passwort

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

    While 1
    For $x = $dosboxzeilen - 1 To 2 Step -1 ;push
    $array[$x] = $array[$x - 1]
    Next
    $pos = Random(1, StringLen($stars), 1) ;zufällige Position im String suchen und Buchstabe merken
    $array[1] = StringReplace($leerstring, $pos, Chr(64 + Random(1, 60, 1)))

    For $i = 1 To $dosboxzeilen ; Sternchen fallen lassen a la Matrix^^
    If $array[$dosboxzeilen - 1] = $leerstring and $array[$dosboxzeilen - 2] <> $leerstring then ;wenn die buchstaben unten angekommen sind , adlibenable starten
    AdlibEnable("sleeptime", $sleep) ;je schneller der Rechner, desto öfter wird die Funktion aufgerufen, um das Passwort zu entschlüsseln
    endif
    ConsoleWrite( $array[$i] & @CRLF)
    Next
    Sleep(200)

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

    If $stars = $sKennwort Then ExitLoop ;raus wenn passwort "geknackt"
    WEnd
    For $i = 1 To $dosboxzeilen ; sicherheitshalber das Passwort zeigen, adlibenable könnte das passwort bereits fertig haben aber es wurde noch nicht dargestellt
    ConsoleWrite( $array[$i] & @CRLF)
    Next
    ConsoleWrite(@CRLF & @CRLF & "Password erfolgreich geknackt in " & StringFormat("%.2f", TimerDiff($timer) / 1000) & " Sekunden! " & @CRLF)
    ConsoleWrite(@CRLF & @CRLF & "Zum Anzeigen der Startparameter bitte das Programm mit /h oder /? aufrufen." & @CRLF & @CRLF)

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

    Func sleeptime()
    do
    $pos = Random(1, StringLen($stars), 1) ;zufällige Position im String suchen und Buchstabe merken
    until stringmid($stars,$pos,1)="*" ;nur wenn an $pos ein Sternchen ist
    $stars = StringLeft($stars, $pos - 1) & StringMid($sKennwort, $pos, 1) & StringRight($stars, StringLen($stars) - $pos) ;Buchstabe an die richtige Position, Passwort "entschlüsseln"
    $array[$dosboxzeilen] = $stars
    ; ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $stars = ' & $stars & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
    EndFunc ;==>sleeptime

    [/autoit]


    Soll da noch der Matrix-Sound dazu? Hätte den grade da...^^

  • Zeilenumbruch bei StringSplit

    • Andy
    • 16. Oktober 2009 um 14:25
    Zitat

    Das heißt, du musst bei StringSplit per letztem Parameter die Anweisung geben, nur dann zu splitten, wenn die Zeichen (hier @CRLF) gemeinsam auftreten

    Da ich das bei mir gemacht habe, gabs auch das Problem nicht 8o
    Man sollte also immer seinen funktionierenden Code posten...... :P

    [autoit]

    #include <Array.au3>
    $a=stringsplit(fileread("test.bin"),@crlf,3) ;deine angehängte Textdatei
    _arraydisplay($a)

    [/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™