Подтвердить что ты не робот

Как преобразовать VBScript в исполняемый файл (EXE)?

Я просмотрел информацию для преобразования VBScript (*.vbs) в исполняемый файл и понял, что большинство доступных инструментов фактически завершают script в исполняемом файле. Пробовал несколько инструментов, и он не работал так хорошо, как ожидалось. Я попробовал IExpress (в Windows XP) для создания файла кэширования собственной машины Win32, но он не вызывал должным образом на машинах Windows 7.

Итак, я ищу способ скомпилировать vbs в exe. Я пытаюсь перенести мой текущий script в VB Express 2008, но я не имею предварительного знания Visual Basic здесь. Есть много ошибок, но я все еще стараюсь.

Кто-нибудь может посоветовать мне, как мне исходить? Я имею в виду, может ли самораспаковывающийся архив работать вместо автономного исполняемого файла ? Но скажем, как Winzip, я не знаю, как заставить его запускать script после извлечения.

Любые идеи?

p/s - перефразирует, если это не ясно.

Спасибо.

4b9b3361

Ответ 1

Невозможно преобразовать файл VBScript (.vbs) в исполняемый файл (.exe), потому что VBScript не является скомпилированным языком. Процесс преобразования исходного кода в собственный исполняемый код называемый "компиляция" , и он не поддерживается языками сценариев, такими как VBScript.

Конечно, вы можете добавить свой script в самораспаковывающийся архив, используя что-то вроде WinZip, но все, что будет делать, это сжать его. Он сомневается, что размер файла будет заметно уменьшаться, и, поскольку для него начинается простой текстовый файл, его вообще не нужно сжимать. Единственная цель самораспаковывающегося архива заключается в том, что на компьютере конечного пользователя не требуется программное обеспечение для декомпрессии (например, WinZip), чтобы иметь возможность извлекать или "распаковывать" файл. Если он не сжимается в первую очередь, это спорная точка.

В качестве альтернативы, как вы упомянули, есть способы обернуть файлы кода VBScript в автономном исполняемом файле, но это всего лишь обертки, которые автоматически выполняют script (в текущем состоянии без компиляции), когда пользователь дважды нажимает на файл .exe. Я полагаю, что это может иметь свои преимущества, но это не похоже на то, что вы ищете.

Чтобы по-настоящему преобразовать ваш VBScript в исполняемый файл, вам придется переписать его на другом языке, который может быть скомпилирован. Visual Basic 6 (последняя версия VB, перед внедрением .NET Framework) чрезвычайно похожа на синтаксис VBScript, но поддерживает компиляцию на собственный код. Если вы переместите код VBScript на VB 6, вы можете скомпилировать его в собственный исполняемый файл. Запуск файла .exe потребует, чтобы пользователь установил VB 6 Run-time libraries, но они встроены в большинство версий Windows, которые найденный сейчас в дикой природе.

В качестве альтернативы вы можете пойти и перейти на Visual Basic.NET, который по-прежнему похож на синтаксис VB 6 и VBScript ( хотя он не будет нигде рядом с миграцией вырезания и пасты). Программы VB.NET также будут скомпилированы в .exe файл, но для его установки на пользовательском компьютере требуется среда выполнения .NET Framework. К счастью, это также стало обычным явлением, и его можно легко перераспределить, если у ваших пользователей его нет. Вы упомянули об этом маршруте в своем вопросе (перенос текущего script в VB Express 2008, который использует VB.NET), но вы получили много ошибок. Это то, что я имею в виду, это далеко от миграции с вырезами и пасты. Существуют некоторые огромные различия между VB 6/VBScript и VB.NET, несмотря на некоторые поверхностные синтаксические сходства. Если вы хотите, чтобы помощь была перенесена на ваш VBScript, вы можете задать вопрос здесь о переполнении стека. В конечном счете, это, вероятно, лучший способ сделать то, что вы хотите, но я не могу обещать вам, что это будет просто.

Ответ 2

