butonla klasör acmak

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
CELL
Üye
Mesajlar: 5
Kayıt: 26 Nis 2006 12:31

butonla klasör acmak

Mesaj gönderen CELL »

Selam ustalar.

form üzerine konulan bir butonla herhangi bir klasörü nasıl actırabilirim,
mesela masaüstünde test isimli bir klasör var ben bunu form üzerine koydum bi butonla actırmak istiyorum bunu nasıl yapabilirim.

Kolay Gelsin
s1lv3r
Üye
Mesajlar: 91
Kayıt: 09 Nis 2006 03:03

Mesaj gönderen s1lv3r »

procedure TForm1.Button1Click(Sender: TObject);
begin
CreateDir('c:\test') ;
end;

Böyle kullanabilirsin.
Kullanıcı avatarı
CELL
Üye
Mesajlar: 5
Kayıt: 26 Nis 2006 12:31

Mesaj gönderen CELL »

Yardımın için öncelikle teşekkür ederim.

Sanırım yanlış bi anlasılma oldu benim amacım var olan bir klasörün içini açmak, yani bi nevi kısa yol gibi kullanmak için. vermiş oldunuz bu örnek yeni bir klasör acmak için sanırım.

Kolay gelsin
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

a.s.
Winexec(PChar('C:\WINDOWS\explorer.exe C:\test'),SW_SHOW);
Kullanıcı avatarı
CELL
Üye
Mesajlar: 5
Kayıt: 26 Nis 2006 12:31

Mesaj gönderen CELL »

ulu coder yazdı:a.s.
Winexec(PChar('C:\WINDOWS\explorer.exe C:\test'),SW_SHOW);
Saolasın usta aradım sey tam olarak buydu. Sayenizde çözecez bu delphi'yi. Teşekkür ederim.

Kolay gelsin
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

CELL yazdı:
ulu coder yazdı:a.s.
Winexec(PChar('C:\WINDOWS\explorer.exe C:\test'),SW_SHOW);
Saolasın usta aradım sey tam olarak buydu. Sayenizde çözecez bu delphi'yi. Teşekkür ederim.

Kolay gelsin
bu yontem cok sakat bir yontem. ustelik elinizde hali hazirda bir fonksyion varken (ustelik geriye bir deger de dondurur) bu tip taklalar atmanin bence cok fazla bir manasi yok.

CreateDir delphi fonksiyonu veya yine delphi icerisinde hazir tanimli halde bulunana CreateDirectory apisini kullanmalisiniz.

yine de bu yolu kullanmaya devam etmek isterseniz en azindan c:\windows\explorer satirini explorer.exe olarak degistirin.
-en azindan programiniz benim bilgisayarimda da dogru calisir :)-
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

evet sakat bir yöntem.
Acelem vardı (ve hala var) ama cevapsız da bırakmak istemedim.
WinExec yerine ShellExecute kullanmak daha mantıklı.

Fakat CreateDirectory boş klasör oluşturur. Siz klasörün içeriğini görmek istiyorsunuz. Benim yazdığım kodla, explorer'ı açıyorsunuz ve parametre olarak da klasör adresini yazıyorsunuz. Bu kodun sakatlığı şu; boşluk bulunduran adresleri, ilk boşluğa kadar alıyor. Yani 'C:\Deneme K'yı açmaya çalışırsanız 'C:\Deneme' bulunamadı hatası veriyor.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

soruyu okumadan cevaba ve basliga bakarsak olacagi bu :)

CreateDir ve CreateDirectory 'nin konuyla alakasi yok

bir klasoru explorerda acmak icin dogal olarak @ulu coder'in ornegindeki gibi yapmak gerekir ama c:\windows gibi bir sabit kullanmadan tabi.

yanlis anlasilma icin ozur dileriz :)

icinde bosluk olan klasorleride su sekilde acabilirsin.

Kod: Tümünü seç

Winexec(PChar('explorer.exe "c:\icinde bosluk olan bir klasor"'),SW_SHOW);
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
CELL
Üye
Mesajlar: 5
Kayıt: 26 Nis 2006 12:31

Mesaj gönderen CELL »

Yaww ustalar cahillime verin, bu verdiniz her iki komutlada klasörün içini görebiliyorum benim merak ettim "c:\windows " satırının sakatlıı, nedir bunun farkı? Walla korkmaya basladım bu delphi den :D

Yardımlarınız için tekrar teşekkür ederim.

Kolay Gelsin
ulu coder
Üye
Mesajlar: 838
Kayıt: 01 Nis 2006 06:46
Konum: Ankara

Mesaj gönderen ulu coder »

CELL yazdı:Walla korkmaya basladım bu delphi den
Korkma yav.
Şimdi C:\windows\explorer.exe yazınca, windows'un bu klasöre kurulduğunu varsayıyoruz ki genelde böyledir. Ama birisi çıkar da windows'u C:\Mindos içine kuracak olursa hata verir. Windows'a zarar vermez.
Kullanıcı avatarı
CELL
Üye
Mesajlar: 5
Kayıt: 26 Nis 2006 12:31

Mesaj gönderen CELL »

Saolun ustalar Allah razı olsun emegi gecen kerkesten.

Teşekkür ederim

Kolay Gelsin
Kullanıcı avatarı
Murat DİCLE
Kıdemli Üye
Mesajlar: 702
Kayıt: 19 Nis 2006 04:12
Konum: İstanbul
İletişim:

Mesaj gönderen Murat DİCLE »

Merhabalar,

Bir klasör ya da bir programı çalıştırmak için şunları da deneyebilirsiniz.

Kod: Tümünü seç

Uses ShellAPI,.., .., ..;
.
.
.
.
var S : String;
begin
.
.
   // "C:\Windows" klasörünü açacaktır
   // Direk isim yazarak
   ShellExecute(Handle,
                'open',
                'c:\windows',
                nil,
                nil,
                SW_NORMAL);

   // hesap makinası için
   ShellExecute(Handle,
                'open',
                'calc.exe',
                nil,
                nil,
                SW_NORMAL);
.
.
   //Bir değişken ile kullanacaksanız.
   S := 'C:\Windows';
   ShellExecute(Handle,
                'open',
                PChar(S),
                nil,
                nil,
                SW_NORMAL);


   //Windows dizininie DIR çekmek
   //komutu icra eder pencere açık kalır.
   ShellExecute(Handle,
                'open',
                'cmd.exe',
                '/k dir c:\windows\*.* /p',
                nil,
                SW_NORMAL);

   //Windows dizininie DIR çekmek
   //komutu icra eder pencere ardından kapanır
   ShellExecute(Handle,
                'open',
                'cmd.exe',
                '/c dir c:\windows\*.* /p',
                nil,
                SW_NORMAL);
.
.
end;
.
.
.
Saygılar...
Cevapla