Merhaba Volkan bey, istediğinizi yapabilmenizin bir kaç yolu var. Bildiğiniz gibi normalde, uygulamamız içinde bir process'e geçilen parametreleri ParamCount & ParamStr fonksiyonları ile elde ediyoruz. Bu metodların derinlerine indiğinizde
GetCommandLine API'sini gözlemleyeceksiniz. Ancak bu API, geçerli process için komut satırı bilgisini döndürmektedir. Hali hazırda çalışan bir process'in komut satırı argümanlarına bu API vasıtası ile erişemezsiniz.
Bu bağlamda, bir kaç yol mevcut kullanabileceğiniz ancak bu yollarda biraz çetrefelli. Çetrefelli diyorum çünkü bir kısım önereceğim yollar undocumented yani dökümante edilmemiş dolayısı ile Windows'un ilerleyen versiyonlarında çalışma şekli değişebilir yada tamamen kaldırılabilir. Bunlardan birincisi
NtQuerySystemInformation yada
NtQueryInformationProcess API'si ve ProcessBasicInformation yapısı vasıtası ile Process Environment Block(PEB) üzerinden komut satırına erişebilirsiniz. Tabii bunun için epey bir kod yazmanız gerekecek.
Bir diğer yol, WMI kullanmak. WMI ile
Win32_Process sınıfı üzerinden CommandLine üyesinin değerini okuyabilirsiniz. Yada; bu uygulamaları siz yazdığınıza göre
IPC (Interprocess communications) mekanizmaları vasıtası ile processleriniz ile haberleşebilir ve ilgili process'e GetCommandLine API'sini çalıştırmasını ve sonucunu iletmesini söyleyebilirsiniz. Sanıyorum bu en kolay yol olabilir.
Tercih sizin.
Not: Merak edenler için bir kısım undocumented api'nin dökümantasyonuna
buradan erişebilirsiniz.