![]() |
[VISTA] Drag&Drop wird nicht ausgeführt!
Moin!
Ich habe mehrere Threads zum Thema Drag&Drop gelesen und die Codes mal ausprobiert. Doch ich habe das Problem, dass die Drag&Drop-Nachricht nicht abgefangen wird (warum auch immer). Auf dem Gebiet bin ich noch Neuling... Liegt es an Windows Vista? Hier mal "mein" Code. Ich habe ein neues Projekt angelegt und den Code aus den Threads importiert.
Delphi-Quellcode:
Wie gesagt, das Annehmen der Files funktioniert. Will heißen, dass das kleine Plus an der Maus erscheint, aber die WMDROPFILES-MSG wird nicht abgefangen und somit auch nicht zur ListBox hinzugefügt.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ShellAPI, StdCtrls; type TListBox = class(StdCtrls.TListBox) private procedure WMDROPFILES (var Msg: TMessage); message WM_DROPFILES; end; type TForm1 = class(TForm) ListBox1: TListBox; procedure FormCreate(Sender: TObject); private public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TListBox.WMDROPFILES (var Msg: TMessage); var i, Counts, Size: Integer; PCharFileName: PChar; begin inherited; PCharFileName := nil; Counts := DragQueryFile(Msg.WParam, $FFFFFFFF, PCharFileName, 255); for i := 0 to Counts - 1 do begin Size := DragQueryFile(Msg.WParam, i, nil, 0) + 1; PCharFileName := StrAlloc(Size); DragQueryFile(Msg.WParam, i, PCharFileName, Size); Items.Add(String(PCharFileName)); StrDispose(PCharFileName); end; DragFinish(Msg.WParam); end; procedure TForm1.FormCreate(Sender: TObject); begin DragAcceptFiles(ListBox1.Handle, true); end; end. [EDIT]Es liegt definitiv an Windows Vista. Habe hier noch einen XP-Rechner rumstehen. Bei dem funktioniert es super... Was nun?[/EDIT] Danke im Voraus! Bye |
Re: [VISTA] Drag&Drop wird nicht ausgeführt!
Von wo ziehst du die Dateien auf die Listbox?
|
Re: [VISTA] Drag&Drop wird nicht ausgeführt!
Vom Desktop oder aus dem Windows Explorer. Beides funktioniert bei Windows XP, bei Vista aber nicht.
|
Re: [VISTA] Drag&Drop wird nicht ausgeführt!
Beide Prozesse laufen unter dem gleichen Account? Ist die UAC aktiv?
|
Re: [VISTA] Drag&Drop wird nicht ausgeführt!
Ich habe gerade einen "sehr schönen" Beitrag in einem anderen Forum gefunden. Der Verfasser hat mit seiner Aussage vollkommen recht. Nur die Frage ist, ob diese Sicherheitsfunktion umgangen werden kann. So toll ist die Idee nämlich nicht... Hier der Beitrag (Quelle:
![]() Zitat:
|
Re: [VISTA] Drag&Drop wird nicht ausgeführt!
Zitat:
...:cat:... |
Re: [VISTA] Drag&Drop wird nicht ausgeführt!
Nene... meine Software muss nicht als Admin laufen. Das mit den Buffer-Overflows in der Weise wusste ich nicht. Dann ist das nachvollziehbar. Nur, man muss erstmal auf eine solche Idee kommen, dass es mit den Rechten zu tun hat.
Jedefalls habe ich beim Programmieren jetzt Probleme, da Delphi bei mir als Admin ausgeführt werden muss. Ist das nicht der Fall, so würden einige Komponenten nicht verfügbar sein. Weis zwar net warum, ist aber so. Jetzt wird's halt etwas umständlich, passt aber schon. Danke |
Re: [VISTA] Drag&Drop wird nicht ausgeführt!
Zitat:
|
Re: [VISTA] Drag&Drop wird nicht ausgeführt!
Jap... Genauer gesagt:
C:\Programme\Borland\Delphi7\Komponenten C:\Programme\PngComponents C:\Programme\Borland\Delphi7\Lib Tja.. pg (Pech gehabt) |
Re: [VISTA] Drag&Drop wird nicht ausgeführt!
Entweder alles woanders hin installieren um in der IDE umstellen oder dir für diese Verzeichnisse entsprechende Rechte als normaler User geben lassen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 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