Prüfe welche Maustaste die Primäre ist

  • Hi,

    ich muss das KontextMenü von Windows verhindern, da ich nicht will, dass man hierrüber eine Datei einfach kopieren kann.
    Da man das aushebeln kann, indem man einfach links mit rechts tauscht muss ich wissen welche Taste die Primäre ist, damit die Sekundäre unterdrückt wird.

    mir _ispreset(02) frag ich nämlich ja nur ab, ob die rechte geklickt wurde.

    • Offizieller Beitrag
    AutoIt
    #include <WinAPI.au3>
    If _WinAPI_GetSystemMetrics($SM_SWAPBUTTON) Then
    	ConsoleWrite('Default: RIGHT' & @CRLF)
    Else
    	ConsoleWrite('Default: LEFT' & @CRLF)
    EndIf

    Eine andere Möglichkeit zum Verhindern des Kontextmenüs:
    Windows-Message für Kontextmenüaufruf hooken und verwerfen wenn es für dein Ctrl ist.

  • Das wird dir aber auch nicht helfen, es zu verhindern.
    Der Benutzer kann die Datei ja immer noch auswählen und STRG+C drücken.

    Die primäre Frage ist: Warum willst du es verhindern? Und wieso sollte es ein Problem darstellen, eine Datei kopieren zu können?
    Wenn du nicht willst, dass die Datei irgendwohin gelangen kann, dann lagere die (welche auch immer) Daten auf einem Server, auf den alle zugreifen.

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • @BugFix und @eukalyptus vielen Dank für eure Codes :) Die sind genau das was ich brauche :)

    @Xorianator ich weiß wie ich Str+C verhindern kann, aber die Mous war halt das Problem.

    Ich brauche das, da ich den kompletten kopierversuch verhindern will. Server kommt nicht Infrage. Die Dateien sollen Lokal verwendet werden können. Sind allerdings verschlüsselt, wenn nicht verwendet. Wenn die verwendet werden, sind sie entschlüsselt und in dem Fall könnte man diese Kopieren, und das muss ich abfangen. Dazu werd ich soviele Wege wie möglich verhindern, sodass sich das unerlaubte kopieren der Datei ohne Aufwand erst gar nicht mehr lohnt.


    Ich Danke euch :)

    PS: Server kommt nicht in Frage, muss alles local ablaufen

  • Und wie blockst du, dass jemand die Datei per anderer Tools kopiert? Total Commander z.B.?
    Nicht zuletzt die Tatsache, dass man per Windows Explorer auch einfach eine Datei auswählen und über Start->Kopieren die Datei einfach kopiert.

    Noch eine Anmerkung: Warum lädst du sie nicht entschlüsselt in den RAM? Dann bekommt man die zwar immer noch (recht einfach) wieder raus, aber nicht mehr als 0815 User.
    Und - Wenn du sie per AutoIt Ver- / Entschlüsselst ist das ebenfalls nicht sicher.

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Das öffnen von anderen Anwendungen/Fenstern wird geblockt. Das schließen des Scripts wird geblockt. Nur bestimmte Tasten werden zugelassen.
    Alle Versuche eines Users, die Warnhinweise auszulassen führen dazu, dass die Datei mit einem Randomkey verschlüsselt.

    Ein normalsterblicher Anwender wird es wohl kaum hinbekommen die Verschlüsseleung auszuhebeln, ohne sich damit zu beschäftigen.


    Die Idee mit dem Ram find ich gut, wusste gar nicht, dass es dazu schon ne UDF gibt :thumbup: Werd ich mir mal ansehen.

  • Tut nicht genau FileRead eben selbiges? Und die Crypt Funktionen übergeben doch sowieso wieder Daten in den Speicher, nicht auf die Festplatte?

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Wenn du per FileRead() eine Datei liest, dann wird der Inhalt dieser Datei in den Arbeitsspeicher gelegt.
    Wenn du jetzt eine Funktion hast, hier mal _Crypt_DecryptData() dann kannst du die Variable mit dem Inhalt der Datei übergeben, und die decrypteten Daten befinden sich dann ebenfalls wieder im RAM.
    Verstehe also nicht, warum du zwischendrin eine Datei brauchst - Es sei denn, dein Arbeitsspeicher ist sehr begrenzt, was ich aber stark bezweifle ^^
    €: Also worauf ich hinaus will: Hast du mal ein Script zur Hand, bzw. eine Erklärung für den genauen Versuchsaufbau, warum die entschlüsselten Daten auf der Festplatte rum liegen müssen?

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal