Tuesday 8 October 2013

Csharp - Redirect Output of Process

RedirectStandardOutput eliminates the need for output files. It allows us to use a console program directly inside a C# program.

Related Article Process in C#:
C# (CSharp) Process - .NET Framework

I wanted to launch a script from a Windows Form application and display the standard output in a text box as the process was running. Surely you're not surprised to learn that multithreading is involved. It turns out you'll have at least four threads running to do this simple task.

A script or executable can be run using System.Diagnostics.Process. The string FileName is set to the executable (e.g. perl.exe, Run.bat, ConsoleApplication.exe). The string Arguments is set to the command-line arguments for that executable (e.g. perlscript.pl, filename1.txt filename2.txt, etc). The following code will start that executable.

I will use Paping executable on this example.
Here are syntax option paping.exe command
Now download Paping here and paste in your project folder bin\Debug
Design your Windows Form project

We have 1 Label , 2 TextBox and 2 Button
Code inside Form is

        delegate void SetTextCallback(string text);

        public Form1()
        {
            InitializeComponent();
        }
 
        private void SetText(string text)
        {
            // InvokeRequired required compares the thread ID of the
            // calling thread to the thread ID of the creating thread.
            // If these threads are different, it returns true.
            if (this.textBox1.InvokeRequired)
            {
                SetTextCallback d = new SetTextCallback(SetText);
                this.Invoke(d, new object[] { text });
            }
            else
            {
                this.textBox2.AppendText(text + Environment.NewLine);
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Process process;
            process = new Process();
            process.StartInfo.FileName = Application.StartupPath + "\\paping.exe";
            process.StartInfo.Arguments = textBox1.Text;
            process.StartInfo.UseShellExecute = false;
            process.StartInfo.CreateNoWindow = true;
            process.StartInfo.RedirectStandardOutput = true;
            process.OutputDataReceived += new DataReceivedEventHandler(OutputHandler);

            process.Start();
            process.BeginOutputReadLine();
        }

        public void OutputHandler(object sendingProcess, DataReceivedEventArgs outLine)
        {
            SetText(outLine.Data);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Process[] pcs_check = Process.GetProcessesByName("paping");
            if (pcs_check.Length > 0)
                foreach (var p in pcs_check)
                    p.Kill();
        }

The ouput of paping command
www.google.com -p 80 -c 4
it's mean ping address google with port 80 and count until 4 time.


Download full source project "RedirectStandardOutput-Paping"

Monday 16 September 2013

C# (CSharp) Process - .NET Framework



Starts a process resource and associates it with a Process component.
Namespace: System.Diagnostics
Assembly: System (in System.dll)

The System.Diagnostics namespace contains functions that allow you to manage processes, threads, eventlogs and performance information.

The System.Diagnostics.Process object gives you access to functionality enabling you to manage system processes. We will use this object to get a list of running processes.

Add this line to your using list:

using System.Diagnostics;

Process. A process starts. It does something important. And then it terminates. With processes, we run separate programs at the level of the operating system.
Start, a static method, calls external applications. It allows users to view documents and web pages. It also executes EXE programs and command-line utilities.
A Project - Arguments:
The Process.Start method has overloaded forms. So you can call it with more than argument.

C# program that open notepad
using System.Diagnostics;

class Program
{
        static void Main()
       {
               // Use Process.Start here.
               Process.Start("Notepad.exe");
       }
}


For more information about this example, here.

ProcessStartInfo:
In this example we use ProcessStartInfo. In it, we can store a process' properties: details of its execution.
C# program that open notepad with argument
using System.Diagnostics;

class Program
{
      static void Main()
     {
           ProcessStartInfo startInfo = new ProcessStartInfo();
           startInfo.FileName = "notepad.exe";
           startInfo.Arguments = "/A C:\filetext.txt";
           Process.Start(startInfo);
      }
}


Properties. To refresh our memory, here is a partial listing of Process properties. We will use most of these when starting programs from a program.
ProcessStartInfo:
Stores information about the process—specifically how the process is started and its configuration.
FileName:
The program or filename you want to run. It can be a program such as "NOTEPAD.EXE". Sometimes we can just specify a file name.
Arguments: Stores the arguments, such as -flags or filename. This is a string property.
CreateNoWindow: Allows you to silently run a command line program. It does not flash a console window.
WindowStyle: Use this to set windows as hidden. ProcessWindowStyle.Hidden is often useful.
UserName, WorkingDirectory, Domain: These control OS-specific parameters—for more complex situations.

You can learn more Process Properties List on msdn here. ^_^
Oke I think it's enough simple information about "C# (CSharp) Process -  .NET Framework"

Read another related article :
How to redirect output of Process on C# (Csharp) .Net Framework

Thursday 5 September 2013

proxyTunnelGUI - Stable


proxyTunnelGUI - Stable is quite simply faster, more stable, boost faster for HTTP/S tunneling using proxyTunnel, Tunnelier and Proxifier.proxyTunnelGUI - Stable is an application displays you the connectivity status and IP. It also displays upload and download size with current time.




Key Features of proxyTunnelGUI - Stable
  • Network Meter
  • 6 clientProfile Ssh
  • 5 modeSsh - launcher
  • - +1, +2, +4, +6, +8, +12
  • loadProfile .bscp
  • Automatic read listen port profile .bscp

proxyTunnelGUI - Stable