Delphi-PRAXiS
Seite 2 von 6     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi NTFS-Komprimierung einer einzelnen Datei? (https://www.delphipraxis.net/197883-ntfs-komprimierung-einer-einzelnen-datei.html)

KodeZwerg 14. Sep 2018 18:48

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413221)
Zitat:

Zitat von KodeZwerg (Beitrag 1413213)
Da ich garantiert vom TE falsch verstanden werde, Versuche ich es erst gar nicht zu Erklären sondern gebe nur ein Sample.

Fühlst du dich häufig falsch verstanden?

Nicht das ich wüßte, ich schreibe keine Anekdoten als Antwort mit esoterischen Lebensinn gebrabbel wenn es ums Thema Delphi geht.
Zitat:

Zitat von PeterPanino (Beitrag 1413221)
Aber welchen Vorteil hat das, außer dass es viel komplizierter und fehleranfälliger ist?

Das hier ist viel einfacher:

Delphi-Quellcode:
ShellExecEx('compact', '/c "' + AFile + '"', '', SW_HIDE);


Und das ist zum Verschlüsseln:

Delphi-Quellcode:
ShellExecEx('cipher', '/e /a "' + AFile+ '"', '', SW_HIDE);

"Einfacher" ist eine persönliche Meinung die ich hier nicht reinfliessen lassen möchte, da ich mit Delphi programmiere verwende ich auch Delphi dazu.
Vorteile kann ich Dir keine nennen, da unser Jing und Jang nicht kompatibel ist, wären meine Vorteile = Deine Nachteile.
Ich kann da auch anderen Code schreiben über WMI der genauso untergeht da ja ein externes Programm zu starten viel besser ist.

Fehleranfälliger? Also ich geh wenigstens auf Fehler ein, Du startest nur was ohne es auszuwerten, das ist also besser? Rhetorische Frage bedarf keiner Antwort.

Schön das Du es so regelst, das ist eine Super Idee so. Noch einen schönen Abend wünsche ich Dir.

PeterPanino 14. Sep 2018 19:10

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Sei mal ehrlich: Was ist dir denn über die Leber gekrochen?

So viele Vorwürfe: Du machst das und ich mach das.

Wovon kommen diese vielen verbittert klingenden Vorwürfe?

Kannst du mir das verraten? Würde mich EHRLICH interessieren! Oder ist das ein Staatsgeheimnis?

Oder hat das was damit zu tun, dass dein Jing angeblich besser als mein Jang ist?

Wieso verachtest du mein Jang? (Entschuldige, aber du hast damit angefangen).

Aber ich wünsche noch einen schönen Freitagabend!

KodeZwerg 14. Sep 2018 19:30

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413225)
Sei mal ehrlich: Was ist dir denn über die Leber gekrochen?

Nichts, so Schreibe ich nunmal. Nimm meine Texte nicht so Ernst. Lese am besten alles noch mal um vielleicht besser zu Verstehen wie ich was wann wie wo meine. Hab Spaß am Leben und Delphi, auch wenn unsere Wege nicht die gleichen sind. Vorwürfe mache ich nicht, auch wenn ich weiß das mein Gegenüber mich nicht versteht, Versuche ich zumindest das bisschen was ich weiß vernünftig weiter zu geben.
Aber die Vorgehensweise vom Betriebssystem und wie dieses funktioniert, um zu Verstehen wie man was benutzen kann, für welche Dinge es Api gibt und für welche man tatsächlich externe Porgramme benötigt, diese Dinge kann ich nur schwer Erklären.
Wenn jemand eine Möglichkeit geboten bekommt etwas innerhalb der "besten Programmierumgebung*" (*=persönliche Meinung) durchzuführen, derjenige aber lieber externe Programme einsetzt, da splittet sich der Weg, Jing und Jang ist kaputt.

Vielleicht habe ich ja im nächsten Thread von Dir mehr Erfolg Dir zu helfen ohne das geschriebene diskutieren zu wollen.


Sorry ich schwief ab, um es kurz zu machen: Ich bin glücklich, also meiner Leber geht es bestens, Danke der Nachfrage.

himitsu 14. Sep 2018 20:12

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413221)
Aber welchen Vorteil hat das, außer dass es viel komplizierter und fehleranfälliger ist?

Direkt das machen, was man will, ohne Umwege und externe Abängigkeiten.

Ordentliche Fehlerprüfung.
Nja, wenn man es richtig machen würde, denn was steht bei MSDN-Library durchsuchenCreateFile im Abschnitt "Return Value"? (Tipp: es ist keine Null)
Gut, das geht in gewissem Umfang auch mit dem Programmaufruf, aber da müsstest du auch den ExitCode und eventuell auch den StrOut/ErrOut des Programms auswerten.

