Keyboard-Abfrage-Programm zum öffnen von verschiedenen Sachen per Eingabe

  • Ich hab mal nen kleines Programm geschrieben bei dem man per Eingabe mit Tastatur Dateien, Ordner, Internetseiten öffnen kann.
    ( bin bei vielen Sachen meist einfach zu faul die zu suchen, deshalb tip ich die jetzt einfach ein und schon sind sie da :-P)

    Dies geschieht in dem man einfach im laufenden Betrieb zuerst einen festlegbaren String, z.B. "open" eintippt und danach den Befehl ( einfach ohne Leerzeichen weiterschreiben )

    Hier mal der Code:

    [autoit]


    #Include <Misc.au3>
    #Include <File.au3>

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

    ; Don't change following:
    Dim $act_time_string = ""
    Dim $time_since_last_press = 0

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

    ; Can be canged:
    $config = @ScriptDir & "\config.ini"
    $keyword = "open"

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

    ;array besetzen und Größe festlegen
    $section_names = IniReadSectionNames( $config )
    $array_size = UBound( $section_names )

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

    While 1
    ;~ ToolTip($act_time_string,0,0)
    Sleep(10)
    _catch_keyboard()
    If TimerDiff( $time_since_last_press ) > 2000 Then
    $act_time_string = ""
    EndIf

    ;alle Abfragen aus der config
    For $i = 0 To $array_size -1
    If $keyword & $section_names[ $i ] = StringRight( $act_time_string, StringLen( $section_names[ $i ] ) + StringLen( $keyword ) ) Then

    ; Hier einfach die Sachen eintragen bei denen nichts ausgeführt werden soll ( z.B. weil dann unten in der 'Select Case' was gemacht werden soll )
    If Not StringRight( $act_time_string, StringLen( $section_names[ $i ] ) ) = "apple" _
    And Not StringRight( $act_time_string, StringLen( $section_names[ $i ] ) ) = "mac" Then
    ShellExecute( IniRead( $config, $section_names[ $i ], "execute", "" ) )
    EndIf

    Select
    Case StringRight( $act_time_string, StringLen( $section_names[ $i ] ) ) = "apple" Or StringRight( $act_time_string, StringLen( $section_names[ $i ] ) ) = "mac"
    MsgBox( 0, "", "You wanna have an apple?" )

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

    Case StringRight( $act_time_string, StringLen( $section_names[ $i ] ) ) = "browser"
    MsgBox( 0, "", "Wanna surf?" )

    Case StringRight( $act_time_string, StringLen( $section_names[ $i ] ) ) = "ausführen"
    MsgBox( 0, "", "Hier wird was ausgeführt und anschließend dies hier ausgegeben." )

    EndSelect

    $act_time_string = ""
    EndIf
    Next

    WEnd

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

    ;~ Funcs:
    #include "_catch_keyboard.au3"

    [/autoit]


    Das Programm holt seine Infos aus der in Zeile 10 angegebenen Ini-Datei.
    Um da alles leicht einzutragen hab ich noch mal ein kleines Programm angehängt (" read_in.au3" ).. da einfach oben den Befehl eintragen bei den was passieren soll und unten einen Ordner, ne Internetseite oder ein Programm eintragen was dann geöffnet/ausgeführt werden soll.

    Außerdem hab ich noch die "_catch_keyboard.au3" angehängt, welche in Zeile 54 includiert wird.

    In der 'Select Case' Anweisung kann man übr. noch zusätzlich Sachen eintragen die bei bestimmten Befehlen geshehen sollen, in der if Anweisung darüber kann man auch Ausnahmen einfügen, bei denen kein ShellExecute ausgeführt wird.


    Hoffe es gefällt euch :P
    Bei Fragen einfach fragen ;)
    Und wenn jmd dran rumbasteln will,nur zu ;)

    Edit:
    Eine Kleinigkeit noch:
    Das Programm führt einen Befehl aus, sobald dieser eingetippt wurde, soll heißen wenn man 2 Befehle hat z.B.: "arbeit" (soll ieinen Ordner von der Arbeit öffnen ) und "arbeitsplazt", dann wird, sobald der Befehl "arbeit" eingetippt wurde, der Ordner geöffnet, Arbeitsplatz kann so also nicht erreicht werden.
    Hab ich bisher noch nicht gefixt^^

    Einmal editiert, zuletzt von hundi (29. April 2009 um 11:50)

  • An sich saugeile Idee, gerade für nen so faulen Sack wie mich :D
    Aber das Programm reagiert nicht -_-
    Ich kann da eintippen was ich will und nix passiert...
    Hab Vista vllt liegts daran...

    Padmak

  • Also bei mir passiert auch gar nichts. :(

    Aber von der Idee her gut.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • wie gesagt.. da gibt es zwei Bestandteile die man eintippen muss.
    1. den Befehl der in Zeile 10 festgelegt wird ( Hier "open" ) und
    2. den Befehl den man in der Ini eingetragen hat

    Man tippt also z.B.: openiwas
    Das "iwas" ist dann das was in der Ini steht.

    Die Ini muss dazu auch in dem in Zeile 9 festgelegten Verzeichnis liegen.. in dem Fall @ScriptDir

    Wenn was in der Ini eingetragen wurde, am besten mit dem read_in Programm und ihr das mit dem "2 Sachen eintippen" beachtet habt dann weiß ich auch grad nicht^^

    P.S.:
    In Zeile 17 einfach auch mal den Tooltip einkommentieren um zu sehen was man geschrieben hat ;) ( kann sein das der nicht ganz jeden Tastenanschlag mitbekommt ) :P

  • Das ist dann so etwas wie eine "Autovervollständigung"?

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Ne ne Autovervollständigung besitzt das noch nicht.. sowas muss ich noch mal iwann machen^^ sobold das "open" eingetippt wurde fängt der an den string der eingetippt wird mit der ini zu vergleichen.. bei einem match startet er das unter diesem Befehl hinterlegte Programm/Ordner/Inetseite.