Olá pessoal,
Estou utilizando o VMware Player no Windows 7. O VMware possui alguns serviços que por padrão são inicializados automaticamente, isso pode resultar em um consumo maior de recursos do computador e que pode ser muitas vezes desnecessário se não estivermos
utilizando a aplicação. Gostaria de ajuda para resolver isso. Minha ideia é criar um script que ao ser executado verifique se há um processo existente em execução para o aplicativo "vmplayer.exe". Caso não exista ele deve iniciar os serviços necessários
ao VMware Player e depois iniciar o aplicativo. Caso já exista um processo em execução significa que o vmware já está sendo utilizado e que eu desejo fechá-lo. Nesse caso ele deve fechar o aplicativo, matando seu processo e depois parar os serviços do vmware.
Dessa forma eu posso usar o mesmo script para abrir ou fechar o VMware e não precisarei me preocupar com os serviços do vmware pois o script irá iniciá-los e finalizá-los conforme necessário. Fiz algumas tentativas porém sem sucesso:
@echo off
:: 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"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
tasklist | find /i "vmplayer.exe"
IF ERRORLEVEL 1 (
net start VMAuthdService
net start VMUSBArbService
start vmplayer.exe
) ELSE (
taskkill /f /im "vmplayer.exe"
net stop VMUSBArbService
net stop VMAuthdService)
Primeiro o script tenta obter privilégios administrativos e depois procura o processo vmplayer.exe na tasklist. Caso não encontrar o valor de ERRORLEVEL será 1 e então os serviços serão iniciados e o programa executado, caso contrário o vmware é fechado
e os serviços parados. Este arquivo está localizado no mesmo diretório do executável vmplayer, dessa forma não preciso indicar o caminho completo do arquivo.
Não está funcionando. Se alguém puder ajudar agradeço desde já.
Rodrigo Rocha
Rodrigo Rocha