2、為了使得Web端的Javascript能夠調用EDNMS.UI.exe 的Winform程序,我們需要在安裝Winform的時候,把安裝路徑加入到操作系統Path變量中,操作系統的Path變量的內容放置在注冊表節點SYSTEM\\ControlSet001\\Control\\Session Manager\\Environment的Path中,下面是自定義安裝操作的代碼。
[RunInstaller(true)]
public class InstallAction : Installer
{
private string virtualRoot = string.Empty; // 安裝虛擬路徑
private string physicalRoot = string.Empty; // 安裝物理路徑
/// <summary>
/// 必需的設計器變量。
/// </summary>
private Container components = null;
public InstallAction()
{
// 該調用是設計器所必需的。
InitializeComponent();
}
public override void Install(IDictionary stateSaver)
{
base.Install(stateSaver);
try
{
......
//修改Path環境變量
UpdatePathEnvironment();
}
catch (Exception ex)
{
WriteLog(ex.Message + "\r\n " + ex.StackTrace);
}
}
/// <summary>
/// 加入安裝文件的路徑,方便Web端訪問
/// </summary>
private void UpdatePathEnvironment()
{
//得到原來Path的變量值
string registerKey = "SYSTEM\\ControlSet001\\Control\\Session Manager\\Environment";
string key = "Path";
RegistryKey regKey = Registry.LocalMachine.OpenSubKey(registerKey);
string result = regKey.GetValue(key).ToString();
//添加新的值
if (result.IndexOf(physicalRoot) < 0)
{
result += string.Format(";{0}", physicalRoot);
}
regKey = Registry.LocalMachine.OpenSubKey(registerKey, RegistryKeyPermissionCheck.ReadWriteSubTree, RegistryRights.SetValue);
regKey.SetValue(key, result);
}
......
}