el código PHP esta bien, pero no te servirá el retorno de valor, si quieres lo sacas:
$resultado = system("programac.exe $parametro");
en cuanto a como tomar el arreglo en C# en el enlace que te dí sale como hacerlo:
Código C:
Ver originalusing System;
class Program
{
static void Main(string[] args)
{
if (args == null)
{
Console.WriteLine("args is null"); // Check for null array
}
else
{
Console.Write("args length is ");
Console.WriteLine(args.Length); // Write array length
for (int i = 0; i < args.Length; i++) // Loop through array
{
string argument = args[i];
Console.Write("args index ");
Console.Write(i); // Write index
Console.Write(" is [");
Console.Write(argument); // Write string
Console.WriteLine("]");
}
}
Console.ReadLine();
}
}
con ese código obtienes el primer parámetro como args[0], el segundo como args[1], el tercero args[2], etc.