Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Kopiervorgang unter Windows (https://www.delphipraxis.net/69047-kopiervorgang-unter-windows.html)

Avax2k 9. Mai 2006 15:06


Kopiervorgang unter Windows
 
weiss jemand welche Datei für den Kopiervorgang in Windows benutzt wird oder wie man in der Menüleiste die kopierfunktion deaktivieren (also immer grau machen) kann?

Luckie 9. Mai 2006 15:11

Re: Kopiervorgang unter Windows
 
Das wird in der Explorer.exe stehen oder in einer DLL, die er nutzt. Einen Menüeintrag kan man mit MSDN-Library durchsuchenEnableMenuItem deaktivieren. Vergess aber nicht das Popupmenü, die Shortcuts, den Befehl copy in der Konsole, den WinComander, diverse andere Dateiverwaltungsprogramme und tausende andere Kopierprogramme und die Menüpunkte "Speichern unter" in diversen Anwendungen, ...

Was willst eigentlich du machen? Das Kopieren von Dateien verhindern?

Avax2k 9. Mai 2006 15:13

Re: Kopiervorgang unter Windows
 
ja will das Kopieren verhindern aber nur solange mein programm läuft..
wie ich den Shortcut fürs kopieren abfangen kann weiss ich schon :)

jim_raynor 9. Mai 2006 15:20

Re: Kopiervorgang unter Windows
 
Das Kopieren von Dateien kannst du nicht verhindern, wie schon Luckie sagte, gibt es tausende Möglichkeiten. Im Explorer wird das Kopieren über die Funktion ShFileOperation gemacht (glaube in der shell32.dll). Allerdings nutzt diese Funktion ja nicht jedes Programm.

Luckie 9. Mai 2006 15:28

Re: Kopiervorgang unter Windows
 
Zitat:

Zitat von Avax2k
ja will das Kopieren verhindern aber nur solange mein programm läuft..

Und warum? :?

Avax2k 9. Mai 2006 15:31

Re: Kopiervorgang unter Windows
 
damit man eine Datei die mein Programm bei Ausführung erstellt nicht kopieren kann. Die Datei wird wieder gelöscht wenn das programm beendet wird..

aber frage jetzt nicht wieso und weshalb und weswegen ;)

kann es sein, dass ich mit EnableMenuItem nur die Items von meinem Programm steuern kann und nicht die Menüeinträge vom Arbeitsplatz ?..ich möchte nur, dass eben kopieren da grau ist so wie es ist,wenn man keine Datei angeklickt hat und das menü öffnet.

Luckie 9. Mai 2006 15:36

Re: Kopiervorgang unter Windows
 
Falls du sensible Daten in der datei zwischenspeicherst, lass dir was anderes einfallen. Mit einem Dateiwiederherstellungstoll wird man die datei wieder herstellen können. Und sei dir versichert, jemand, der an die Datei kommen will, der kommt an die datei dran. Einzige Lösung, WriteFile hooken und verhindern, aber dann kannst du dein Windows wegschmeisen, weil dann gar nichts mehr geht so lange dein Programm läuft.


Zitat:

Zitat von Avax2k
kann es sein, dass ich mit EnableMenuItem nur die Items von meinem Programm steuern kann und nicht die Menüeinträge vom Arbeitsplatz ?..ich möchte nur, dass eben kopieren da grau ist so wie es ist,wenn man keine Datei angeklickt hat und das menü öffnet.

Es bleibt doch ganz und gar dir überlassen, was du da füpr ein Menühandle angibst. IOb das von deinem programm oder das von ProgrammXYZ

JasonDX 9. Mai 2006 15:39

Re: Kopiervorgang unter Windows
 
Zitat:

Zitat von Avax2k
damit man eine Datei die mein Programm bei Ausführung erstellt nicht kopieren kann. Die Datei wird wieder gelöscht wenn das programm beendet wird..

Ich glaub, es waere einfacher, dies dann ueber die Zugriffsrechte der Datei zu regeln ;)
Wenn du diese mit exklusivem Schreibrecht oeffnest, kann sie afair auch nicht kopiert werden:
Delphi-Quellcode:
TFileStream.Create(Pfad, fmShareExclusive);
und schon kann die Datei nur noch ueber den erstellten Filestream bearbeitet werden. Kopieren ueber den Explorer, Cmd ect. funzt afaik dann nicht mehr. Um diese "blockade" wieder aufzuheben, einfach nur den Stream wieder freigeben ;)
Aber wie Luckie schon sagt: wenn es sich hierbei um sensible Daten handelt, ist eine Datei als Zwischenspeicher denkbar ungeeignet.

greetz
Mike

Luckie 9. Mai 2006 15:44

Re: Kopiervorgang unter Windows
 
Zitat:

Zitat von JasonDX
Wenn du diese mit exklusivem Schreibrecht oeffnest, kann sie afair auch nicht kopiert werden:

Es gibt Programme, die diese Sperre aufheben können. Im Prinzip wird nur das Dateihandle geschlossen. Dazu gibt es Programme auf SysInternals zum Beispiel. Desweiteren habe ich achon solche Programme in der Dp gesehen. Und gerade hat jemand einen WorkAround geschrieben und hier veröffentlich, weil ein stream eine Datei nach dem Aufruf von Free die Datei nicht wieder freigegeben hat: http://www.delphipraxis.net/internal...ghlight=wmfree

Avax2k 9. Mai 2006 15:52

Re: Kopiervorgang unter Windows
 
was wäre denn deiner Meinung nach der effektivste Weg, den man gehen könnte um eben einem "Normaluser" das kopieren zu verbeiten?..

die Datei abspeichern und verstecken.. das könnte er nur tracen, wenn er ein programm hat, welches ihm anzeigt wo welches Programm gerade welche Daten ablegt ..
ich weiss das ist null Sicherheit aber wenn du schon sagst, dass dies nicht geht, dann lohnt die Mühe ja nicht alles zu versuchen ..oder ?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:42 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz