
Dosya adını parametre olarak göndermek
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Dosya adını parametre olarak göndermek
istediğim uzantılı bir dosyanın programımla açılmasını sağladım ama doğal olarak sadece programı açıyor
Açılan dosya, adınıda parametre olarak programa göndermeli. Bunu nasıl yapıyoruz?

soruyu tam anlatamadım galiba 
Mesela .sti uzantılı dosyaların bir text dosyası olduğunu varsayalım,
Yaptığım programda .sti uzantılıları açıyor diyelim, c:\windows\deneme.sti isimli dosyayı kullanıcı açmak istediğinde, program açılcak ve dosyanın patch'inide alıcak,içindekileri görüntülicek.. Yani çift tıklanan dosya, programa nerde olduğunuda göndercek.

Mesela .sti uzantılı dosyaların bir text dosyası olduğunu varsayalım,
Yaptığım programda .sti uzantılıları açıyor diyelim, c:\windows\deneme.sti isimli dosyayı kullanıcı açmak istediğinde, program açılcak ve dosyanın patch'inide alıcak,içindekileri görüntülicek.. Yani çift tıklanan dosya, programa nerde olduğunuda göndercek.
Beni bitek siz anladınız, sizde yanlış anladınız
"C:\deneme.sti" -parametre
O parametre yazan yeri biz yazmayacağızki? Bu şekilde yazmış olsak paramstr ile falan alabiliyoruz ama orda bişey olmıcak. Örneğin notepad deki gibi.
Notepad le bi txt dosyasını kaydettiğimiz zaman Notepad açıldığında o dosyaya nasıl ulaşıyor. Yani notepad'inki gibi bi mantık izlemeye çalışıyorumda?

"C:\deneme.sti" -parametre
O parametre yazan yeri biz yazmayacağızki? Bu şekilde yazmış olsak paramstr ile falan alabiliyoruz ama orda bişey olmıcak. Örneğin notepad deki gibi.
Notepad le bi txt dosyasını kaydettiğimiz zaman Notepad açıldığında o dosyaya nasıl ulaşıyor. Yani notepad'inki gibi bi mantık izlemeye çalışıyorumda?
hocam adım adım bir daha izah edeyim :
1. Sen .sti uzantısını programınla ilişkilendirdin değil mi? Mesela C:\deneme.sti 'ye çift tıklayıp açtığında aslında programına bunu parametre olarak geçmiş oluyorsun. Yani :
Program_ismin "c:\deneme.sti"
şeklinde çalıştırmış oluyorsun. Registry'e eklediğin %1 bu işe yarıyor.
2. Sen programın açıldığı zaman dediğim gibi bu parametre sayısını ve parametreleri kontrol ederek işini yapacaksın.
Kolay gelsin.
1. Sen .sti uzantısını programınla ilişkilendirdin değil mi? Mesela C:\deneme.sti 'ye çift tıklayıp açtığında aslında programına bunu parametre olarak geçmiş oluyorsun. Yani :
Program_ismin "c:\deneme.sti"
şeklinde çalıştırmış oluyorsun. Registry'e eklediğin %1 bu işe yarıyor.
2. Sen programın açıldığı zaman dediğim gibi bu parametre sayısını ve parametreleri kontrol ederek işini yapacaksın.
Kolay gelsin.
denetim masası - klasör seçenekleri - Dosya türleri ni tıkla.
istediğin dosya türünü seç, gelişmiş düzenle ordaki ikinci satırın sonunda %1 işareti gönderdiği dosya adı.
ha bunu nasıl buraya eklicen regedite bakmak lazım
örneğin mp3 dosyaları için bu satır
"C:\Program Files\Winamp3\winamp3.exe" "%1"
bunu derleyicide denemek için RUN'da parametersa yazarak run yapıp deneyebilirsin.
ehühüh admin bende önce yazmın
istediğin dosya türünü seç, gelişmiş düzenle ordaki ikinci satırın sonunda %1 işareti gönderdiği dosya adı.
ha bunu nasıl buraya eklicen regedite bakmak lazım

örneğin mp3 dosyaları için bu satır
"C:\Program Files\Winamp3\winamp3.exe" "%1"
Kod: Tümünü seç
procedure TForm1.FormShow(Sender: TObject);
begin
if ParamCount<> 1 then
Close;
showmessage(ParamStr(1));
if FileExists(ParamStr(1)) then
memo1.Lines.LoadFromFile(ParamStr(1));
end;
ehühüh admin bende önce yazmın
