开机自启动并关闭窗口(向日葵简约版)
0x00 前言
? ? ? ? 原文:開機(jī)自啟動(dòng)并關(guān)閉窗口(向日葵簡(jiǎn)約版)_reven-h的博客-CSDN博客
????????為方便指導(dǎo)我父親使用電腦,我在他的電腦上裝了向日葵簡(jiǎn)約版,為方便我進(jìn)行連接,我需要它能夠自啟動(dòng),為不讓開機(jī)自啟時(shí)總是彈出向日葵界面,我需要讓它啟動(dòng)后馬上關(guān)閉窗口,到最小化托盤。
0x01 實(shí)現(xiàn)自啟動(dòng)
?1、首先下載向日葵簡(jiǎn)約版
https://dl-cdn.oray.com/sunlogin/windows/SunloginClientLite_1.0.2_x64.exe
2、將exe復(fù)制到啟動(dòng)目錄,啟動(dòng)目錄打開方式:開始->所有程序->啟動(dòng) (右鍵->打開)
一般啟動(dòng)目錄的絕對(duì)路徑如下:
C:\Users\{用戶名}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
3、復(fù)制完成后就可以自啟動(dòng)了,但是每次都會(huì)彈出向日葵的主體窗口,還得手動(dòng)關(guān)閉,很煩。
0x02 啟動(dòng)后自動(dòng)關(guān)閉窗口
????????這個(gè)簡(jiǎn)約版點(diǎn)擊關(guān)閉按鈕后,會(huì)在后臺(tái)運(yùn)行,圖標(biāo)在右下角托盤中顯示,而不會(huì)結(jié)束進(jìn)程。這邊可以用taskkill來實(shí)現(xiàn)同樣的效果,命令如下:
taskkill ?/FI "WINDOWTITLE eq SunLogin*"
????????這條命令的作用是向符合條件的進(jìn)程發(fā)送終止信號(hào),至于進(jìn)程會(huì)不會(huì)自殺就不強(qiáng)制了,至少向日葵沒自殺,只是最小化到托盤。
????????如果加個(gè) /F 參數(shù),表示強(qiáng)制結(jié)束進(jìn)程,這就由不得向日葵不想死了。由于這邊條件是窗口標(biāo)題匹配”向日葵“,所以只殺死了它的主進(jìn)程,剩下兩個(gè)子進(jìn)程依然存活。如果也想一并殺死,可以加個(gè) /T 參數(shù),表示連帶子進(jìn)程一并干掉,這不是本文的目的,有興趣的同學(xué)自己研究,反正我不加 /F /T 。
?
????????目前的實(shí)現(xiàn)思路是用創(chuàng)建個(gè)批處理文件,同樣放在啟動(dòng)目錄下,持續(xù)執(zhí)行關(guān)閉命令,如果執(zhí)行成功,則退出腳本,否則繼續(xù)循環(huán)。批處理腳本如下:
@echo off :loop taskkill /FI "WINDOWTITLE eq 向日葵*"|findstr "PID" ::這里使用findstr去匹配"PID"是為了使用errorlevel來判斷命令是否執(zhí)行成功,沒有找到"PID"說明沒找到對(duì)應(yīng)進(jìn)程,findstr輸出空,errorlevel=1。 if %errorlevel%==0 (goto succeed) else ( goto loop):succeed????????但是實(shí)際運(yùn)行過程中發(fā)現(xiàn),在命令行中運(yùn)行得好好的,一到實(shí)際開機(jī)啟動(dòng)的場(chǎng)景,就一直無法執(zhí)行成功,猜測(cè)是“向日葵”這三個(gè)中文編碼有問題,嘗試切ascii或utf-8都沒用 ,最終將編碼修改為GB2312才行。
?0x03 后臺(tái)運(yùn)行批處理
? ? ? ? 批處理執(zhí)行過程中會(huì)出現(xiàn)一個(gè)黑色的命令行執(zhí)行窗口,在向日葵還沒被殺之前,這個(gè)黑色窗口都會(huì)一直存在,很討厭。于是我們可以通過在批處理腳本中添加以下命令讓它在后臺(tái)執(zhí)行:
@echo off if "%1"=="h" goto begin start mshta vbscript:createobject("wscript.shell").run("""%~0"" h",0)(window.close)&&exit :begin ::在下面放我們要執(zhí)行的代碼?0x04 完整代碼
@echo off if "%1"=="h" goto begin start mshta vbscript:createobject("wscript.shell").run("""%~0"" h",0)(window.close)&&exit :begin :looptaskkill /FI "WINDOWTITLE eq 向日葵*" |findstr "PID" if %errorlevel%==0 (goto succeed) else (goto loop):succeed? ? ? ?
總結(jié)
以上是生活随笔為你收集整理的开机自启动并关闭窗口(向日葵简约版)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图神经网络——node2vec
- 下一篇: 理工科硕士自学ICEM网格划分的思考和感