Показать полную графическую версию : Cmd 2 Vbs
gen0m.rsw
14-09-2014, 23:06
Всем участникам респект!!!
Помогите правильно перевести CMD скрипт в VBS
%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe /codebase "%windir%\system32\ShellExt\APK Shell Extension\apkshellext.dll"
Если делать по уму — как-то так (не проверялось!):
Option Explicit
Const WindowsFolder = 0
Const SystemFolder = 1
Dim objFSO
Dim strFile1
Dim strFile2
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
strFile1 = objFSO.BuildPath(objFSO.GetSpecialFolder(WindowsFolder), "Microsoft.NET\Framework\v4.0.30319\regasm.exe")
If objFSO.FileExists(strFile1) Then
strFile2 = objFSO.BuildPath(objFSO.GetSpecialFolder(SystemFolder), "ShellExt\APK Shell Extension\apkshellext.dll")
If objFSO.FileExists(strFile2) Then
WScript.CreateObject("WScript.Shell").Run """" & strFile1 & """ /codebase """ & strFile2 & """", 1, True
Else
WScript.Echo "Can't find file [" & strFile2 & "]."
WScript.Quit 2
End If
Else
WScript.Echo "Can't find file [" & strFile1 & "]."
WScript.Quit 1
End If
Set objFSO = Nothing
WScript.Quit 0
gen0m.rsw
18-09-2014, 12:14
Iska
Скрип работает(если выше путь совпадает)! Как всегда не досказал!
Сборку дЭлаю, в Advanced Installer 10.7
Не хочу лишние файлы(мусор, по уму хочется, да и приятно) в инстолятор пихать!!!
Есть конечно CMD оригинальный(ниже), но в чем проблема, путь переменный(у человека должОн быть выбор,
по Ентому активно использую "Переменные среды")!!!!
"%windir%\Microsoft.NET\Framework64\v4.0.30319\regasm.exe" /codebase "%~dp0\apkshellext.dll"
Вот Ентот скрипт на Языке Advanced Installer дОлжон выглядеть так
"[WindowsFolder]Microsoft.NET\Framework64\v4.0.30319\regasm.exe" /codebase "[APKShellExtension_Dir]apkshellext.dll"
или так
"[WindowsFolder]\Microsoft.NET\Framework64\v4.0.30319\regasm.exe" /codebase "[APKShellExtension_Dir]\apkshellext.dll"
Да и на кавычки ему нас Рать(а нас больше), сам определяет(в отличие от VBS, ШОТО там иХних много)
Вот как то так!!! Спасибо за понимание Iska
А, ДА original cmd code, енто самого монстра(хорошего правда)!!!
@ECHO OFF
ECHO ################################################
ECHO ## APK Shell Extension ##
ECHO ## ##
ECHO ## http://apkshellext.googlecode.com ##
ECHO ################################################
@echo off
REM === check and get the UAC for administrator privilege ===
REM === code from https://sites.google.com/site/eneerge/scripts/batchgotadmin
REM ===
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
:--------------------------------------
REM SYSTEMINFO | FIND /i "x64-based pc"
echo %PROCESSOR_IDENTIFIER% | FIND /i "x86"
IF %ERRORLEVEL%==1 (
"%windir%\Microsoft.NET\Framework64\v4.0.30319\regasm.exe" /codebase "%~dp0\apkshellext.dll"
) ELSE (
"%windir%\Microsoft.NET\Framework\v4.0.30319\regasm.exe" /codebase "%~dp0\apkshellext.dll"
)
ECHO Done!
ECHO.
ECHO /-------------------------------------------------------------------\
ECHO apkshellext is an open-source project,
ECHO Please visit http://apkshellext.googlecode.com for more information
ECHO \-------------------------------------------------------------------/
PAUSE
@ECHO ON
Тоже похожая проблема с QTAddressBar, но была решена просто(НЕ ПРОСТО) добавлением ветвей в реестр(120 записей и конечно в супер папку Assembly\и дальше), разумеется при наличии NET 2
Хотя тоже проблема решается тоже через
"%windir%\Microsoft.NET\Framework64\v4.0.30319\regasm.exe" /codebase "%~dp0\QTAddressBar.dll"
Но с apkshellext.dll файл реестра перевалил за 2000 строк(и Енто я его почистил, вплоть до пробелов), такое количество записей я не могу(не хочу) добавлять в инстолятор(MSI)!!!
Спасибо за понимание Iska »
Вы напрасно благодарите меня — я ничего не понял в Вашем сумбурном описании с настойчивым коверканием языка.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.