Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

C# içinde exe çalıştırmak


Pluton

Öne çıkan mesajlar

Selamlar. Yapmak istediğim şey hakkında baya bir araştırma yaptım ancak birde burada sormak istedim.

Şimdi yapmak istediğim şey şu;

Buradaki herkes ultima online oynamıştır. Şimdi bir program yapmak istiyorum ve bu programın içine uo.exe'yi entegre etmek istiyorum.

uo.exe'yi programımın içine alıp, direkt olarka benim programımı çalıştırdıkdan sonra uo.exe'yi başlatıcam kendi programımın içinde.

Amacımda uo.exe'yi çalıştırmadan önce kendi programımı çalıştırarak bazı kontroller ve bilgi sağlamak.

Bunu ne şekilde yapabilirim ? Anahtar kelime, döküman v.s herşeyi kabul ederim :)
Link to comment
Sosyal ağlarda paylaş

Üstteki linkte C:temp falan kullanılmış, bunun yerine Path.GetTempFileName() kullanman daha iyi olur, hem böylece "uo.exe" şeklinde görünmemiş olur task list'te.

Run the exe kısmında da yapılcak şeyi zaten biliyosundur:

Process.Start(...)

Edit: Oha yazdıklarımın yarısı gitmiş, neyse ekledim
Link to comment
Sosyal ağlarda paylaş

Bi exe çıkarmadan olabileceğini pek sanmıyorum, en azından .NET olmayan uygulamalarda. Kendin yazdığın bi C# uygulaması olsaydı mesela, assembly'i refere edip, oradaki class'ları kendin ilklendirip, derleme sonrasında ilmerge ile birleştirerek tekil bi dosya haline getirebilirdin; ya da Assembly.Load(...).EntryPoint.Invoke(...) diyerek uygulamanın entry point'ini (C/C++ uygulamalarındaki ünlü int main(int argc, char** argv) ya da Java/C# uygulamalarındaki static void main(String[] args)) çağırabilirdin.

Ama sonuçta Assembly.Load() CLI assembly'leri için kullanılabildiğinden senin durumunda pek faydası yok gibi.
Link to comment
Sosyal ağlarda paylaş

Belirli aralıklarla process listesini kontrol edebilirsin (Process.GetProcesses()), denildiği gibi file system watcher ile kontrol edebilirsin, hatta yerine göre (varsa) uygulamanın oluşturduğu log dosyalarını takip edebilirsin vesaire.

Ama hepsi için de senin uygulamanın açık olması gerek, o yüzden seninki kapalıyken neler olup bittiğini ancak açıldıktan sonra öğrenebilirsin ki o halde bile o arada neler olup bittiğini kesin olarak bilemeyebilirsin.
Link to comment
Sosyal ağlarda paylaş

kendi kodunu başka bir exe içinde çalıştırmak daha kolay. c# yerine native bir şey kullanırsan dll injection yapabilirsin.

senin programınla girilip girilmediğini anlamak için clientin paketlerini hooklayıp kontrol edebilir veya localde bir port dinleyip clienti oraya yönlendirerek local proxy kurabilirsin. böylece belli başlı paketleri modifiye ederek sunucudan kimin senin programla girip girmediğini öğrenebilirsin.

ama bu saatten sonra ultima için bunlarla uğraşmaya değmez.
Link to comment
Sosyal ağlarda paylaş

Shaklaban haklı. dll injection bunun çözümü.
port açmaya gerek yok. uo.dll var razor forumlarında onu kullanarak (yada onun kodunu) uo'a extmessage gönderebiliyorsun. server tarafında bunun trigger'ı var onla yakalayıp senin programınla mı açılmış yoksa acılmamışmı algılayabilirsin.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...