Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz (https://www.delphipraxis.net/141147-vista-drag-drop-von-dateien-ordner-aus-arbeitsplatz.html)

TheMiller 3. Okt 2009 18:23


Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz
 
Hallo,

ich würde gerne Dateien und Ordner in eine ListView ziehen. Das Ziehen soll vom Arbeitsplatz/Explorer aus möglich sein. Doch leider funktionieren alle Codes der WM_DROPFILES-Message nicht, die hier in der DP stehen. Das Problem wird wohl sein, dass ich Vista benutze.

Kann mir jemand bitte ein paar Tipps geben, wie ich dies auch unter Vista zum Laufen bekomme?

Problem ist, dass noch nichteinmal die Message aufgerufen wird - obwohl sie richtig deklariert ist...

Danke im Voraus

xaromz 3. Okt 2009 18:31

Re: Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz
 
Hallo,

Du kannst ja mal meinen ShellDropper ausprobieren. Der ist genau dafür geschrieben.

Gruß
xaromz

TheMiller 3. Okt 2009 18:42

Re: Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz
 
Den habe ich auch installiert. Aber funzt auch nicht. Wie muss ich ihn denn verwenden?

xaromz 3. Okt 2009 19:06

Re: Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz
 
Hallo,

Du musst eigentlich nur dein ListView als Droptarget in die Liste "Controls" aufnehmen und einen EventHandler schreiben. Mehr ist eigentlich nicht nötig. Versuchst Du vielleicht von einem elevated Explorer zu droppen? Das funktioniert nämlich nicht.

Gruß
xaromz

TheMiller 3. Okt 2009 22:07

Re: Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz
 
Vielen Dank für die Antwort. Das habe ich intuitiv so gemacht, aber das klappt nicht. Ich habe folgende Einstellungen:

Code:
Control: ListView2
DragCursor: dgCopy
Name: ShellDropper
Tag: 0
Wrapper:

Delphi-Quellcode:
OnDrop
=========================

ShowMessage(Files.Strings[0]);
Mehr habe ich nicht. Es erscheint noch nichteinmal der DragCursor. Was ist ein "elevated Explorer"? Ich versuche vom Arbeitsplatz was ins Programm zu "droppen" ;)

Danke

Luckie 3. Okt 2009 22:24

Re: Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz
 
Elevated bedeutet, dass das entsprechende Programm mit höheren Rechten läuft.

Und was bedeutet "funktioniert nicht"? Gibt es eine Fehlermeldung? Wie sieht deine Fehlerbehandlung aus? Hast du den Code schon mal debuggt?

TheMiller 4. Okt 2009 11:18

Re: Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz
 
Ah okay. Da lag der Fehler. Ich wusste zwar, dass man mit den Admin-Rechten aufpassen muss, hatte es aber bei dem Test dieser Komponente vergessen.

Soweit ich es grad getestet habe, funktioniert es super. Vielen Dank soweit!

turboPASCAL 4. Okt 2009 12:43

Re: Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz
 
Also bei mir funktionier D&D bei allen Delphiprogrammen die dies verwenden. Auch mit Vista oder Win7 ohne Adminrechte.
K.A. was da bei dir falsch läuft... :gruebel:

xaromz 5. Okt 2009 08:46

Re: Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz
 
Hallo,

Zitat:

Zitat von turboPASCAL
Also bei mir funktionier D&D bei allen Delphiprogrammen die dies verwenden. Auch mit Vista oder Win7 ohne Adminrechte.
K.A. was da bei dir falsch läuft... :gruebel:

klar funktioniert das. Was nicht geht, ist von einem Programm in ein anderes mit höheren Nutzerrechten zu droppen. Das wäre nämlich eine Sicherheitslücke.

Gruß
xaromz

turboPASCAL 5. Okt 2009 10:06

Re: Vista: Drag&Drop von Dateien/Ordner aus Arbeitsplatz
 
Achso. :duck:


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:28 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