Control ID ändert sich ständig

  • Hallo Leute, vielleicht gibt es schon ein Thread dazu, leider habe ich den nicht gefunden.

    Ich wollte ein kleinen Script für mein TotalCommander schreiben, damit er mir die Einstellungen alle automatisch setzt.
    Jetzt kommt am Anfang, wenn man TotalCommander startet, drei Buttons auf die man klicken muss. Es hängt davon ab welche Zahl über den Buttons angezeigt wird, welchen Button gedrückt werden soll... bla bla bla ich weiß.

    Ich wollte es lösen in dem ich mit ControlGetText einsetze aber da ändert sich die ID ständig von dem Control.

    Habt ihr da eine Idee, was man noch machen könnte?

  • Hallo.

    Da muß ich Oscar und GtaSpider mal RECHT geben.
    Das Programm ist genial und auf jeden Fall die 26,- Euronen wert. Habe ich wirklich so viel Geld ausgegeben? ;)
    Bei mir steht "Win Commander", aber ich weiß auch gar nicht, ob das Update kostenpflichtig ist.

    Also, mal etwas Taschengeld opfern oder den Eltern die Notwendigkeit klar machen ;)

    Gruß, Crazy-A.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Das Programm kenne ich durchaus zu schätzen, ich verwende es nicht privat und die Firma wird ganz sicher nicht das Geld für aufbringen. Und da ich das Ding so an die 20x am Tag starte, wollt ich halt mit die Einstellungen ersparen...

    Außerdem interessiert mich der Code, wie ihr das lösen würdet...

    gruß remax

  • In einer Schleife den Inhalt aller Controls mit ControltGetText prüfen und wenn der Text dem benötigten Zahl entspricht ControlClick

  • Hey guter Ansatz, aber wie geh ich da genau vor. Die Control ID´s sind so in dem fünfstelligen bereich, da kann ich doch nicht mit einem Inkrement durchlaufen ;) das wird ein wenig lange dauern.
    Hilft es vielleicht mit ClassnameNN zu arbeiten? Was auch nun das ist.
    ClassnameNN ist "TPanel2" ist auch eindeutig nur einmal vergeben.

    gruß remax

    p.s. mein gegenwärtiger Code

    [autoit]

    ;Code Entfernt

    [/autoit]

    Sobald ich es ausführe krieg ich ein leeres MsgBox.

    Edit GtaSpider: Code entfernt, siehe letzen Post

    2 Mal editiert, zuletzt von GtaSpider (20. Juni 2008 um 15:36)

  • Es geht nicht mit Controlgettext, du musst es mit WinGetText machen.

    Das würde dann in etwa so aussehen

    Spoiler anzeigen
    [autoit]

    ;Code Entfernt

    [/autoit]

    Aber: Ich bin nicht überzeugt davon, ein Programm so zum laufen zu grigen, es is echt gut, kauf dirs 8)

    mfg anno2008

    Edit GtaSpider: Muss Schnuffel Recht geben. Wenn er unbedingt so ein Programm zum laufen kriegen will, dann soll er das bite selber machen!

    Einmal editiert, zuletzt von GtaSpider (20. Juni 2008 um 15:34)

  • So geht es auch:

    Spoiler anzeigen
    [autoit]

    ;Code Entfernt

    [/autoit]

    Würde es aber auch kaufen :)

    Edit GtaSpider: Auch hier Code entfernt

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

    Einmal editiert, zuletzt von GtaSpider (20. Juni 2008 um 15:34)

  • sorry, wenn ich das jetzt mal so sagen muß.
    Aber wenn das hier so weiter geht, dann bin ich wieder weg...

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)