a)呼叫外部程式
//呼叫程式(啟動)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Diagnostics;
namespace Activate_exe
{
static class Program
{
/// <summary>
/// 應用程式的主要進入點。
/// </summary>
[STAThread]
static void Main()
{
string target = 目標路徑;
ProcessStartInfo pInfo = new ProcessStartInfo(target);
pInfo.Arguments = "我是參數";
using (Process p = new Process())
{
p.StartInfo = pInfo;
p.Start();
}
}
}
}
//主程式(被呼叫)
//在Program.cs內部
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace (被呼叫的程式,名稱自行更改)
{
static class Program
{
/// <summary>
/// 應用程式的主要進入點。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (args.Length == 0)
{
Application.Run(new Form1());
}
else
{
Application.Run(new Form1(args[0].ToString()));
}
}
}
}
呼叫程式十分簡單,也不需要用到winform,就直接寫在Program.cs即可
一開始記得要加入"using System.Diagnostics;"不然ProcessStartInfo 沒法用,
new一個ProcessStartInfo(要呼叫的程式路徑),然後 ProcessStartInfo.Argument內就是要傳的參數。
(參數遇到空格 疑似可以用\" (http://blogs.msdn.com/b/csharpfaq/archive/2004/03/12/88415.aspx)來解決)
傳多個參數,就是使用空格作為分隔 參數A空格B,在Form1値得注意的地方就是有兩個多載,當
沒有參數傳來的時後就用Form1(),有則Form1(args[])
-----------------------------------------------------------------------------------------------------------
被呼叫的程式要接參數,所以main(string[] args
主程式//Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Argument_IN_exe
{
public partial class Form1 : Form
{
private string _args;
public Form1()
{
InitializeComponent();
}
public Form1(string value)
{
InitializeComponent();
if (!string.IsNullOrEmpty(value))
{
_args = value;
MessageBox.Show(_args);
}
}
}
}
b)不會顯示出來
要讓程式一開啟就不顯示出來,目前只知道這個方法(最小化+不顯是在系統列)
寫在Form load事件當中,一讀就縮最小,但是有個問題就是你無法停止它(所以才需要
c.強制關閉程式)
private void Form1_Load_1(object sender, EventArgs e)
{
this.WindowState = FormWindowState.Minimized;
this.ShowInTaskbar = false;
this.Hide();
}
private void Form1_Shown(object sender, EventArgs e)
{
this.Hide();
}
c)結束強制關閉程式
光有Close()是不夠的,可以試試看Ctrl+Alt+Del,會發現沒有全部關完。
加入Enviroment這行吧!
this.Close();
Environment.Exit(Environment.ExitCode);
參考: http://www.dotblogs.com.tw/atowngit/archive/2009/12/26/12681.aspx