2016-05-19 64 views
-3

我一直在開發語音應用了一段時間,我想嘗試不同的東西打開的程序。我想打開程序,而無需手動把成才這樣的計劃爲代碼:如何編程方式使用文件目錄

Process.Start("notepad.exe"); 

我想知道你將如何使用文件目錄下執行一個程序,例如:

string appPath = Path.GetDirectoryName(Application.ExecutablePath); 

原因爲什麼我想這樣做是我不知道客戶端將在計算機系統上有什麼程序..我已經嘗試過研究,我發現的一切都像我一直在編程。

那麼,有沒有辦法拉可執行程序和執行程序?

完整的示例:

if (speech == " ") 
{ 
    Start.Process(Application.ExecutablePath); 
} 

或反正是有做到這一點。請僅誰知道如何代碼應該響應人。請不要告訴我什麼我已經發布了..閱讀問題,然後再回答。

+0

爲什麼「來自注冊表」是這裏的一個要求?當然,更明智的做法是檢查已經安裝在開始菜單中的各種快捷方式?即這些是應用程序安裝以允許用戶啓動程序的「入口點」。 –

+0

那麼我不能問每個客戶端安裝程序,給我一個開始菜單的列表..我認爲它會更容易當一個新的程序安裝它通過程序目錄。但是,爲了我自己的目的,我可以手動放入每個程序,因爲我知道我有什麼程序。以您爲例,我不知道您的計算機上安裝了哪些程序。那麼,如何讓我的應用程序識別您的應用程序以及您安裝的新應用程序?因此,您可以這樣說「打開(應用程序)」查看Microsoft Speech,Cortana或其他語音激活程序。 – ivansystems

+0

你認爲你的程序能夠掃描註冊表中的正確路徑來啓動程序(而事實上,通常存儲在註冊表中的唯一的可執行文件的信息是路徑卸載程序),但你莫名其妙地認爲你的程序是*無能爲力*搜索[開始菜單](https://msdn.microsoft.com/en-us/library/system.environment.specialfolder(v = vs.110).aspx)? –

回答

-1

OK,這可以很容易地使用下面的代碼固定:

下面是如何得到使用System.IO 所有exe應用;使用System.Windows.Forms的 ;

string appPath = Path.GetDirectoryName(Application.ExecutablePath); 

下面的代碼是讓使用System.IO 運行的應用程序; using System.Reflection;

string path = Path.GetDirectoryName(Assembly.GetAssembly(typeof(MyClass)).CodeBase); 

現在,我可以輕鬆地使用GetProcess方法拉取procId,以關閉已打開的應用程序。

相關問題