2010-04-29 65 views
0

我運行兩個進程,進程A進程B使用下面的示例打開:如何查找在不同計算機之間工作的工作目錄。 - ç

createProcessHandle = CreateProcess(
TEXT("C:\\Users\Jamie\\Documents\\Application\\Debug\\ProcessA.exe"), 
        TEXT(""), 
        NULL, 
        NULL, 
        FALSE, 
        0, 
        NULL, 
        NULL, 
        &startupinfo, 
        &process_information 
        ); 

正如你所看到的這個過程是給它的路徑依賴,這個問題我已經是如果我更改ProcessA.exe的位置(例如備份/複製),那麼繼續重新編碼路徑是一個令人厭煩的過程。我希望能夠使其運行,而不必手動重新編碼路徑。

有人可以提出一個解決方案嗎?

編輯:我沒有訪問路徑環境變量

回答

2

基本上有兩種選擇。

  1. 使用相對路徑。
  2. 將目錄置於PATH環境變量中。在這種情況下,使用lpCommandLine,而不是lpApplicationName。
+0

不幸的是,我不能做選項2,你能向我解釋選項1嗎? – 2010-04-29 11:40:49

+1

請參閱http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx。基本上,如果ProcessA和ProcessB位於同一個目錄中,則只需放入ProcessA.exe即可。如果ProcessA位於名爲subdir的子目錄中,則可以將subidir/ProcessA.exe – 2010-04-29 11:50:26

+0

非常好,謝謝! – 2010-04-29 12:08:23