更多信息
要查找编译器,您需要为每个 .net 版本安装 1 个,在命令提示符下键入。
dir c:\Windows\Microsoft.NET\vbc.exe /a/s
Windows 窗体
对于 Windows 窗体版本(没有控制台窗口,我们不会实际创建任何窗体 - 尽管您可以根据需要)。
在命令提示符下编译行。
"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
使用这些可选参数可为您提供图标和清单。清单允许您指定正常运行,如果管理员运行提升,则仅运行提升。
/win32icon:为默认的 Win32 资源指定一个 Win32 图标文件 (.ico)。
/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
嵌入版本信息
从https://skydrive.live.com/redir?resid=E2F0CE17A268A4FA!121下载 vbs2exe.res 文件 并放在桌面上。
从http://www.angusj.com/resourcehacker下载 ResHacker
在 ResHacker 中打开 vbs2exe.res 文件。编辑离开。单击编译按钮。单击文件菜单 - 保存。
类型
"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"