ShellExecute函团搭数,各参数含义,以及头文件自己穗凳找找。
CString strFile = _T("猜或旅E:\\1.bat")ShellExecute(NULL, _T("open"), strFile, _T(""), NULL, SW_HIDE)
是否为系统的UAC 没有开启导致。开启方法自己网上找,或者你WIN7是在 域环境下运行无法提段做升权限导致用下面代码可以解决重复运行的情况。但无法提权也会运行bat .你手烂可以加上判断。
@echo off
rem 兼容xp win7
%1 %2
ver|find "5.">nul&&goto :startbat
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :startbat","","runas",1)(window.close)&goto :eof
:startbat
rem 你bat 代码
pause
下面是我加了判断
@echo off
%1 %2
ver|find "5.">nul&&goto :main
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if "%errorlevel%" neq "0" mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :main h","","runas",1)(window.close)&goto :eof
:main
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if "%errorlevel%"=="0" (if "%3"=="h" (echo 你获取了管理员权限) else (echo 你有管理员权限)) else (echo 你握薯衡获取不到管理员权限,执行可能会有问题)
pause
1.CreateProcess2.ShellExecute
ShellExecute(NULL,_T("open"),GetAppPath()+_T("Install.bat"),NULL,NULL,SW_SHOW)
//GetAppPath()+_T("Install.bat"绝岁) 改为罩神你并闷睁要的绝对路径
3.WinExec
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)