Winexec Dos Sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
s1lv3r
Üye
Mesajlar: 91
Kayıt: 09 Nis 2006 03:03

Winexec Dos Sorunu

Mesaj gönderen s1lv3r »

Delphi içinden bir programın parametrisini dos altında almam gerekiyor aşağıdaki gibi bir kod işe yarıyor fakat exenin yanındaki programın parametrisini alıyor. Ben windows klasöründeki bir programın aynı şekilde kullanmak istiyorum ama nasıl :roll:

Kullandığım Kod ;

WinExec('COMMAND.COM /C upx.exe deneme.exe', SW_hide);

Yapmak İstediğim ama çalışmayan kod :)

WinExec('COMMAND.COM /C c:\windows\upx.exe deneme.exe', SW_hide);

upxi c:\windowsnin altından çağırmak istiyorum
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 »

Merhaba,

Kod: Tümünü seç

Uses ShellAPI, ..., .... 

begin 
   ShellExecute(Handle, 'open', PChar('"c:\dizin bir\dizin iki\delphi32.exe  flaanca.dpr"', nil, nil, 0); 
. 
. 
end;
Forumda yeterince bu konu hakkında bilgi var..
viewtopic.php?t=14061
viewtopic.php?t=14841
.
.


Saygılar...
s1lv3r
Üye
Mesajlar: 91
Kayıt: 09 Nis 2006 03:03

Mesaj gönderen s1lv3r »

Verdiğiniz kod direk exe çalışıtmrıa için değilim ? Ben parametri kullanmak istiyorum
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Denediniz mi? Çalışmayacağına nasıl kanaat getirdiniz?
s1lv3r
Üye
Mesajlar: 91
Kayıt: 09 Nis 2006 03:03

Mesaj gönderen s1lv3r »

fduman yazdı:Denediniz mi? Çalışmayacağına nasıl kanaat getirdiniz?
Uses ShellAPI, ..., ....

begin
ShellExecute(Handle, 'open', PChar('"c:\windows\upx.exe dosya.exe"'), nil, nil, 0);
end;

Olarak Denedim ve Çalışmıyor ..
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 »

Hani ben örnek kod verirken sembolik olarak verdim.. Verdiğim linklerde istediğin sonucu alabileceğin cevapların olduğunu sanıyorum..

Lüfen birde bunu dene.

Değişken kullanmadan yazacak isen:

Kod: Tümünü seç

Uses ShellAPI, ..., .... 

begin 
   ShellExecute(Handle, 'open', '"c:\windows\upx.exe"', 'dosya.exe', nil, 0); 
end; 

Bir değişken ile kullanacaksan:

Kod: Tümünü seç

Uses ShellAPI, ..., .... 

var F, P : String;
begin 
   F := '"c:\windows\upx.exe"';
   P := 'dosya.exe';
   ShellExecute(Handle, 'open', PChar(F), PChar(P), nil, 0); 
end; 
Dene bakalım olacak mı?

Saygılar..
s1lv3r
Üye
Mesajlar: 91
Kayıt: 09 Nis 2006 03:03

Mesaj gönderen s1lv3r »

Maalesef işe yaramadı :(
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 »

Şimdi denedim, sorun yok çalışıyor...

Kod: Tümünü seç

   ShellExecute(Handle, 'open', 'upx.exe', 'c:\dosya.exe', nil, 0);
Not: ben UPX.EXE yi kullanım kolaylığı açısından Windows klasörüne ekledim, o nedenle ayrıca PATH belirtmeme gerek yoktu..

Saygılar...
s1lv3r
Üye
Mesajlar: 91
Kayıt: 09 Nis 2006 03:03

Mesaj gönderen s1lv3r »

Evet PATH belirtmeyince çalıştı. Peki birde decompress özelliğini kullanmak istesem nasıl olacak ?

ShellExecute(Handle, 'open', 'upx.exe','-d', 'c:\dosya.exe', 0); ?
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 »

ikinci yer parametre bölümüdür..
3. nil olan yer çalıştırma diziniydi galiba..

Kod: Tümünü seç

 ShellExecute(Handle, 'open', 'upx.exe', '-d c:\dosya.exe', nil, 0); 
s1lv3r
Üye
Mesajlar: 91
Kayıt: 09 Nis 2006 03:03

Mesaj gönderen s1lv3r »

EVet oldu teşekkürler :bravo:
Cevapla