“VM6辅助启动.bat”生成器.hta

来源:互联网 发布:me域名邮箱 编辑:程序博客网 时间:2024/05/18 06:45

“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> 

<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>

<SCRIPT Language="VBScript">

         window.resizeTo 
640,480
         ileft
=(window.screen.width-640)/2
         itop
=(window.screen.height-480)/2
         window.moveTo ileft,itop

On Error Resume Next
Dim strBat()
nLines
=51
ReDim strBat(nLines)
strBat(
0= "@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"

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

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

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(0)
        
For i=1 to nLines
            temp
=temp & vbCrLf & strBat(i)
        
Next
        TA_STRBAT.value 
= temp
        VMPathFind 
= True
    
End If
End Function

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

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=0 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

</SCRIPT>

<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 />
<textarea name="TA_STRBAT" rows="18" cols="80"></textarea>
<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>

 图:

原创粉丝点击