そのabcdefghとかいう変数が一切出現しないソースコードを載せられても、いささか反応に困りますが。
まず、基本的に、値を受け取る側が受け取れるように作られている必要があります。
今回の件では、起動時に渡せば良いだけのようなので、コマンドライン引数で受け渡しすれば良いのではないでしょうか。
渡す側は、Process.Startの第二引数に一連の値を空白区切りによる一つの文字列として指定します。
受け取る側は、main(int argc, char *argv[])として、渡されたコマンドライン引数をmain関数の引数で文字列配列の形で受け取ります。参考:http://www9.plala.or.jp/sgwr-t/c/sec11-4.html
ただし文字列としてのみ受け渡し可能であるので、受け取る側がたとえば数値として扱いたいのなら、受け取った後に適切に変換する必要があります。