PeterPanino 14. Sep 2018 21:28

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1413213)
Da ich garantiert vom TE falsch verstanden werde, Versuche ich es erst gar nicht zu Erklären sondern gebe nur ein Sample.
Delphi-Quellcode:
const
  COMPRESSION_FORMAT_NONE = 0;
  COMPRESSION_FORMAT_DEFAULT = 1;
  COMPRESSION_FORMAT_LZNT1 = 2;

procedure SetCompressionAttribute(const FileName: string; const CompressionFormat: USHORT);
const
  FSCTL_SET_COMPRESSION = $9C040;
var
  Handle: THandle;
  Flags: DWORD;
  BytesReturned: DWORD;
begin
  if DirectoryExists(FileName) then
    Flags := FILE_FLAG_BACKUP_SEMANTICS
  else if FileExists(FileName) then
    Flags := 0
  else
    raise Exception.CreateFmt('%s does not exist', [FileName]);

  Handle := CreateFile(PChar(FileName), GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, Flags, 0);
  if Handle=0 then
    RaiseLastOSError;
  if not DeviceIoControl(Handle, FSCTL_SET_COMPRESSION, @CompressionFormat, SizeOf(Comp), nil, 0, BytesReturned, nil) then
  begin
    CloseHandle(Handle);
    RaiseLastOSError;
  end;
  CloseHandle(Handle);
end;
So könntest Du Dateien mit NTFS Komprimieren.

Noch eine Frage: Was machst du, wenn die Datei sich in einem für normale User nicht beschreibbaren Verzeichnis befindet? (z.B. C:\Program Files (x86)\...).

In diesem Fall habe ich diese Fehlermeldung erhalten:

Zitat:

---------------------------
System Error. Code: 6.

Das Handle ist ungültig.
---------------------------
OK
---------------------------
Was machst du dann? Würde mich sehr interessieren.

KodeZwerg 14. Sep 2018 22:08

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413228)
Was machst du dann? Würde mich sehr interessieren.

Wenn ich eine Applikation entwickle die Admin-Rechte für bestimmte Dinge benötigt, dann statte ich diese mit eben solchen aus, der User muss es logischerweise akzeptieren falls UAC aktiviert ist.
Vielleicht hast Du so etwas schonmal in freier Wildbahn gesehen, eine Applikation die so ein schönes Schild-Symbol auf irgend einem Knopf oder Menu, wenn man nun menu oder Knopf drückt verlangt man damit höhere Rechte ein, die vielleicht dafür nötig sind was auch immer Du vorhast zu erledigen auch erledigen zu dürfen.
Falls da irgendwas abwertendes oder sonstwie verhöhnendes drinnen stehen sollte, sorry, so schreibe ich, also fühle Dich nicht angegriffen, ich meine das bestimmt nicht so.

KodeZwerg 14. Sep 2018 22:24

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Ps: Was ich da geschrieben habe, falls Du damit nichts anfangen kannst, schau Dir mal TButton.ElevationRequired genauer an, dann verstehst Du mich hoffentlich besser.

PeterPanino 14. Sep 2018 22:40

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Sehr schlau! Das muss auch mal gesagt werden!

Ich muss mich da hingegen mit meiner Windows-Unterstützung mit einem schnarch-langweiligen Einzeiler herumschlagen:

Delphi-Quellcode:
ShellExecEx('compact', '/c "' + AFile + '"', 'runas', SW_HIDE);

PeterPanino 14. Sep 2018 23:26

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von KodeZwerg (Beitrag 1413230)
... dann verstehst Du mich hoffentlich besser.

Ein häufiger Vorwurf unter Eheleuten, wenn man selbst oder der Partner schon an Schwerhörigkeit leidet. :wink:

KodeZwerg 14. Sep 2018 23:57

AW: NTFS-Komprimierung einer einzelnen Datei?
 
Zitat:

Zitat von PeterPanino (Beitrag 1413231)
Ich muss mich da hingegen...

Was da wohl für Mächte im Gange sind die Dich dazu zwingen das es ein muss ist. Hab ja bereits angedeutet das sich irgendwo unsere Wege trennen, anscheinend ist es hier bevor mich auch diese Mächte verführen :wink:

Ich sagte auch bereits das dein externer Programmaufruf für Dich das beste ist, für mich käme das halt nicht in Frage aber es geht ja um Dich. Solange Du glücklich damit bist, ist doch alles in Ordnung.

Nichts desto trotz, viel Erfolg mit Deinem Programm!


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr.
Seite 2 von 6     12 34     Letzte »    

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