Pluton Mesaj tarihi: Ekim 5, 2014 Mesaj tarihi: Ekim 5, 2014 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 :)
pulkas Mesaj tarihi: Ekim 5, 2014 Mesaj tarihi: Ekim 5, 2014 http://stackoverflow.com/questions/798655/embedding-an-external-executable-inside-a-c-sharp-program
Kojiroh Mesaj tarihi: Ekim 5, 2014 Mesaj tarihi: Ekim 5, 2014 Ü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
Pluton Mesaj tarihi: Ekim 5, 2014 Konuyu açan Mesaj tarihi: Ekim 5, 2014 Burda genelde temp exe oluşturarak yapmışlar. Benim aradığım formun içinde çalıştırmak. Dışarıya herhangi bir exe vermemek
SpiderS_DangeR Mesaj tarihi: Ekim 5, 2014 Mesaj tarihi: Ekim 5, 2014 http://stackoverflow.com/questions/758494/how-can-i-run-another-application-within-a-panel-of-my-c-sharp-program
Kojiroh Mesaj tarihi: Ekim 5, 2014 Mesaj tarihi: Ekim 5, 2014 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.
Pluton Mesaj tarihi: Ekim 5, 2014 Konuyu açan Mesaj tarihi: Ekim 5, 2014 Hmmm peki bu programın benim programımdan harici şekilde açılıp açılmadığını kontrol edebilir miyim?
Suark Mesaj tarihi: Ekim 5, 2014 Mesaj tarihi: Ekim 5, 2014 son sorduğunla ilgili http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher%28v=vs.110%29.aspx bu işe yararmı acaba? dosyaya erişim oldugunda tarihi falan değişir ya
Kojiroh Mesaj tarihi: Ekim 5, 2014 Mesaj tarihi: Ekim 5, 2014 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.
Shaklaban Mesaj tarihi: Ekim 6, 2014 Mesaj tarihi: Ekim 6, 2014 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.
Tcpip Mesaj tarihi: Ekim 6, 2014 Mesaj tarihi: Ekim 6, 2014 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.
Pluton Mesaj tarihi: Ekim 7, 2014 Konuyu açan Mesaj tarihi: Ekim 7, 2014 Olay UO değil zaten ya :) Örnek olarak UO aklıma geldi herkesin anlayacağı dilden onu örnek verdim.
Öne çıkan mesajlar