![]() |
Shellapi.pas Updates Downloaden?
Hallo Narrenvolk :)
Ich hab mir die neuen Funktionen der Shellapi mal angeschaut und so einiges gefunden was mir weiterhelfen könnte. Nur finde ich kein "Update" oder Downloadlink zu der "neuen" Version. Kann man die überhaupt runterladen? Muss man die kaufen? Ich steh echt im Wald :) danke schonmal für die Antworten... |
Re: Shellapi.pas Updates Downloaden?
Huch ... was genau hast Du Dir denn angesehen? Die Datei "Shellapi" ist Teil des jeweiligen BDS und ist separat alleine für sich nicht erhältlich.
|
Re: Shellapi.pas Updates Downloaden?
Hallo,
ich hab in einer aktullen Shellapi das Flag " FOF_NOCOPYSECURITYATTRIBS " gefunden. Das möchte ich gern nutzen... nur kennt meine API dieses Flag nicht. Kann ich das einfach "reintippen" in dem ich die Regeln dort beachte? In der Shell32.dll müsste es vorhanden sein, oder wie funktioniert das? Danke :-D |
Re: Shellapi.pas Updates Downloaden?
Zitat:
![]() |
Re: Shellapi.pas Updates Downloaden?
Funktionen aus einer DLL kannst Du Dir natürlich auch selbst, ohne Shellapi.pas, importieren. Konstanten definierst Du entsprechend der API-Dokumentation.
|
Re: Shellapi.pas Updates Downloaden?
Der Schaedel musste weg, daher frag ich jetzt weiter:
Also, dass es das Flag FOF_NOCOPYSECURITYATTRIBS gibt haben wir bei Microsoft entdeckt. Es ist genau das, was wir brauchen, um via SHFILEOPSRUCT ein Verzeichnis samt Inhalt zu verschieben. Leider kopiert das SHFILEOPSTRUCT dabei auch die Berechtigungen, die auf der Datei liegen, mit. Das führt dazu, dass ein Anwender in das neue Verzeichnis sehen kann, die dort liegende Datei aber nicht öffnen darf. Nicht gut. Ein Blick in unsere ShellApi.pas fördert 11 Flags zutage, von FOF_MULTIDESTFILES = $0001 bis FOF_NOERRORUI = $0400. Wir wollen aber FOF_NOCOPYSECURITYATTRIBS, das lt. MSDN $0800 sein soll. Wie kommen wir da dran? Selber reinschreiben? Wenn ja, wie und wo überall? Wenn nein, wie dann? Wie importiert man Funktionen und Konstanten aus einer dll? Ich verdiene seit fast 8 Jahren meinen Lebensunterhalt mit Programmierung, aber das ist mir noch nicht untergekommen... Grüße von Mena |
Re: Shellapi.pas Updates Downloaden?
Ach, die Konstanten kannst Du Dir natürlich selbst definieren. Den Wert kannst Du ja aus MSDN übernehmen. Innerhalb Deiner Delphi-Anwendung muss diese Konstante dort verfügbar sein, wo sie im Rahmen der Deiner Anwendung an die API-Funktion übergeben wird (also wie jede andere Konstante auch).
|
Re: Shellapi.pas Updates Downloaden?
Moin Mena,
Zitat:
Teilweise, weil es sie zum Zeitpunkt der Auslieferung noch nicht gab, teilweise weil sie für verschiedene OS-Schienen unterschiedlich deklariert werden müssten, teilweise... weiss nicht warum ;-) Da man als nicht C-Nutzer nicht direkt die Header-Dateien und Libraries des PSDK nutzen kann, bleibt einem dann nichts weiter übrig, als das alles selber zu deklarieren. Ob Du das nun je Datei, in der Du es brauchst einzeln machst (unpraktisch ;-)) oder Dir selber passende Bibliotheken/Units anlegst, in denen Du Deine Deklarationen dann zentral zur Verfügung hast, bleibt natürlich Dir überlassen. |
Re: Shellapi.pas Updates Downloaden?
Borland hinkt der Windows API immer ein "bisschen" hinterher.
Je älter die Delphi Version, umso älter sind die Units über die die Windows API DLL eingebunden werden. Es gibt 3 Lösungen: a) auf neuere Delphi Version umsteigen b) kleinere Probleme durch eigene Deklarationen ausbessern c) Verwendung von der ![]() Für dein Problem scheint mir doch b) am Besten:
Delphi-Quellcode:
const
{$EXTERNALSYM FOF_NOCOPYSECURITYATTRIBS} FOF_NOCOPYSECURITYATTRIBS =$0800; |
Re: Shellapi.pas Updates Downloaden?
Vielen Dank an Euch alle!
Es klappt! Ich habe mir das FOF_NOCOPY(unaussprechliche Ding) zwar global aber in der Unit, in der ich es aufrufe definiert (so wie shmia es vorgemacht) hat und einfach benutzt und siehe da, es funktioniert! (Und begriffen habe ich es auch!) :hello: :dance: :party: Klasse, wieder was dazugelernt. Grüße von Mena |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:56 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