Dosya KOpyalama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 99
- Kayıt: 24 Tem 2004 05:13
- Konum: kayseri
- İletişim:
Dosya KOpyalama
ben api komutu olarak istiyorum yani dosyanın üzerine gelip sağ tıklayıp kopyalayı seçmiş gibi olmasını istiyorum
- sadettinpolat
- Moderator
- Mesajlar: 2131
- Kayıt: 07 Ara 2003 02:51
- Konum: Ankara
- İletişim:
-
- Üye
- Mesajlar: 99
- Kayıt: 24 Tem 2004 05:13
- Konum: kayseri
- İletişim:
shfileoperation
shfileoperation komutunu biraz daha açık anlatırmısın gerçi ben yardımdanda bakarım sen ginede tam olarak anlatırsan iyi olur
Merhaba...
- API olarak istiyorsan aşağıdaki fonksiyonu aynen uygula...
Uygulaması şöyle...
Not: FileListe dendiği halde neden String verildi diye soracak olursan, her dosya adı arasına #0 karakteri koyup ardı ardına yazacaksın...
- API olarak istiyorsan aşağıdaki fonksiyonu aynen uygula...
Kod: Tümünü seç
uses
ShlObj, ClipBrd;
Kod: Tümünü seç
procedure CopyFilesToClipboard(FileList: string);
var
DropFiles: PDropFiles;
hGlobal: THandle;
iLen: Integer;
begin
iLen := Length(FileList) + 2;
FileList := FileList + #0#0;
hGlobal := GlobalAlloc(GMEM_SHARE or GMEM_MOVEABLE or GMEM_ZEROINIT,
SizeOf(TDropFiles) + iLen);
if (hGlobal = 0) then raise Exception.Create('Memory tahsis edilemedi');
begin
DropFiles := GlobalLock(hGlobal);
DropFiles^.pFiles := SizeOf(TDropFiles);
Move(FileList[1], (PChar(DropFiles) + SizeOf(TDropFiles))^, iLen);
GlobalUnlock(hGlobal);
Clipboard.SetAsHandle(CF_HDROP, hGlobal);
end;
end;
Kod: Tümünü seç
CopyFilesToClipBoard('c:\dosya.txt');