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

Beiträge von zemkedesign

  • RunAsWait verwenden

    • zemkedesign
    • 20. November 2008 um 08:23
    [autoit]

    RunAsWait("admin", @ComputerName, "passwort", 0, "\\Server\freigabe\ricoh.cmd " & Chr (34) & $drucker2 & Chr (34) & " " & Chr (34) & $drucker3 & "oemsetup.inf" & Chr (34) & " " & Chr (34) & "IP_" & $drucker4 & Chr (34), @SystemDir)

    [/autoit]


    \\Server\freigabe\ sollte das Problem lösen (Zugriffsrechte müssen natürlich bestehen...)

  • Eigener Style der Progressbar

    • zemkedesign
    • 20. November 2008 um 06:47

    Erstell dir die einzelnen Bilder für jede Prozentzahl, die du anzeigen möchtest und dann kannst du anstatt Progressbar zu verwenden GUICtrlCreatePic nutzen.

  • Tastenkombination aufzeichnen

    • zemkedesign
    • 19. November 2008 um 18:38

    Ich hab mich dann doch selbst rangemacht und rausgekommen ist folgendes:

    1) Script starten
    2) Tastenkombi (kann aus ALT, Strg, Shift, 0-9, A-Z bestehen) drücken und loslassen
    3) gedrückte Tastenkombi wird angezeigt.


    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #include <Misc.au3>

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

    $keys = get_key_kombi()
    _ArrayDisplay($keys, "Hex-Werte der Tasten-Kombi")

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

    Func get_key_kombi()

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

    Local $keys_pressed_count = 0
    Local $keys_pressed = ""
    Local $return[1]

    While 1

    ;Anzahl und Tasten ermitteln
    $array = get_key($keys_pressed)

    ;neue Taste gedrückt
    If $array[0] > $keys_pressed_count Then $keys_pressed &= $array[1]

    ;aktuell weniger gedrückt, als im Durchlauf zuvor
    If $array[0] < $keys_pressed_count Then ExitLoop

    ;aktuell gedrückte Tasten zwischenspeichern
    $keys_pressed_count = $array[0]

    WEnd

    ;Rückgabe
    $return[0] = $keys_pressed_count ;Anzahl gedrückter Tasten
    For $i = 1 To StringLen($keys_pressed) Step 2
    _ArrayAdd($return, StringMid($keys_pressed, $i, 2)) ;Tasten teilen
    Next

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

    Return $return

    EndFunc

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

    Func get_key($ignored_keys = "")

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

    Local $return[2]
    Local $keys[39]
    #Region keys

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

    $keys[0] = "10" ;{LSHIFT}"
    $keys[1] = "11" ;{LCTRL}"
    $keys[2] = "12" ;{ALT}"
    $keys[3] = "30" ;0"
    $keys[4] = "31" ;1"
    $keys[5] = "32" ;2"
    $keys[6] = "33" ;3"
    $keys[7] = "34" ;4"
    $keys[8] = "35" ;5"
    $keys[9] = "36" ;6"
    $keys[10] = "37" ;7"
    $keys[11] = "38" ;8"
    $keys[12] = "39" ;9"
    $keys[13] = "41" ;A"
    $keys[14] = "42" ;B"
    $keys[15] = "43" ;C"
    $keys[16] = "44" ;D"
    $keys[17] = "45" ;E"
    $keys[18] = "46" ;F"
    $keys[19] = "47" ;G"
    $keys[20] = "48" ;H"
    $keys[21] = "49" ;I"
    $keys[22] = "4A" ;J"
    $keys[23] = "4B" ;K"
    $keys[24] = "4C" ;L"
    $keys[25] = "4D" ;M"
    $keys[26] = "4E" ;N"
    $keys[27] = "4F" ;O"
    $keys[28] = "50" ;P"
    $keys[29] = "51" ;Q"
    $keys[30] = "52" ;R"
    $keys[31] = "53" ;S"
    $keys[32] = "54" ;T"
    $keys[33] = "55" ;U"
    $keys[34] = "56" ;V"
    $keys[35] = "57" ;W"
    $keys[36] = "58" ;X"
    $keys[37] = "59" ;Y"
    $keys[38] = "5A" ;Z"

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

    #EndRegion

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

    For $i = 0 To 38
    If _IsPressed($keys[$i]) Then
    ;Anzahl gedrückter Tasten erhöhen
    $return[0] += 1
    ;Taste wurde noch nicht schon einmal gedrückt
    If StringInStr($ignored_keys, $keys[$i]) = 0 Then $return[1] &= $keys[$i]
    EndIf
    Next

    Return $return

    EndFunc

    [/autoit]
  • Tastenkombination aufzeichnen

    • zemkedesign
    • 19. November 2008 um 10:40

    zu 1) ja verstehe ich. Deswegen hab ich schon versucht klarzumachen, dass ich die Geschichte für ein "normales" Tool brauche.
    zu 2) per GUI gehts leider nicht, da die Tastenkombinationen nicht von der Tastatur kommen, sondern von einer Fernbedienung. Bei der Fernbedienung ist nicht klar, welche Taste simuliert wird, wenn man auf einen Knopf der Fernbedienung gedrückt wird.

    Dann muss ich doch allein ran.

  • Tastenkombination aufzeichnen

    • zemkedesign
    • 19. November 2008 um 08:54

    Hallo zusammen,

    mit _IsPressed() kann ich prüfen, ob eine bestimmte Taste gedrückt wurde.
    Nun möchte ich gern ermitteln, welche Taste gedrückt wurde.

    Hintergrund ist, dass ich gern die gedrückte Taste(-nkombination) "aufnehmen" und einer Aktion zuordnen möchte.

    Mit _IsPressed() kann ich zwar alle Tasten nacheinander prüfen, ob diese gedrückt wurde. Aber wie schaut es z.B. mit Strg+A aus?

    Gibt es da eine UDF oder muss ich selbst ran?

    Gruß

  • Date-Input 2

    • zemkedesign
    • 14. November 2008 um 06:55

    Das Script funktioniert wesentlich besser und nutzerfreundlicher als das von Bugfix. :thumbup:

    Habe noch zwei Vorschläge:
    Wenn ich folgende Zeichenfolge eingebe, sollte das Script die Zahlen automatisch richtig verteilen:
    010203 (d.h. nach 2 eingegebenen Zahlen im Tag- und Monatsfeld Cursor ins nächste Feld)
    1.1.01 (d.h. mit Eingabe eines Punkts sollte der Cursor auch ins nächste Feld gesetzt werden.

  • "o" im Script wird einfach überlesen?

    • zemkedesign
    • 14. November 2008 um 06:47
    [autoit]

    $fenstername = "Arcsoft Total MediaTheatre"
    WinWait($fenstername)
    If Not WinActive($fenstername) Then WinActivate($fenstername)
    WinWaitActive($fenstername)
    Sleep(100)

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

    ; Wiedergabe stoppen
    Send("{o}")

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

    ; TotalMedia Theatre beenden
    ProcessClose("uDigital Theatre.exe")

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

    Sleep(1000)

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

    ; Auflösung auf 50Hz stellen
    send("^+5"); = CTRG + SHIFT +5

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

    ; DVBViewer starten
    Run("C:\Program Files\DVBviewer\dvbviewer.exe")

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

    Exit

    [/autoit]
  • "o" im Script wird einfach überlesen?

    • zemkedesign
    • 13. November 2008 um 15:26

    Probier es mal wie es der Scriptwriter vorschlägt:

    [autoit]

    $fenstername = "Fenster"
    WinWait($fenstername)
    If Not WinActive($fenstername) Then WinActivate($fenstername)
    WinWaitActive($fenstername)
    Sleep(100)
    Send("o")

    [/autoit]

    Vorher minimierst du dein Programm um zu sehen, ob AutoIt es auch wirklich findet und in den Vordergrund bringt.

  • While und Sleep...

    • zemkedesign
    • 13. November 2008 um 11:27

    Ich hoffe dein Passwort ist nicht n8tisch! ;)

    Ist zwar nicht ganz entscheidend, aber mit Passwörtern sollte man sensibel umgehen.

  • "o" im Script wird einfach überlesen?

    • zemkedesign
    • 12. November 2008 um 16:00

    Ich denke mal wenn du das Script aufrufst, werden die Send-Befehle direkt gesendet und das Zielfenster ist noch nicht aktiv.
    Füge mal am Anfang des Scripts ein Sleep(5000) ein, starte das Script und klicke in deinem Programm manuell Pause. Dann sollte es zumindest nicht am Focus liegen.

  • "o" im Script wird einfach überlesen?

    • zemkedesign
    • 12. November 2008 um 14:49

    Schau dir mal WinActivate an.

  • Textfile in Number auslesen

    • zemkedesign
    • 12. November 2008 um 12:06
    [autoit]

    Const $dateiname = "datei.txt"

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

    $zeile = FileReadLine($dateiname) ;Zeile wird aus Datei gelesen
    $zeile += 1 ;gelesene Zahl wird um 1 erhöht
    $dateihandle = FileOpen($dateiname, 2) ;Datei wird zum Schreiben geöffnet und der Inhalt wird gelöscht
    FileWriteLine($dateihandle, $zeile) ;neue Zahl wird in Datei geschrieben
    FileClose($dateihandle) ;Datei wird geschlossen

    [/autoit]
  • Autoit lernen.

    • zemkedesign
    • 11. November 2008 um 20:01

    Firmenbedingt musste ich mich mit AutoIt beschäftigen, da das IT-Zentrum der Bundeswehr ebenfalls mit AutoIt Scripte programmiert.

  • User - Date Input

    • zemkedesign
    • 11. November 2008 um 15:39

    Ich öffne dein Testtool und klicke mit der Maus in das zweite Feld (egal an welche Stelle) und schon kann ich nichts mehr eintippen.

    Ich öffne dein Testtool und klicke mit der Maus und trage 01.02.2000 ein, setze den Cursor anschließend zwischen 0 und 1 und drücke entfernen. Damit werden die folgenden Stellen eingerückt und zeigen ein völlig anderes Datum.


    Insgesamt finde ich den Umgang sehr ungewohnt und nicht intuitiv für den Nutzer. Ich persönlich finde führende Nullen in einem Ausdruck wesentlich schöner als ein Datum wie 4.5.2000, aber die Eingabe eines solchen Datum sollte schon möglich sein.

  • Falsche Eingaben abfangen

    • zemkedesign
    • 7. November 2008 um 11:21
    [autoit]

    Case $nmsg = $button1
    $zahl1 = GUICtrlRead($input1)
    If $zahl1 > 50 then
    MsgBox(0, "Hinweis", "Bitte nicht größer als 50!")
    Else
    ;hier wird sonst etwas ausgeführt, wenn der Wert korrekt ist
    EndIf

    [/autoit]

    Warst doch fast richtig.

  • Falsche Eingaben abfangen

    • zemkedesign
    • 7. November 2008 um 11:03

    Wie sieht denn dein Script aus, wo du bei Fehleingabe das gesamte Script beendest?
    Der Quellcode, den du gepostest hast, tut das nämlich nicht ;)

  • PixelChecksum abfragen ob sich etwas geändert hat

    • zemkedesign
    • 6. November 2008 um 06:32

    Ich hatte mal zwei Funktionen geschrieben, die dir vielleicht helfen:

    [autoit]

    ;gibt ein 2D-Array mit allen Farbpixeln zurück
    ;x & y: linke obere Ecke
    ;w + h: Ausdehnung
    ;Prozent der Genauigkeit: 100->jeder Pixel wird geprüft; 50->jeder zweite Pixel wird geprüft
    Func get_colormap($x, $y, $w, $h, $prozent = 100)

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

    Local $arr[$w][$h]

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

    For $i = $x To ($x + $w - 1) Step Round(100 / $prozent)
    For $j = $y To ($y + $h - 1) Step Round(100 / $prozent)
    $arr[$i - $x][$j - $y] = PixelGetColor($i, $j)
    Next
    Next

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

    Return $arr

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

    EndFunc

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

    ;Vergleicht 2 Colormaps und gibt True/False zurück
    ;True: Maps sind gleich in jedem Pixel
    Func compare_colormaps($map1, $map2)

    Local $gleich = True

    For $i = 0 To UBound($map1, 1) - 1
    For $j = 0 To UBound($map1, 2) - 1
    If $map1[$i][$j] <> $map2[$i][$j] Then
    $gleich = False
    ExitLoop
    EndIf
    Next
    If Not $gleich Then ExitLoop
    Next

    Return $gleich

    EndFunc

    [/autoit]
  • Ping befehl funktioniert nicht

    • zemkedesign
    • 5. November 2008 um 15:09

    Viele Webserver weisen einen Ping ab. So wirds auch in deinem Fall sein. Ping funktioniert nicht und der Webserver ist trotzdem ansprechbar.

  • Autoit.de Spoiler-Reader V2.4

    • zemkedesign
    • 5. November 2008 um 13:02
    [autoit]

    Local $handle = WinGetHandle("Internet Explorer","autoit")

    [/autoit]

    Damit ist es nicht nutzbar für mich ;)

  • Downloader

    • zemkedesign
    • 5. November 2008 um 10:48
    [autoit]

    $oIE = _IECreate(InputBox ("URL", "..."))

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