Re: [問題] 用cmd開啟chrome瀏覽器

作者: uranusjr (←這人是超級笨蛋)   2018-04-26 11:59:41
不要再走歪路了, 前面推文回答的基本都是亂講 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
這個就是用環境變數來找瀏覽器了
作者: gmccntzx1 (o.O)   2018-04-26 12:10:00
只是原PO家裡電腦的App Paths底下有chrome.exe,但仍無法靠`start chrome`開啟,這點比較奇怪0.0
作者: znmkhxrw (QQ)   2018-04-26 12:50:00
謝u大 只是你前面說regedit的跟g大是一樣的 已有路徑但是還是無法start然後start <網址> 與 webbrowser我回家再看 謝謝!這樣也可以避免有人沒裝chrome XD
作者: uranusjr (←這人是超級笨蛋)   2018-04-26 14:19:00
這真的有各種可能壞掉, 登錄檔就是個很煩的東西 orz如果可以還是就直接繞過比較好
作者: GNUGCC (-std=c++14)   2018-08-10 00:59:00
void main(void) 的寫法是可行的唷^^雖然這個寫法較傳統,但是語法與文法都正確哦^^目前我使用的 Visual C++ 都接受 void main(void) 與int main(void),各位可以把 C++ 專案改成原生 C++ 類型來用 void main(void) 來寫發現也可通過編譯.這個就是 Visual C++ 的彈性.
作者: MOONY135 (談無慾)   2018-04-29 14:39:00
登錄檔很煩+1
作者: adrianshum (Alien)   2018-05-10 13:53:00
印象中start 也會找 PATH ?會的話,設path 至少比改registry 簡單

Links booklink

Contact Us: admin [ a t ] ucptt.com