Delphi Exe dosyasının Çalıştırıldığı anda kopyalanması

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
mahirR
Üye
Mesajlar: 3
Kayıt: 15 Mar 2008 03:27

Delphi Exe dosyasının Çalıştırıldığı anda kopyalanması

Mesaj gönderen mahirR »

Delphi 8 kullanıyorum.
İsteğim Programımı çalıştırdığım anda (yani formun Create olayına) programın exe dosyasının kopyalanması..
örnek olarak Programın orjinal yeri belgelerim olsun.
ben programı çalıştırdığımda aynı programın masaüstünde deneme klasörü içerisinde bir kopyasının oluşması

Bunu nasıl yapabilirim yardım larınızı bekliyorum[/size] [/size][/b][/b]
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: Delphi Exe dosyasının Çalıştırıldığı anda kopyalanması

Mesaj gönderen khanco »

bkz windows api ipuçları.

Kod: Tümünü seç

 Bir Klasördeki Dosyaları Başka Bir Klasöre Kopyalama

uses kısmına ShellApi unitini ekleyin. 

procedure TForm1.Button1Click(Sender: TObject); 
var 
  OpStruc: TSHFileOpStruct; 
  frombuf, tobuf: Array [0..128] of Char; 
Begin 
  {The fillchars make sure the parameters are terminated by at least 
   two #0 characters, this is required since each parameter can hold 
   a list of zero-terminated strings, the extra #0 terminates the 
   list. } 
  fillChar( OpStruc, Sizeof(OpStruc), 0 ); 
  FillChar( frombuf, Sizeof(frombuf), 0 ); 
  FillChar( tobuf, Sizeof(tobuf), 0 ); 
  StrPCopy( frombuf, 'c:\deneme\*.*' ); 
  StrPCopy( tobuf, 'd:\deneme' ); 
  With OpStruc DO Begin 
    Wnd:= Handle; 
    wFunc:= FO_COPY; 
    pFrom:= @frombuf; 
    pTo:=@tobuf; 
    fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION; 
  end; 
  ShFileOperation( OpStruc ); 
end;

kendinize göre uyarlayın ister tek dosyayı isterseniz proğramın çalıştığı tüm klasörü.
mahirR
Üye
Mesajlar: 3
Kayıt: 15 Mar 2008 03:27

Re: Delphi Exe dosyasının Çalıştırıldığı anda kopyalanması

Mesaj gönderen mahirR »

Kodları denedim fakat FillChar ve StrPCopy komutlarında hata oluşuyor (undeclared identifier)

İstediğim tam olarak programın, çalıştırıldığı anda kendini belirtilen dizine

yedeklemesi (belirtilen dizinde kendi kopyasını oluşturması)...
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: Delphi Exe dosyasının Çalıştırıldığı anda kopyalanması

Mesaj gönderen khanco »

Üst kısımda uses a shellapi unitini ekle demiştim. ekledinmi.
eklediğinde kodların kopyalanmak için var olan bir klasör adı yazdığında hedef klasör yoksa bile kendisi açıp yazar.

StrPCopy( frombuf, 'c:\deneme\*.*' );
StrPCopy( tobuf, 'd:\deneme' );
İlk satırdaki deneme klasörü yerine kopyalanacak klasörü *.* yerine dosyanın adını yazarsan tek dosya kopyalar. ikinci satırada nereye kopyalaması gerekiyorsa o klasör yazılacak.
Bu haliyle çalıştırırsan dosya okuma hatası verir. kaynaktan okunamıyor der.
Kodlar defalarca kullanıldı. problem bildiren olmadı.
mahirR
Üye
Mesajlar: 3
Kayıt: 15 Mar 2008 03:27

Re:TŞKKRLR

Mesaj gönderen mahirR »

TAMAM OLUŞAN HATAYI BULDUM SORUN BENLE İLGİLİYMİŞ
KODLARI ÇALIŞTIRDIM

TEŞEKKÜRLER.. :bravo:
powerboss
Üye
Mesajlar: 12
Kayıt: 06 Nis 2008 10:43

Re: Delphi Exe dosyasının Çalıştırıldığı anda kopyalanması

Mesaj gönderen powerboss »

uses kısmı neresi oluo??
khanco
Üye
Mesajlar: 226
Kayıt: 01 Eki 2007 04:39
Konum: İzmir
İletişim:

Re: Delphi Exe dosyasının Çalıştırıldığı anda kopyalanması

Mesaj gönderen khanco »

delphi yi çalıştırınca otomatik olan yazılan kodlarda 3 başlık oluyor. bakınız kodlar

Kod: Tümünü seç

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

end.
 
powerboss
Üye
Mesajlar: 12
Kayıt: 06 Nis 2008 10:43

Re: Delphi Exe dosyasının Çalıştırıldığı anda kopyalanması

Mesaj gönderen powerboss »

tekrar teşekkürler gördüm bildiim bişiyi bilmemiş oluormm :D:D
Cevapla