@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
//上面是新增隱藏黑框框的
//下面是需要執行的命令
::auth: linght
::date: 2018-01-09
::system: windows
::auto start windows exe
@set sleeptime=2
@set exename=center_flextrbo.exe
@set logpath=%~dp0
@rem exepath "c:\program files (x86)\jiketong\******trbo\center\"
@set exepath=%logpath:centerautorestart=center%
@set runlogpath="%exepath%runlog.log"
:loop
@set atxtfilepath="%logpath%a.txt"
@tasklist | findstr %exename% > %atxtfilepath%
@for /f "tokens=3 delims=:" %%a in (' find /c /v "" %atxtfilepath% ') do @set/a result=%%a+0
@if %result% lss 1 goto restart
@if %result% equ 1 goto normal
@if %result% gtr 1 goto killexe
@echo off
:restart
echo %exename% is stop runnum: %result%, auto start %exename%
rem start your program
set d=%date:~0,10%
set t=%time:~0,8%
@set starttxtfilepath="%logpath%start.log"
echo %d% %t%: start /b /d %exepath% %exename% >> %starttxtfilepath%
rem start /b /d "%exepath%" %exename% | tee %runlogpath%
ping 0.0.0.0 -n %sleeptime% > "%logpath%null"
start /b /d "%exepath%" %exename% > %runlogpath%
@goto sleep
:normal
rem echo %exename% is normal runing...... runnum: %result%
@goto sleep
:killexe
echo %exename% is running, runnum: %result%, too mush, kill and restart
taskkill /f /im %exename% /t
echo auto restart %exename%
goto restart
@goto sleep
@echo on
:sleep
@echo off
rem sleep 10s
ping 0.0.0.0 -n %sleeptime% > "%logpath%null"
goto loop
echo on
:over
這個方法相當巴適,比用vbs呼叫bat來隱藏黑框框棒多了。
其實,vbs呼叫bat來隱藏黑框框也還是可以的,不過呢,我遇到的場景是:我用vbs(如:autostart.bat)呼叫bat(如:autostart.bat)來隱藏黑框框。
但是呢,我的bat(如:autostart.bat)需要增加授予管理員許可權執行(看此鏈結),以便pc機任何使用者登入都可以正確的執行。但是呢,我把授權的幾行命令加在當前bat最上頭的時候啊,bat內部呼叫程式就變成找不到檔案(如上面加粗並標紅的start命令)。
這個就惱火了,因為同樣的授予管理員許可權方式,別的bat(如:start_mysql.bat)就可以好好的執行。
這下啷個辦呢,就把授權的命令,單獨的儲存為乙個bat(如:grantadmin.bat),然後在grantadmin.bat裡呼叫我的bat(autostart.bat)。還是用vbs呼叫bat來隱藏黑框框(如:autostart.vbs呼叫grantadmin.bat)。問題來了,grantadmin.bat的黑框框確是被隱藏了,autostart.bat的黑框並沒有隱藏,說以啊,在網上找啊找,尋尋覓覓兩天時間,終於搞定,那就是用當前這邊文章的方法來隱藏黑框框。棒的很。
@ echo off
%1 %2
ver|find "5.">nul&&goto :admin
:admin
start autostart.bat
public const vbquote=""""
temp="c:\a_work\release_d1.1.11\******trbo_release1012\centerautorestart\grantadmin.bat"
batpath=vbquote & temp & vbquote
set wshell=createobject("wscript.shell")
wshell.run batpath,0,false
set wshell=nothing
windows隱藏python執行時的終端
from 摘要 windows上如果想執行一些常駐程序,使用python需要開啟終端,容易誤操作關掉。本文介紹一種在後台啟動的解決方法,其實核心功能很簡單,使用 start pythonw py 進行,附加一些常用的運維批處理指令碼 start.bat stop.bat restart.bat st...
C語言執行時進行視窗隱藏
c語言編寫的程式,怎樣隱藏執行,不彈cmd視窗 1 呼叫system函式時用start的 b引數,system start b ping 10.10.10.11 t 即可隱藏視窗。2 system函式 原型 int system const char command 功能 執行 dos window...
如何讓基於對話方塊的程式執行時隱藏介面
有些時候需要不讓對話方塊在執行時顯示出來,用showwindow的方法會有閃動現象,我認為最好的方法是用create.具體過程如下 lg dlg 然後在initinstance 中將原來的 int nresponse dlg.domodal if nresponse idok else if nre...