win10无法运行C语言文件,关于win10系统获取不到C:\Program Files\下面文件的全路径...

本帖最后由 baolizhu 于 2017-4-8 07:29 编辑

批处理代码如下:   希望各位前辈指出,小弟在此先谢谢了

@echo off

ECHO.

ECHO ==========================================

ECHO 以管理员身份运行exe文件

ECHO ==========================================

:init

setlocal DisableDelayedExpansion

set "batchPath=%~0"

for %%k in (%0) do set batchName=%%~nk

set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"

setlocal EnableDelayedExpansion

:checkPrivileges

NET FILE 1>NUL 2>NUL

if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )

:getPrivileges

if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)

ECHO.

ECHO ********************************

ECHO 请求 UAC 权限批准……

ECHO ********************************

ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"

ECHO args = "ELEV " >> "%vbsGetPrivileges%"

ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"

ECHO args = args ^& strArg ^& " "  >> "%vbsGetPrivileges%"

ECHO Next >> "%vbsGetPrivileges%"

ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"

"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*

exit /B

:gotPrivileges

setlocal & pushd.

cd /d %~dp0

if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul  &  shift /1)

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:: 以下为需要运行的批处理文件代码 ::

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

reg add "HKCR\exefile\shell\appmanager" /f /v "MUIVerb" /t REG_EXPAND_SZ /d "添加到以管理员身份运行"

reg add "HKCR\exefile\shell\appmanager" /f /v "Icon" /t REG_EXPAND_SZ /d "imageres.dll,77"

reg add "HKCR\exefile\shell\appmanager\Command" /f /ve /t REG_EXPAND_SZ /d "\"%0\" \"%%l\""

MODE CON: COLS=56 LINES=23

TITLE 正在加载EXE文件

CLS

:MAIN

:: 重置变量

SET EXE_DISK=

SET EXENAMEEXA=

SET EXENAMEEXB=

SET NAMESEX=

SET FULLNAME=

SET EX=

:: 当前时间

SET tm1=%time:~0,2%

SET tm2=%time:~3,2%

SET tm3=%time:~6,2%

:: #########################################################################################

:: 获取操作信息

if "%1"=="" GOTO :HELP_EXE

if "%1"=="%~0" GOTO :LOAD_EXE

if "%1"=="%~dp0%~n0%~x0" GOTO :LOAD_EXE

:LOAD_EXE

:: 得到文件路径完整信息

SET EXE_PATH=%1

GOTO SLOAD_EXE

:SLOAD_EXE

:: 获取EXE文件的路径名称等信息

for /f "delims==" %%i in ("%EXE_PATH%") Do (

SET "EXE_DISK=%%~di"

SET "EXENAMEEXA=%%~ni"

SET "EXENAMEEXB=%%~nxi"

SET "NAMESEX=%%~pi%%~nxi"

SET "FULLNAME=%%~dpi%%~nxi"

SET "EX=%%~xi"

)

if /i "%EX%" == ".EXE" (ECHO.&ECHO.正在加载 %EXE_PATH% …) ELSE GOTO :NO_EXE

:: 添加EXE到HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"注册表子键下

echo.

echo.

echo.

echo.

reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%FULLNAME%" /t REG_SZ /d "~ RUNASADMIN" /f

echo.

echo.

echo  已成功添加"%FULLNAME%"到HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers"注册表了键下

echo.

echo.

pause

exit

:: #########################################################################################

:HELP_EXE

COLOR 0a

MODE CON: COLS=56 LINES=13

TITLE 拖放您要加载的EXE文件到此 …

ECHO.

ECHO.

ECHO.   请将您要加载的EXE文件拖放到本窗口中!然后按回车键!

ECHO.

ECHO.

ECHO.   注意:EXE不要在带有空格的目录中,EXE文件名没有空格!

ECHO.

ECHO.

SET EXE_PATH=%1

SET /P EXE_PATH=%1

COLOR 0a

MODE CON: COLS=56 LINES=23

TITLE 正在加载EXE文件

CLS

GOTO SLOAD_EXE

:: #########################################################################################

:NO_EXE

COLOR 0a

MODE CON: COLS=56 LINES=13

TITLE %EXE_PATH% 不是EXE可执行文件 …

ECHO.

ECHO.                    !!!错误 !!!

ECHO.

ECHO.

ECHO.   无法加载 %EXE_PATH%

ECHO.

ECHO.   %EXENAMEEXB% 不是EXE可执行文件!!!

ECHO.

ECHO.

ECHO.   请按任意键继续 ……

ECHO.

Pause >nul

SET EXE_DISK=

SET EXENAMEEXA=

SET EXENAMEEXB=

SET NAMESEX=

SET FULLNAME=

SET EX=

GOTO HELP_EXE

:: #########################################################################################

:ON_EXES

COLOR 0a

MODE CON: COLS=56 LINES=13

TITLE %FULLNAME% 已存在 …

REG QUERY "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "%FULLNAME%"

ECHO.

ECHO.

ECHO  %FULLNAME% 已在HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers子键下 !!!

ECHO.

ECHO.

ECHO.

ECHO.

Pause >nul

SET EXE_DISK=

SET EXENAMEEXA=

SET EXENAMEEXB=

SET NAMESEX=

SET FULLNAME=

SET EX=

goto MAIN

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值