“VM6辅助启动.bat”是一个在需要使用VMware6时打开所有功能,不需要时关闭所有功能(包括其进程)的,帮助人民群众节省系统资源的批处理。
“VM6辅助启动.bat”生成器.hta 是“VM6辅助启动.bat”的GUI生成工具。
Update@20080329:新增“可以直接在文框输入路径”。
<
html
>
<
head
>
<
title
>
“VM6辅助启动.bat”生成器
</
title
>
<
!
--
Author: t0nsha
<
LiaoDunxia@Gmail.com
>
, Update@
20080329
-->
<
style
>
body {
background
-
color:#cccccc;
font
-
size:16px;
}
</
style
>
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
<
HTA:APPLICATION
ID
=
"
“VM6辅助启动.bat”生成器
"
APPLICATIONNAME
=
"
“VM6辅助启动.bat”生成器
"
SCROLL
=
"
no
"
SINGLEINSTANCE
=
"
yes
"
WINDOWSTATE
=
"
normal
"
ShowInTaskBar
=
"
yes
"
MaximizeButton
=
"
no
"
MinimizeButton
=
"
no
"
SCROLL
=
"
no
"
NAVIGABLE
=
"
yes
"
BORDER
=
"
thin
"
ICON
=
"
%SystemRoot%/system32/mobsync.exe
"
>
</
head
>
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
<
SCRIPT Language
=
"
VBScript
"
>
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
window.resizeTo
640
,
480
ileft
=
(window.screen.width
-
640
)
/
2
itop
=
(window.screen.height
-
480
)
/
2
window.moveTo ileft,itop
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
On
Error
Resume
Next
Dim
strBat()
nLines
=
51
ReDim
strBat(nLines)
strBat(
)
=
"
@echo off
"
strBat(
1
)
=
"
color 17
"
strBat(
2
)
=
"
title VM6辅助启动.bat
"
strBat(
3
)
=
"
rem Author: t0nsha <LiaoDunxia@Gmail.com>, Update@20080329
"
strBat(
4
)
=
"
mode con cols=66 lines=8
"
strBat(
5
)
=
"
:menu
"
strBat(
6
)
=
"
cls & set op=
"
&
Chr
(
34
)
&
Chr
(
34
)
strBat(
7
)
=
"
set /p op=输入1回车启动VM,2停止,q退出此脚本(注意:使用时请先将此脚本置于VMware.exe所在的目录;停止会终止VMware.exe进程,请先保存好数据):
"
strBat(
8
)
=
"
if %op%==1 (
"
strBat(
9
)
=
"
goto start
"
strBat(
10
)
=
"
) else if %op%==2 (
"
strBat(
11
)
=
"
goto stop
"
strBat(
12
)
=
"
) else if
"
&
Chr
(
34
)
&
"
%op%
"
&
Chr
(
34
)
&
"
==
"
&
Chr
(
34
)
&
"
q
"
&
Chr
(
34
)
&
"
(
"
strBat(
13
)
=
"
exit
"
strBat(
14
)
=
"
) else (
"
strBat(
15
)
=
"
goto menu
"
strBat(
16
)
=
"
)
"
strBat(
17
)
=
"
:start
"
strBat(
18
)
=
"
set starttype=auto
"
strBat(
19
)
=
"
set startnow=Start
"
strBat(
20
)
=
"
set startVMnetAdapter=Enable
"
strBat(
21
)
=
"
goto Exec
"
strBat(
22
)
=
"
:stop
"
strBat(
23
)
=
"
set starttype=demand
"
strBat(
24
)
=
"
set startnow=Stop
"
strBat(
25
)
=
"
set startVMnetAdapter=Disable
"
strBat(
26
)
=
"
goto Exec
"
strBat(
27
)
=
"
:Exec
"
strBat(
28
)
=
"
echo (1/3) %startnow%ing services ...
"
strBat(
29
)
=
"
(sc config ufad-ws60 start= demand
"
strBat(
30
)
=
"
net stop
"
&
""
&
Chr
(
34
)
&
"
VMware Agent Service
"
&
Chr
(
34
)
strBat(
31
)
=
"
sc config VMAuthdService start= %starttype%
"
strBat(
32
)
=
"
net %startnow%
"
&
Chr
(
34
)
&
"
VMware Authorization Service
"
&
Chr
(
34
)
strBat(
33
)
=
"
sc config VMnetDHCP start= %starttype%
"
strBat(
34
)
=
"
net %startnow%
"
&
Chr
(
34
)
&
"
VMware DHCP Service
"
&
Chr
(
34
)
strBat(
35
)
=
"
sc config
"
&
Chr
(
34
)
&
"
VMware NAT Service
"
&
Chr
(
34
)
&
"
start= %starttype%
"
strBat(
36
)
=
"
net %startnow%
"
&
Chr
(
34
)
&
"
VMware NAT Service
"
&
Chr
(
34
)
strBat(
37
)
=
"
sc config vmount2 start= %starttype%
"
strBat(
38
)
=
"
net %startnow%
"
&
Chr
(
34
)
&
"
VMware Virtual Mount Manager Extended
"
&
Chr
(
34
)
strBat(
39
)
=
"
) >nul 2>nul
"
strBat(
40
)
=
"
echo (2/3) %startVMnetAdapter%ing VMnetAdapters ...
"
strBat(
41
)
=
"
devcon %startVMnetAdapter% *VMnetAdapter* >nul 2>nul
"
strBat(
42
)
=
"
if
"
&
Chr
(
34
)
&
"
%startnow%
"
&
Chr
(
34
)
&
"
==
"
&
Chr
(
34
)
&
"
Start
"
&
Chr
(
34
)
&
"
(
"
strBat(
43
)
=
"
echo ^(3/3^) Starting Processes ...
"
strBat(
44
)
=
"
start hqtray.exe & start vmware.exe
"
strBat(
45
)
=
"
) else (
"
strBat(
46
)
=
"
echo ^(3/3^) Killing Processes ...
"
strBat(
47
)
=
"
TASKKILL /F /IM hqtray.exe >nul 2>nul
"
strBat(
48
)
=
"
TASKKILL /F /FI
"
&
Chr
(
34
)
&
"
IMAGENAME eq vm*
"
&
Chr
(
34
)
&
"
>nul 2>nul
"
strBat(
49
)
=
"
)
"
strBat(
50
)
=
"
echo :) DONE AND QUIT! & ping 127.1>nul
"
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
Function
SplitVMPath
'
Cut out "vmware.exe" from the VMPath
for
i
=
1
to
Len
(T_VMPATH.value)
j
=
right
(T_VMPATH.value,i)
if
mid
(j,
1
,
1
)
=
"
/
"
then
j
=
mid
(T_VMPATH.value,
1
,
Len
(T_VMPATH.value)
-
i
+
1
)
SplitVMPath
=
j
exit
Function
end
if
next
SplitVMPath
=
T_VMPATH.value
End Function
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
Function
IsVMwareDotExe
'
Search For "vmware.exe"
Set
objFSO
=
CreateObject
(
"
Scripting.FileSystemObject
"
)
If
SplitVMPath
=
T_VMPATH.value
Then
IsVMwareDotExe
=
False
Exit
Function
Else
Set
f
=
objFSO.GetFolder(SplitVMPath)
End
If
Set
fc
=
f.Files
For
Each
f1 in fc
If
"
vmware.exe
"
=
f1.name
Then
IsVMwareDotExe
=
True
Exit
Function
End
If
Next
IsVMwareDotExe
=
False
End Function
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
Function
VMPathFind
'
Display something depend on VMPath
If
T_VMPATH.value
=
""
Then
S_VM.InnerHTML
=
"
<center><font color=#ff0000>vmware.exe未找到!</font><center>
"
TA_STRBAT.value
=
""
VMPathFind
=
False
ElseIf
Not
IsVMwareDotExe
Then
S_VM.InnerHTML
=
"
<center><font color=#0000ff>想骗我?
"
&
SplitVMPath
&
"
目录下哪有vmware.exe!</font><center>
"
TA_STRBAT.value
=
""
VMPathFind
=
False
Else
S_VM.InnerHTML
=
"
<center><font color=#00ff00>vmware.exe已找到!</font><center>
"
temp
=
strBat(
)
For
i
=
1
to
nLines
temp
=
temp
&
vbCrLf
&
strBat(i)
Next
TA_STRBAT.value
=
temp
VMPathFind
=
True
End
If
End Function
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
Sub
GetVMPath
'
Get the VMPath by browse
Set
objDialog
=
CreateObject
(
"
UserAccounts.CommonDialog
"
)
objDialog.Filter
=
"
vmware.exe|vmware.exe
"
'
设定显示的文件格式
set
WshShell
=
CreateObject
(
"
WScript.Shell
"
)
strPrograms
=
WshShell.SpecialFolders(
"
Programs
"
)
objDialog.InitialDir
=
strPrograms
&
"
/VMware/VMware Workstation/
"
'
设定打开时初始的目录
intResult
=
objDialog.Showopen
'
执行打开命令
T_VMPATH.value
=
objDialog.FileName
'
返回选中的文件路径
If
Not
VMPathFind
Then
Exit
Sub
End Sub
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
Sub
WriteToBat
'
Write array of strBat to "VM6辅助启动.bat"
If
Not
VMPathFind
Then
Exit
Sub
Set
objFSO
=
CreateObject
(
"
Scripting.FileSystemObject
"
)
Set
objFile
=
objFSO.CreateTextFile(
"
VM6辅助启动.bat
"
,
true
)
For
i
=
to
nLines
-
1
objFile.WriteLine(strBat(i))
Next
objFile.Close
Set
objFSO
=
Nothing
If
C_SHORTCUT.checked
Then
'
set WshShell = WScript.CreateObject("WScript.Shell") ERR
set
WshShell
=
CreateObject
(
"
WScript.Shell
"
)
strDesktop
=
WshShell.SpecialFolders(
"
Desktop
"
)
set
oShellLink
=
WshShell.CreateShortcut(strDesktop
&
"
/VM6辅助启动.lnk
"
)
oShellLink.TargetPath
=
SplitVMPath
&
"
VM6辅助启动.bat
"
oShellLink.WindowStyle
=
1
oShellLink.Hotkey
=
"
CTRL+SHIFT+V
"
oShellLink.IconLocation
=
T_VMPATH.value
oShellLink.Description
=
"
欢迎访问我的博客:http://blog.csdn.net/t0nsha/
"
oShellLink.WorkingDirectory
=
SplitVMPath
oShellLink.Save
End
If
S_VM.InnerHTML
=
"
<center><font color=#00ff00>“VM6辅助启动.bat”已生成,谢谢使用!</font><center>
"
End Sub
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
</
SCRIPT
>
![](http://static.oschina.net/uploads/img/201203/09160600_iYYu.gif)
<
body OnLoad
=
"
VMPathFind
"
>
<
h5 align
=
"
center
"
>
“VM6辅助启动.bat”生成器
</
h5
>
定位vmware.exe:
<
input type
=
"
text
"
name
=
"
T_VMPATH
"
size
=
"
52
"
OnChange
=
"
VMPathFind
"
>
<
input type
=
"
button
"
value
=
"
浏览(B)
"
onclick
=
"
GetVMPath
"
accesskey
=
B
>
<
br
/>
<
pre name
=
"
TA_STRBAT
"
rows
=
"
18
"
cols
=
"
80
"
></
pre
>
<
br
/>
<
input type
=
"
checkbox
"
name
=
"
C_SHORTCUT
"
value
=
"
1
"
checked accesskey
=
D
>
添加桌面快捷方式(D)
<
input type
=
"
button
"
value
=
"
生成“VM6辅助启动.bat”(C)
"
onClick
=
"
WriteToBat
"
accesskey
=
C
>
<
input type
=
"
button
"
value
=
"
退出(Alt+Q)
"
onClick
=
"
self.close()
"
accesskey
=
Q
>
<
span id
=
S_VM
><
center
></
center
></
span
>
<
p align
=
"
center
"
>&
copy;
<
a href
=
"
http://blog.csdn.net/t0nsha/
"
target
=
"
blank
"
>
t0nsha
</
a href
>
</
p
>
</
body
>
</
html
>
图:
![](http://static.oschina.net/uploads/img/201203/09160600_yoC1.jpg)
原文链接:
http://blog.csdn.net/t0nsha/article/details/2224083