Вы можете использовать программное обеспечение VBSedit для преобразования вашего кода VBS в файл .exe. Вы можете скачать бесплатную версию из Интернета и выполнить установку vbsedit в вашей системе и преобразовать файлы в формат EXE.

Vbsedit - хорошее приложение для VBscripter's

Ответ 4

ScriptCryptor из http://www.abyssmedia.com/scriptcryptor/ сделал компилятор GOOD для vbs для exe, js к exe и пакету для exe. Нужно заплатить $100 ++.

Ответ 5

Дополнительная информация

Чтобы найти компилятор, у вас будет установлен 1 на .net версию, введите командную строку.

dir c:\Windows\Microsoft.NET\vbc.exe /a/s

Windows Forms

Для версии Windows Forms (без консольного окна, и мы не собираемся создавать какие-либо формы, хотя вы можете, если хотите).

Скомпилируйте строку в командной строке.

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /t:winexe "%userprofile%\desktop\VBS2Exe.vb"

Текст для VBS2EXE.vb

Imports System.Windows.Forms 

Partial Class MyForm : Inherits Form 

Private Sub InitializeComponent() 


End Sub

Public Sub New() 

InitializeComponent() 

End Sub

Public Shared Sub Main() 

Dim sc as object 
Dim Scrpt as string

sc = createObject("MSScriptControl.ScriptControl")

Scrpt = "msgbox " & chr(34) & "Hi there I'm a form" & chr(34)

With SC 
.Language = "VBScript" 
.UseSafeSubset = False 
.AllowUI = True 
End With


sc.addcode(Scrpt)


End Sub

End Class

Использование этих необязательных параметров дает вам значок и манифест. В манифесте вы можете указать, что запуск выполняется как обычно, запустите повышение, если admin, только работает с повышенным уровнем.

/win32icon: задает файл значка Win32 (.ico) для ресурсов Win32 по умолчанию.

/win32manifest: предоставленный файл встроен в секцию манифеста выходного PE.

В теории у меня UAC выключен, поэтому не могу проверить, но поместите этот текстовый файл на рабочий стол и назовите его vbs2exe.manifest, сохраните его как UTF-8.

Командная строка

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /t:winexe /win32manifest:"%userprofile%\desktop\VBS2Exe.manifest" "%userprofile%\desktop\VBS2Exe.vb"

манифест

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
  <assembly xmlns="urn:schemas-microsoft-com:asm.v1" 
  manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" 
  processorArchitecture="*" name="VBS2EXE" type="win32" /> 
  <description>Script to Exe</description> 
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
  <security> <requestedPrivileges> 
  <requestedExecutionLevel level="requireAdministrator" 
  uiAccess="false" /> </requestedPrivileges> 
  </security> </trustInfo> </assembly>

Надеюсь, теперь он будет работать только как администратор.

Предоставить доступ к объектам хоста

Вот пример, предоставляющий vbscript доступ к объекту .NET.

Imports System.Windows.Forms 

Partial Class MyForm : Inherits Form 

Private Sub InitializeComponent() 


End Sub 

Public Sub New() 

InitializeComponent() 

End Sub 

Public Shared Sub Main() 

Dim sc as object
Dim Scrpt as string 

sc = createObject("MSScriptControl.ScriptControl") 

Scrpt = "msgbox " & chr(34) & "Hi there I'm a form" & chr(34) & ":msgbox meScript.state" 

With SC
.Language = "VBScript"
.UseSafeSubset = False
.AllowUI = True
.addobject("meScript", SC, true)
End With 


sc.addcode(Scrpt) 


End Sub 

End Class 

Вставить информацию о версии

Загрузите файл vbs2exe.res из https://skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121 и поместите на рабочий стол.

Загрузите ResHacker из http://www.angusj.com/resourcehacker

Откройте файл vbs2exe.res в ResHacker. Отправляйся. Нажмите кнопку "Скомпилировать". Нажмите "Меню" - "Сохранить".

Введите

"C:\Windows\Microsoft.NET\Framework\v4.0.30319\vbc.exe" /t:winexe /win32manifest:"%userprofile%\desktop\VBS2Exe.manifest" /win32resource:"%userprofile%\desktop\VBS2Exe.res" "%userprofile%\desktop\VBS2Exe.vb"

