Dosya KOpyalama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
delphikursu
Üye
Mesajlar: 99
Kayıt: 24 Tem 2004 05:13
Konum: kayseri
İletişim:

Dosya KOpyalama

Mesaj gönderen delphikursu »

ben api komutu olarak istiyorum yani dosyanın üzerine gelip sağ tıklayıp kopyalayı seçmiş gibi olmasını istiyorum
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

shfileoperation
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
delphikursu
Üye
Mesajlar: 99
Kayıt: 24 Tem 2004 05:13
Konum: kayseri
İletişim:

shfileoperation

Mesaj gönderen delphikursu »

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
Kullanıcı avatarı
bluekid
Kıdemli Üye
Mesajlar: 541
Kayıt: 11 Haz 2004 10:45
İletişim:

Mesaj gönderen bluekid »

CopyFile

BOOL CopyFile(

LPCTSTR lpExistingFileName, // Kopyalanacak dosya adı
LPCTSTR lpNewFileName, // Yeni oluşturulacak kopye dosya adı
BOOL bFailIfExists // Böyle bir dosya zaten var uyarısı
);
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Merhaba...

- 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;
Uygulaması şöyle...

Kod: Tümünü seç

  CopyFilesToClipBoard('c:\dosya.txt');
Not: FileListe dendiği halde neden String verildi diye soracak olursan, her dosya adı arasına #0 karakteri koyup ardı ardına yazacaksın...
Resim
Resim ....Resim
Cevapla