rechte Maustaste deaktivieren

  • Hallo zusammen,

    ich habe mir ein kleines Script zusammengebastelt um auf Kioskrechnern bei uns im Haus eine Flash Präsentation aufzurufen die in einem Unterverzeichnis liegt..
    Der Grund für das Script ist das ich verrsuche auf diesem Weg gewisse Dinge zu unterbinden, zum einen das die Präsentation mit ESC abgeschalten werdne kann und zum zweiten sollte noch die rechte Maustaste deaktiviert werden.

    Die ESC Taste konnte ich via Hotkey gut lösen, allerdings für das deaktivieren der rechten Maustaste finde ich absolut keine Lösung.

    [autoit]

    HotKeySet("{ESC}","Abbruch")

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

    $fileplace = @ScriptDir & "\SWF\"

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

    $search = FileFindFirstFile($fileplace & "*.exe")

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

    While 1
    $file = FileFindNextFile($search)
    If @error Then ExitLoop
    $PID1 = Run($fileplace & $file, "", @SW_MAXIMIZE)

    ProcessWaitClose($PID1)
    WEnd
    FileClose($search)

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

    Run(@ScriptDir & "\swfplay.exe")

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

    ;ESC deaktivieren
    Func Abbruch()
    EnvSet("Abbruch",1)
    EndFunc

    [/autoit]

    Der nochmalige Aufruf meines Scriptes in Zeile 16 ist zur sicherheit eingebaut falls sich die Präsentation unerwartet beenden sollte.

    Danke
    Gruß Waro

  • BlockInput()
    damit kann man eingaben verhindern.

    Aber leider nicht bestimmen das z.b nur die rechte Moustaste nicht geht

    • Offizieller Beitrag

    Hi,

    guck dir mal _IsPressed an, dann einfach rechte Maustaste auswählen und nichts machen.

    [autoit]

    #include <Misc.au3>

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

    $dll = DllOpen("user32.dll")

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

    While 1
    Sleep ( 250 )
    If _IsPressed("02", $dll) Then
    MsgBox(0,"_IsPressed", "End Key Pressed")
    ExitLoop
    EndIf
    WEnd
    DllClose($dll)

    [/autoit]

    So long,

    Mega

  • die Variante mit _IsPressed klingt zwar gut aber scheinbar gibt es da ein Problem mit Flash.
    dummerweise ist bei einer Flash Datei ja die rechte Maustaste mit diversen Menüs versehen die eine Veränderung des SWFs zulassen.
    Und so wie es aussiehtlässt sich ausser bei der Erstellung der flashdatei da sonst keine Änderung durchführen.

    die Variante mit BlockInput() funktioniert leider auch nicht weil es interaktivr SWF sind die immer wieder eingaben von den Benutzern fordern.

    Gruß Waro

  • ich möchte zum einen unterbinden das die SWF Präsentation die im Vollbildmodus läuft mit ESC unterbrochen werden kann (der Teil funktioniert auch bereits).
    Und zum zweiten das die Benutzer die rechte Maustaste nutzen können. Da mittels der rechten Maustaste bei einer laufenden SWF Datei diverse Änderungen gemacht werden können.
    Und eben der 2te Teil funktioniert mit 2IsPressed" nicht da die funktionen der rechten Maustaste in einer SWF Datei standardmässig vorgegeben sind.

    Diese Funktionalitäten könnten zwar grundsätzlich beim erstelle nder Flashfiles unterbunden werden, aber leider sind die SWF von externer Seite erstellt wordne und ich kenne keine Möglichkeit das nachträglich zu editieren.

    Daher eben meine Frage ob da jemand eine Idee hat wie ich das steuern könnte.

    Gruß Waro

  • wie schon geschrieben, wenn ich das von dir geschriebene IfPressed ausprobiere funktioniert es prima, aber ich schaffe es grade irgendwie nicht das so in mein vorher gepostetes Script mit einzubinden das es innerhalb der Präsentation angesprochen wird.

  • hallo


    steh ich aufm schlauf oder wie?

    ich wusste garnicht das man mit ispressed die tastatur abfangen kann!?!

    :hm:


    bei mir gehts auf jeden fall nicht :(


    was du aber machen könntest wäre das du bei einem rechtsklick sofort einen linksklick hinterhersendest

    ware aber dann blöd wenn du deine präsentation über die maus steuerst.


    hth

    derda

  • Zitat

    Original von th.meger
    Hi,

    das ist doch kein Problem. Ist das im 1.sten Post alles?

    Dann baue ich es ein.

    So long,

    Mega

    jupp das ist alles was ich da im ersten Post eingefügt hab :)

    • Offizieller Beitrag

    Hi,

    nur die Rechte Maustaste zu deaktivieren scheint ziemlich kompliziert. Mir ist bisher keine Lösung eingefallen.

    Dein Skript von oben würde ich so kürzen:

    [autoit]

    HotKeySet('{ESC}', 'doNothing')

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

    Global $pathToFlash = @ScriptDir & '\', $exe = 'swfplay.exe'

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

    While 1
    Sleep(500)
    If Not ProcessExists($exe) Then Run($pathToFlash & $exe, @ScriptDir, @SW_MAXIMIZE)
    WEnd

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

    Func doNothing()
    EndFunc ;==>doNothing

    [/autoit]

    So long,

    Mega