Ale*_*dru 3 c++ windows cmd visual-c++
我想在Windows中将提升的命令提示符启动到特定的工作目录.例如,我试过这个:
ShellExecute(
hWnd,
L"runas",
L"cmd.exe",
NULL,
m_szSelectedFile,
SW_SHOW
);
Run Code Online (Sandbox Code Playgroud)
哪里 m_szSelectedFile = L"C:\\Users\\User\\Desktop"
ShellExecute 记录为
HINSTANCE ShellExecute(
_In_opt_ HWND hwnd,
_In_opt_ LPCTSTR lpOperation,
_In_ LPCTSTR lpFile,
_In_opt_ LPCTSTR lpParameters,
_In_opt_ LPCTSTR lpDirectory,
_In_ INT nShowCmd
);
Run Code Online (Sandbox Code Playgroud)
不幸的是,它总是推出C:\WINDOWS\system32.我究竟做错了什么?
Microsoft在Windows 8中将此添加为安全功能.每当cmd.exe检测到它正在运行时,它会忽略其启动参数并始终启动%SystemRoot%\System32.您无法覆盖此行为.
但是,您可以将目录更改为提示中的第一个命令.要做到这一点,设置lpFile到"cmd.exe"正常.然后设置lpParameters为"/k cd /d d:\your\path".CMD将在启动时立即更改目录,然后保持打开状态以进一步执行命令.
| 归档时间: |
|
| 查看次数: |
1795 次 |
| 最近记录: |