Ответ 6

Вот пара возможных решений...

Я еще не пробовал все это, но я скоро их попробую.

Примечание. У меня нет личного или финансового подключения к любому из этих инструментов.

1) VB Script в EXE-конвертер (НЕ-компилятор): (бесплатно)
vbs2exe.com.

Произведенный exe представляется истинным EXE.

На своем веб-сайте:

VBS to EXE - это бесплатный онлайн-конвертер, который не только конвертирует ваши файлы vbs в exe, но также:

1- Зашифруйте исходный код файла vbs с помощью 128-битного ключа.
 2- Позволяет вам называть win32 API
 3- Если у вас возникли проблемы с Windows Vista, особенно когда UAC включен, вы можете дать VBS EXE попробовать.
 4- Нет необходимости в wscript.exe для запуска ваших vbs.
 5- Ваш Script никогда не сохраняется на жестком диске, как некоторые другие преобразователи. это TRUE exe не экстрактор.

Это решение должно работать, даже если wscript/cscript не установлен на компьютере.

В принципе, это создает настоящий .EXE файл. Внутри созданного .EXE есть "движок", который заменяет wscript/cscript и зашифрованную копию вашего кода VB Script. Этот сменный двигатель выполняет ваш код IN MEMORY без вызова wscript/cscript для этого.


2) Скомпилируйте и преобразуйте VBS в EXE...:
ExeScript

Текущая версия - 3.5.

Это НЕ БЕСПЛАТНОЕ решение. У них 15-дневная пробная версия. После этого вам необходимо купить лицензию на здоровую $44,96 (домашняя лицензия/некоммерческая) или $89,95 (бизнес-лицензия/коммерческое использование).

Кажется, он работает аналогично предыдущему решению.

По сообщению форума там:
Сообщение: " Файл Exe по-прежнему нуждается в Windows Scripting Host (WSH)

WSH не требуется, если была использована опция "Скомпилировать", поскольку ExeScript
 реализует собственный сервер сценариев....


3) Зашифруйте Script с помощью средства шифрования Microsoft.vbs to.vbe.

По-видимому, это не работает для Windows 7/8, и возможно есть способы "расшифровать".vbe файл. На момент написания этого я не смог найти рабочую ссылку для ее загрузки. Если я найду его, я добавлю его к этому ответу.

Ответ 7

Вы можете сделать это с помощью PureBasic и MsScriptControl

Все, что вам нужно сделать, это вставить MsScriptControl в редактор Purebasic и добавить что-то вроде этого ниже

InitScriptControl() SCtr_AddCode("MsgBox 1") Код >

Ответ 8

Вы можете попробовать VbsEdit. Получите последнюю версию от Adersoft VbsEdit http://www.vbsedit.com ее небольшую загрузку, но она является мощным инструментом для создания и редактирования vbs файлов и преобразования их в исполняемые файлы без распаковки во временную папку. (если вы не получаете старую версию, такую ​​как версия 4.xxx) Я использую эту программу с 2008 года, и она бесплатна для оценки навсегда, но поставляется с напоминанием о активации и каждый раз, когда вы запустите свой script из окна vbsedit, вы придется подождать несколько секунд, или вы можете купить его за 60 долларов, чтобы устранить эти незначительные неприятности.
В отличие от ScriptCryptor, преобразованный exe не будет иметь никаких ограничений, если вы все еще оцениваете, он будет работать без каких-либо нежелательных дополнительных окон.

Ответ 10

htwoo vbscript компилятор версии 3.0.0 от Hadi Kiamarsi

Основные возможности:

  • Скомпилировать файл VBScript в EXE
  • Нет зашифрованного файла
  • Во время выполнения не будет создан временный файл. В отличие от других продуктов, наш компилятор выполнит script из памяти и никогда не создаст незащищенные файлы в папке TEMP
  • Скрывает и защищает источники script от просмотра
  • Script становится независимым исполняемым Win32, не полагаясь на "cscript.exe" или "wscript.exe"