DromEd (Strg+V)?

  • Liebes Forum, wertes AutoIT

    Ich poste hier, weil ich mich hier nicht auskenne und erst noch herausfinden muß, welcher Thread hierfür geeignet ist. Mir geht's um folgendes:

    Ich mache gerade meine ersten Schritte im Leveleditor DromEd von dem Spiel "Thief - Dark Project" (1998). DromEd's Interface bietet jedoch von Hause aus keine Möglichkeit, Werte über die Zwischenablage einzufügen, sodaß die Eingabe stets manuell erfolgen muß. Nun frage ich mich, ob man nicht mit AutoIT hier anknüpfen könnte und wenn, wie? Seltsam ist auch, daß, während der Installation des Spiels keine Werte in die Registrierdatenbank eingetragen werden. Es läuft praktisch portable. Wenn man das irgendwie hinbekommen könnte, Werte in anderer Form (Hauptsache nicht manuell) in den Editor einzufügen, wäre sicherlich einige FM-Autoren geholfen.

    [Blockierte Grafik: http://i.imgur.com/72fSJzf.jpg]

    Greets,
    brush

  • Zu Send empfehle ich dir in der Hilfe die Kapitel:

    • AutoIt Fenster-Informations-Tool (AU3Info)
    • Fenster-Titel und -text (Grundlagen)
    • Fenster-Titel und -Text (erweitert)
    • Controls

    durchzulesen und die Tutorials:

    • Tutorial - Notepad
    • Tutorial - WinZip

    durch zu arbeiten. Eine Alternative zu Send sind die Cpntrol***-Funktionen wie .B.:

    [autoit]

    Controlsend
    ControlSetText

    [/autoit]

    mfg autoBert

  • Vielen Dank,

    "AutoIt Window Info Tool" liefert einige Informationen (keine Controls).
    [Blockierte Grafik: http://i.imgur.com/DK7wnlv.jpg]

    Nachdem ich empfohlende Tutorials durchgearbeit habe, übrigens sehr interressant, kann ich DromEd über ein Skript starten (mehr leider noch nicht).

    Zitat

    Ich würde erstmal einfach testen mit HotKeySet Beispiel und dann SEND(...) einfach irgendwas senden und gucken ob es ankommt.

    Im Moment weiß ich einfach nicht, an was ich etwas senden könnte.

    Wie geht's weiter? :)

  • Da Send immer an das aktive Fenster sendet mit WinActivate sollte das Fenster nicht aktiviert sein wird es aktiviert. Um nicht zu früh zu senden folgt darauf ein WinWaitActive. Danach Send. Hast du den das Notepad-Tutorial durchgearbeitet oder nur überflogen?

    @Mod/Admin bitte nach Hilfe + Unterstützung verschieben,

    mfg autoBert

  • Zitat

    Hast du den das Notepad-Tutorial durchgearbeitet oder nur überflogen?

    Yap, gut gemacht und leicht verständlich. Ich denke/hoffe es im wesentlichen verstanden zu haben.

    Code:

    Spoiler anzeigen

    Run("C:\Games\T1\dromed.exe", "C:\Games\T1")
    WinWaitActive("DromEd Final 1.20 MSVC opt playtest")
    Send("game_mode") ; wechsel vom editor_mode in den game_mode


    Mich würde interessieren, welche "Zeichenfolge" man an das Fenster "senden" könnte, um z:B. die Konsole (Abb.1, Kästchen unten rechts) zu aktivieren? Dort werden üblicherweise "commands" eingegeben und in den "neun" anderen Feldern "Zahlen". Es scheint, als wenn sich der Focus gleich nach dem Start auf der 3D-Ansicht befindet. Mit den Hotkeys von DromEd kenne ich mich leider auch noch nicht so gut aus. :S

    Edit:
    DromEd startet, wechselt in die 3D-Ansicht und wieder zurück in die 4 Ansichten, wird beendet. Normalerweise führt "game_mode" aber den Wechsel Editor-Modus/Game-Modus durch und "Solo-View/Un-Solo" übernehmen diese Aufgabe.

    Code:

    Spoiler anzeigen

    Run("C:\Games\T2\DromEd2.exe", "C:\Games\T2")
    WinWaitActive("DromEd Final 1.20 MSVC opt playtest")
    Send("game_mode")
    Sleep(2500)
    Send("game_mode")
    Sleep(2500)
    WinClose("DromEd Final 1.20 MSVC opt playtest")

    Einmal editiert, zuletzt von brush (20. März 2013 um 17:10)

  • brush, wenn du die Hotkeys kennst, dann kannst du sie einfach auch mit Send senden.


    Angenommen, die Tasten-Kombination zum wechseln ist "ALT+C", und du möchtest anschließend "open" da reinschreiben, dann sollte das funktionieren.


    send("!copen");! bedeutet die ALT-Taste


    Sollte es damit nicht gehen, kannst du probieren die Zeit der gedrücken Funktionstaste zu erhöhen.
    send("{ALTDOWN}c{ALTUP}open")

    Besteht die Kombination aus mehr als drei Tasten, probiere die Dauer des Drückens pro Taste zu erhöhen (dazu schreibst du an Anfang deines Programmes

    Opt("SendKeyDownDelay", 10)
    ;10 Millisekunden für 3 Tasten, 15 Millisekunden für 4 Tasten, ect.