麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C# > 正文

C#獲取Setup文件的運行路徑的方法

2023-05-20 20:23:32
字體:
來源:轉載
供稿:網友

在我 做的一個項目中因為需要在安裝時做配置,而在打包之前是不知道配置的具體信息的。用InstallShield來做打包好像做這樣的處理比較方便,但是使用Visual Studio創建安裝項目來打包時好像不是那么容易,在網上查找相關的資料一直沒有找到很好的方法來直接獲取其運行路徑,網上有人說繼承Installer來做,但是無論如何所能取得的路徑是系統msiexec.exe的運行路徑,所以這種方法看起來是行不通了。獲取其安裝路徑也是非常簡單而且方法有很多種。

想到以前在做項目時要求程序只能有一個運行實例,這種方法來處理豈不是很好,換種思路來處理:先取得當前運行的所有Process然后再找到那個Setup或是*.msi那不就好了。

想到著就趕快動手試驗,在程序中加上處理代碼,很快搞定。

Process[] processes = Process.GetProcesses();
string tmp = "";
int i = 0;//調試時為了查找線程的個數
foreach (Process pro in processes)
{
    //MSI Title即為你的打包文件在運行時顯示的標題
    if (pro.ProcessName.ToLower() == "msiexec" && pro.MainWindowTitle == "MSI Title")
    { 
    //這里在Vista下測試時因為要讀寫文件(由于Vista使用了UAC來增強安全性, 
    //要求必須以管理員身份運行,而直接運行msi文件只能以普通權限來運行), 
    //所以不讓用戶直接運行MSI文件,而要求必須從Setup.exe文件運行, 
    //如果你不需要在Vista下使用則不用如此處理 
    MessageBox.Show("Please run setup.exe", "ERROR", MessageBoxButtons.OK, MessageBoxIcon.Error); 
    throw new InstallException("run");
    }
    else if (pro.ProcessName.ToLower().IndexOf("setup")>0 && pro.MainWindowTitle == "MSI Title")
    {//判斷ProcessName是否是setup,并且其MainWindowTitle為你的安裝文件的Title
       tmp = tmp + pro.Id + "" + pro.ProcessName + Environment.NewLine;
       tmp = tmp + " " + i.ToString() + "=" + pro.MainModule.FileName
              +Environment.NewLine;//pro.MainModule.FileName即為Setup的完整運行路徑
       tmp = tmp + " " + i.ToString() + "=" + pro.MainWindowTitle + Environment.NewLine;
     }
}
MessageBox.Show(tmp);

不過此方法有點不妥之處,那就是如果用戶改變了Setup.exe或是*.msi的文件名就不好處理了,為了防止在用戶更改文件名后運行安裝,你可以在程序中加上判斷文件名更改的處理,給用戶提示。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 午夜视频在线免费播放 | 欧美一级黄色影院 | 一边吃奶一边摸下娇喘 | www.48xx.com| 91亚洲免费视频 | a集毛片 | 素人视频在线观看免费 | 免费在线观看成人av | 666sao | 国产精品99久久免费观看 | 在线视频观看一区二区 | 特黄一区二区三区 | 免费观看三级毛片 | 欧美乱码精品一区 | 欧美性受xxxxxx黑人xyx性爽 | 极品一级片 | 成人精品一区二区 | 2021国产精品视频 | 国产精品久久久久久久不卡 | 99综合视频| 黄色一级片在线免费观看 | 日韩中文字幕一区二区三区 | 欧美一级视屏 | 欧美精选一区二区 | 19禁国产精品福利视频 | 国产噜噜噜噜久久久久久久久 | 制服丝袜成人动漫 | 久久男人天堂 | 久久久久久三区 | 欧美视频在线一区二区三区 | 亚洲一级网站 | 宅男噜噜噜66国产在线观看 | 91国内精品久久久久免费影院 | 成人国产精品免费 | 在线看成人av | 日本精品免费观看 | 国产艳妇av视国产精选av一区 | 黄色午夜剧场 | 国产91成人 | 九九热免费精品视频 | 久久久www成人免费毛片 |