楼主:
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
作者: 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++ 的弹性.