Hotkey und sendtext aus einer ini auslesen...

  • Nabend,
    nach einer langen pause melde ich mich auch mal wieder zurück war etwas länger als gedacht wech. Ich habe einer meiner probleme :)
    Undzwar: Ich möchte meinem Hotkey und eine reihe von sendbefehlen in einer ini immer editieren können bsp: ICh habe in der ini folgendes stehen

    Code
    "F1"  |   "Hier steht  Text"


    Die "!d" steht ja für Alt + d das sollte als Hotkey verwendet werden. Hinter dem senkrechten strich steht ein belibiger text in dem fall "Hier steht ein text" . Also sprich sollte aus der ini ausgelesen werden und in dem code eingebaut werden:

    [autoit]

    send("Hier steht Text ")

    [/autoit]


    WAs hat das für einen sinn?
    Ich möchte evl mehrere solche texte ausgeben bzw möchte ich nicht immer im code rumschrauben und möchte mir das bequem in einer ini ändern können. Sprich eine solche ini könnte evl so ausehen

    Code
    "F1"  |   "Hier steht  Text"
    "F2"  |   "Hier steht  Text"
    "F3"  |   "Hier steht  Text"


    (Der senkrechte strich sollte das nur unterteilen)
    Wie kann ich soetwas machen das er den Hotkey und den sendtext aus der ini ablesen kann?
    mfg Kangtar

    Einmal editiert, zuletzt von Kangtar (15. Januar 2009 um 18:42)

  • Hi

    Das Script:

    Spoiler anzeigen
    [autoit]

    Global $send = IniReadSection("send.ini", "send") ; lese INI in Array

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

    For $i = 1 To $send[0][0]
    HotKeySet($send[$i][0], "_start") ; setze alle Hotkeys
    Next

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

    While 1
    Sleep(100) ; Endlosschleife für Hotkey
    WEnd

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

    Func _start()
    For $i = 1 To $send[0][0] ; von 1 bis zu der Anzahl der Einträge der INI
    If ($send[$i][0] = @HotKeyPressed) Then ; Wenn der Hotkey der im Array $send vorne steht = der gedrückte Hotkey ist, dann ...
    ControlSend("", "", "", $send[$i][1],1) ; sende den Text der im Array $send hinter dem Hotkey steht
    ExitLoop ; und gehe aus der for-Schleife raus
    EndIf
    Next
    EndFunc ;==>_start

    [/autoit]

    Die INI

    (Name: send.ini ; selbes Verzeichnis wie Script)

    Code
    [send]
    !a=Das ist Alt + a :)
    {F2}=Hier steht  Text 2
    {F3}=Hier steht  Text 3

    Logischerweise Beliebig erweiterbar :).

    Einmal editiert, zuletzt von anno2008 (15. Januar 2009 um 18:36)

  • Hey anno,
    danke genau das habe ich gesucht. Zwar ist die ini anders aufgebaut aber das ist total egal. Da sage ich mal ein großes danke an dich.
    mfg Kangtar

  • Zwar ist die ini anders aufgebaut aber das ist total egal.


    Initialisierungs Dateien haben zwar keine Offizielle Norm d.h. die Formatierung ist eigentlich egal nur hat sich Microsoft (zumindest bei Windows) ein Standard erarbeitet, welcher sogar in der Win-API zu finden ist. Und der sieht so aus, wie anno es gepostet hat.

    Code
    [Sektion]
    Key=Value


    Bei Linux-Distributioen haben Ini-Dateien beispielsweise gar keine Sektion.