2016-02-24 53 views
0

我想將帶有.exe文件的信息讀入另一個腳本。 之後,可以立即關閉此.exe文件。Process.Kill非靜態字段錯誤

我使用下面的代碼:

static void CallFile() 
    { 
    Process.Start(File.exe); 
    Process.Kill(); 
    } 

我有幾個網站,這些是最好/最簡單的命令,以便打開和關閉特定的文件使用中發現。不過,我有以下的錯誤與我process.kill:

An object reference is required for the non-static field, method, or property 'Process.Kill()' 

這是一個函數,它是靜態的 通常加入的話static解決了這個錯誤。但是,這給出了修改器static對此項無效的錯誤。有人可以告訴我我做錯了什麼嗎?

在此先感謝

+1

提示1:你試圖殺死一個進程*哪一個*進程?你如何期待'Process.Kill()'語句知道?提示2:'Process.Start'方法返回一個對'Process '對象... –

回答

1

更改您這樣的代碼:

var p = Process.Start(File.exe); 
p.Kill(); 

p實例Process。您收到的錯誤消息是說您無法直接調用實例方法(即Process);您必須在該類的實例上調用它。所需要的「對象引用」錯誤指的是,例如,p

想想這樣說:它不會讓你感覺能夠直接調用Process.Kill(); - 也就是說,如果它靜態方法而不是實例方法;您將通過該調用定位哪個進程?您可能有數百個進程正在運行;它不會假定它是您最後一個啓動的進程(例如,通過Process.Start(File.exe);

+0

也,你mig需要等待File.exe完成? – urlreader

+0

@ roryap非常感謝您的回答!它解決了我的問題,更重要的是,我明白我的代碼有什麼問題:) – MW1

+0

@urlreader是的,我想檢查的下一件事是什麼時間讓其他程序完成。但這可能會是一個試驗和錯誤:) – MW1

相關問題