看板 Python 關於我們 聯絡資訊
不要再走歪路了, 前面推文回答的基本都是亂講 XD 雖然這個問題跟 Python 其實一點關係也沒有, 所以會這樣也是正常 如果你給 start 指令的參數不是絕對或相對路徑, 而且是執行檔 那麼它會用 ShellExecuteEx 執行它 這個 Windows API 函式會參照 registry 這個路徑下面的值 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths 如果你用 regedit 打開登錄檔, 會發現這下面包含了一堆 XXX.exe 名稱 這就是用來參照 start 獲得的執行檔的真實位置 例如我的長這樣(我沒裝 Google Chrome 所以這裡用 Firefox 舉例) https://d.pr/i/dt6idm 當你輸入 start firefox.exe 而當前路徑找不到這個執行檔時 Windows 會去找 HKLM\...\App Paths\firefox.exe\ 的值來用 因而可以正確執行, 不需要設定完整路徑 這個 registry 值通常是在程式安裝時設定 如果沒設好, 有可能是當初安裝時出錯或毀損之類的 不過如果有問題, 那也沒辦法, 就不能用了 如果你要修復倒是不難, 打開 regedit 把該有的值填進去就好 不過如果你要保證每台電腦都一定能正確執行, 那大概就辦不到 因為你實在沒辦法知道每台電腦的安裝是不是都完全正確 話又說回來, 如果你只是想打開網頁, 那其實根本不用這麼麻煩 用 start <網址> 就可以直接開了, 根本不需要指定程式 只是它會用預設網頁瀏覽器(所以可能不是 Google Chrome) 但是或許這也是好事 或者既然你是寫 Python, 其實有個 module 叫 webbrowser https://docs.python.org/3.6/library/webbrowser.html 這個就是用環境變數來找瀏覽器了 --
GNUGCC:void main(void) 的寫法是可行的唷^^08/10 00:59
GNUGCC:雖然這個寫法較傳統,但是語法與文法都正確哦^^08/10 02:16
GNUGCC:目前我使用的 Visual C++ 都接受 void main(void) 與 08/10 20:18
GNUGCC:int main(void),各位可以把 C++ 專案改成原生 C++ 類型來 08/10 20:19
GNUGCC:用 void main(void) 來寫發現也可通過編譯. 08/10 20:21
GNUGCC:這個就是 Visual C++ 的彈性.08/11 20:23
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.161.19.12 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1524715193.A.70C.html
gmccntzx1: 只是原PO家裡電腦的App Paths底下有chrome.exe,但仍無 04/26 12:10
gmccntzx1: 法靠`start chrome`開啟,這點比較奇怪0.0 04/26 12:11
znmkhxrw: 謝u大 只是你前面說regedit的跟g大是一樣的 已有路徑 04/26 12:50
znmkhxrw: 但是還是無法start 04/26 12:50
znmkhxrw: 然後start <網址> 與 webbrowser我回家再看 謝謝! 04/26 12:51
znmkhxrw: 這樣也可以避免有人沒裝chrome XD 04/26 12:51
uranusjr: 這真的有各種可能壞掉, 登錄檔就是個很煩的東西 orz 04/26 14:19
uranusjr: 如果可以還是就直接繞過比較好 04/26 14:20
MOONY135: 登錄檔很煩+1 04/29 14:39
adrianshum: 印象中start 也會找 PATH ?會的話,設path 至少比改r 05/10 13:53
adrianshum: egistry 簡單 05/10 13:53