Ścieżka do pliku

0

Jak wyciągnąć spod kliku myszy pełną ścieżke do pliku (klikniętego lewym klawiszem myszy)

0

Yyyy, co, gdzie, jakiego pliku? :|

0

Ok-opisze dokładnie. Chodzi mi o to jak wyciągnąć scieżkę ( pliku) po kliknięciu na jakimkolwiek obiekcie. Jestem na etapie ogolnego mouse-hook ale pokazuje mi tylko klasy okien i uchwyt nad ktorymi jest kursor myszy. a wyglada to tak:
//--------------------------------------------------------------------------------------
program Project2;

uses SysUtils, Windows, Messages;

const WM_KOMUNIKATMYSZY = WM_USER + 123;

var E1,E2,E3,S1,S2,B1:Hwnd;

function SetMouseHook(Okno: Hwnd): Boolean; stdcall; external 'HOOK.DLL' name 'SetMouseHook';

procedure Uninstallhook; stdcall; external 'HOOK.DLL' name 'Uninstallhook';

function GetPath(Path:string):string;
begin
Result := Path;
end;
function WndProc(Okno:HWND;Msg:UINT; WParam:WParam;LParam:lParam;lpszPath:PChar):Integer; stdcall;
var Buf: array [0..512] of char;
begin

Result:=0;
case Msg of
WM_KOMUNIKATMYSZY:begin
GetClassName(WParam,buf,SizeOf(Buf));
SetWindowText(E1,buf);
SetWindowText(E2,pchar(IntToHex(WParam,8)+'h'));
end;
WM_COMMAND:if (LOWORD(wParam)=103) then DestroyWindow(Okno);
WM_CREATE:begin
S1:=CreateWindow('STATIC','Nazwa klasy okna:',WS_CHILD or WS_VISIBLE,10,2,100,15,okno,DWORD(-1),Hinstance,nil);
S2:=CreateWindow('STATIC','Uchwyt okna:',WS_CHILD or WS_VISIBLE,10,34,100,15,okno,DWORD(-1),Hinstance,nil);
E1:=CreateWindowEx(WS_EX_CLIENTEDGE,'EDIT',nil,WS_CHILD or WS_VISIBLE or ES_READONLY,
10,15,300,20,okno,101,hinstance,nil);
E2:=CreateWindowEx(WS_EX_CLIENTEDGE,'EDIT',nil,WS_CHILD or WS_VISIBLE or ES_READONLY,
10,50,300,20,okno,102,hinstance,nil);
B1:=CreateWindow('BUTTON','Wyjście',WS_VISIBLE or WS_CHILD or BS_DEFPUSHBUTTON,
240,95,70,20,okno,103,Hinstance,nil);
SendMessage(S1,WM_SETFONT,GetStockObject(DEFAULT_GUI_FONT),0);
SendMessage(S2,WM_SETFONT,GetStockObject(DEFAULT_GUI_FONT),0);
SendMessage(E1,WM_SETFONT,GetStockObject(DEFAULT_GUI_FONT),0);
SendMessage(E2,WM_SETFONT,GetStockObject(DEFAULT_GUI_FONT),0);
SendMessage(B1,WM_SETFONT,GetStockObject(DEFAULT_GUI_FONT),0);
SetMouseHook(Okno);
end;
WM_DESTROY:begin
UninstallHook;
PostQuitMessage(0);
end;
else Result:=DefWindowProc(Okno,Msg,WParam,LParam);
end;
end;

var KlasaOkna:TWndClass;
Komunikat:TMsg;
Okno:Hwnd;
begin
KlasaOkna.style:=CS_HREDRAW or CS_VREDRAW;
KlasaOkna.hInstance:=Hinstance;
KlasaOkna.lpszClassName:='MTHOOK(C)MT';
KlasaOkna.lpfnWndProc:=nil;
KlasaOkna.hIcon:=LoadIcon(0,IDI_APPLICATION);
KlasaOkna.hCursor:=LoadCursor(0,IDC_ARROW);
KlasaOkna.lpszMenuName:=0;
KlasaOkna.cbClsExtra:=0;
KlasaOkna.lpfnWndProc:=@WndProc;
KlasaOkna.hbrBackground:=COLOR_WINDOW;
if RegisterClass(KlasaOkna)=0 then Exit;
Okno:=CreateWindowEx(WS_EX_TOPMOST,KlasaOkna.lpszClassName,
'Nad którym oknem jest kursor:',WS_OVERLAPPED or WS_SYSMENU,
10,10,330,150,0,0,Hinstance,nil);
ShowWindow(Okno,SW_SHOWNORMAL);
UpdateWindow(Okno);
while GetMessage(Komunikat,0,0,0) do begin
TranslateMessage(Komunikat);
DispatchMessage(Komunikat);
end;
end.
//-----------------------------------------------------------------------
Powyzsze zaczerpniete jest z jakiegos postu czy cos podobnego.

1 użytkowników online, w tym zalogowanych: 0, gości: 1