![]() |
Re: Kopiervorgang unter Windows
Verschlüssele die Daten doch einfach in der Datei, dann kann der Benutzer mit der Datei machen, was er will und kann doch nichts mit anfangen. Jedenfalls die Benutzung des Systems einzuschränken ist die denkbar schlechteste Idee. Was, wenn ich irgendeine andere datei kopieren will und die sperrst mit das Kopieren im Explorer? Dann hat der Benutzer dein Programm die längste Zeit benutzt, das kann ich dir jetzt schon sagen.
|
Re: Kopiervorgang unter Windows
Hm... also wenn ich das richtig verstehe willst Du Daten temporär benutzen die nach Programmende nicht mehr gebraucht werden.
Wie wäre es mit Daten im Zwischenspeicher und nicht als physische Datei? Arrays oder ähnliches? Klar geht dadurch Arbeitsspeicher flöten aber kopieren usw. kann man meiner Meinung nach dann nix. Wenn eine physische Datei gewünscht wird, dann würde ich es auch über die exklusivrechte von WRITEFILE regeln... :cheers: Eine weitere Möglichkeit ist natürlich das vorhin angesprochene Verschlüsseln der Datei. |
Re: Kopiervorgang unter Windows
ja einziges problem ist... die Datei wird verschlüsselt als Resource eingebunden und um sie benutzen zu können muss ich sie entschlüsseln und vor dem Öffnen auf die Platte entschlüsselt packen..somit bringt mir das verschlüsseln da nichts..es sei denn du weisst, wie ich eine Datei öffnen kann ohne sie abspeichern zu müssen wenn ich sie entschlüssele.
wenn ich das richtig verstanden habe, dann kann ich wenn ich die Datei auf die Platte speichere den Zugriff auf diese dann exclusiv über WriteFile bestimmen und somit deren Kopieren verhindern..das wäre super wenn das so gehen würde...wie gesagt shareexclusive habe ich schon versucht und man konnte die Datei zwar nicht nochmal öffnen da er sagte sie wird benutzt wohl aber kopieren :( |
Re: Kopiervorgang unter Windows
hmm
Ist es möglich die Datei auch aus dem Speicher zu laden? Also mit z.B. LoadFromStream? Wenn ja, dann entschlüssele die Datei in ein TMemoryStream |
Re: Kopiervorgang unter Windows
Zitat:
![]() ![]() zum 2. Absatz: Zugriffsrechte kann man auch mit Windows-Mitteln umgehen: Task-Manager -> Prozesse -> dein Programm auswählen -> Prozess beenden. Rabiat, aber wirkungsvoll, da die Löschroutine nicht mehr aufgerufen wird :stupid: . /eidt: Roter Kasten? |
Re: Kopiervorgang unter Windows
dieses Process-Beenden als rabiate Lösung..ist gar nicht gut..man legt damit sein Windows lahm da dadurch der Code zum Rückgängigmachung des befehles nicht mehr ausgeführt wird..außerdem gibt es ja noch die Möglichkeit das ganze bei OnDestroy zu handeln und somit macht das gar nichts!
MemoryStream lässt sich nicht ausführen..also ich kann keine Exe-Datei in den Speicher laden und dann ausführen von einem anderen programm da es nicht weiss wo die datei ist im Speicherwirrwarr. |
Re: Kopiervorgang unter Windows
Zitat:
Dieser jemand bin ich, und mein "WM_FREE" hat überhaupt nix mit API-Magics oder sonstigem zu tun(WM_FREE = WM_USER + 1 ^^)(nur wegen dem Highlight das du gesetzt hast)... das läuft alles programmintern, und anstatt einen filestream über die gesamte programmlaufzeit offen zu halten, der sich dann irgendwo verhakt(und ich das dateihandle während der programmlaufzeit nicht mehr freikriege), geb ich den Indys nur einen Memorystream den ich dann in einem einzigen ressourcenschutzblock auf einen filestream kopiere und diesen gleich wieder freigebe. [/offtopic] Also ich würde auch sagen, wenn du die Datei nur während deiner programmlaufzeit brauchst(aus ner ressource?), würd ich sie in nem memorystream halten. wenn du aber eine funktion hast, die unbedingt einen filename braucht, würde das nicht über pipes gehen? da hast du dann als filename "\\.\pipe\irgendwas" oder so ähnlich. EDIT: ob du einen prozess aus einer pipe heraus starten kannst, weiß ich allerdings nicht ^^ ansonsten schau, obs das ding als DLL gibt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz