C#, Interprocess Communication

Akhir-akhir ini gw lagi ngerjain skripsi, yang mana skripsi gw itu perlu nyambungin console application yang gw bikin pake bahasa pemrograman Python dengan user interface yang gw bikin pake C#. Salah satu cara yang bisa dipakai buat nyambungin program Python gw dengan user interfacenya yang dibikin pakai C# itu interprocess communication, yang bisa dilakuin pakai library standar dari C#.

Interprocess communication ini nggak sebatas bisa nyambungin program gw itu aja sih. Interprocess communication ini bisa dipakai buat ngambil output dari aplikasi-aplikasi console dalam bentuk string, lalu diproses di dalam program C# kita masing-masing. Untuk ngelakuinnya sendiri kita cuma perlu masukin beberapa baris kode ke program C# yang kita buat.

Ini potongan source code yang bisa dipakai untuk itu.

Process proc = new Process();
proc.StartInfo.FileName = "C:/Python27/python.exe";
proc.StartInfo.Arguments = "pysc.py";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.CreateNoWindow = true;
proc.EnableRaisingEvents = true;

string output = selectorProc.StandardOutput.ReadToEnd();

FileName nanti bisa diganti dengan program yang mau disambungin dengan program kita, lalu Arguments diisi argument yang diperluin program itu untuk bisa jalan. Misalnya kalau kita mau ngeping ke Google, lalu hasil pingnya diambil untuk diproses di program C# kita, isi variabel FileName bisa kita ganti dengan ping.exe & isi variabel Arguments bisa kita isi URL google. Programnya nanti jadi seperti ini.

Process proc = new Process();
proc.StartInfo.FileName = "ping.exe";
proc.StartInfo.Arguments = "google.com";
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardInput = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.CreateNoWindow = true;
proc.EnableRaisingEvents = true;

string output = selectorProc.StandardOutput.ReadToEnd();

Variabel-variabel lainnya sendiri gw belum ngecek apa gunanya, tapi variabel CreateNewWindow berguna supaya waktu program yang kita panggil dirun, window command promptnya nggak ditampilin. Kurang lebih berguna biar programnya kelihatan lebih bagus, karena kalau window consolenya ikut tampil mungkin agak mengganggu waktu proses yang dipanggil dijalankan.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s