Kayıt defterinden ("vbs" ,"vbe" ,"wsf", "a3x")
gibi bilinen bir virüs anahtarı için bir temizleyici yazıyorum.Düzgün bir balloontip nasıl gösterilir?
Bu komut dosyası ile powershell içine bir BalloonTip eklemek istiyorum, ancak bir sorun var!
İlerleme taramasını göstermek için simgeyi görev çubuğundan nasıl kaldıracağımı bilmiyorum?
Bu bir taslak. Henüz optimize edilmedi!
@echo off
Title Hackoo Virus Cleaner to delete virus key from registry by Hackoo 2016
Color 1A & Mode con cols=80 lines=8
Set Pattern="\.vbs"^
^ "\.vbe"^
^ "\.wsf"^
^ "\.a3x"^
^ "VBScript.Encode"^
^ "\winlogon\.bat"
Set Key="HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"^
^ "HKCU\Software\Microsoft\Windows\CurrentVersion\Run"^
^ "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"^
^ "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options"
For %%P in (%Pattern%) Do (
For %%K in (%Key%) Do (
Cls
echo(
echo(
Echo ***************************** Scan *****************************
echo %%K
Echo ****************************************************************
Call :PS_Sub 'Warning' 10 '" Please wait... "' "' Scan is in progress.... %%K'" 'Warning'
Call :Delete_Virus_Key %%K %%P "%TmpLogFile%"
)
)
exit /b
::*************************************************************************
:Delete_Virus_Key <Key> <Pattern> <LogFile>
Setlocal enabledelayedexpansion
for /f "delims=REG_SZ" %%I in (
'reg query "%~1" /s^|findstr /ic:"%~2"'
) Do (
If %ErrorLevel% NEQ 1 (
Set KeyName="%%~I"
(
Call:Trim !keyName!
Title Deleting Run key: !keyName!
echo Deleting Run key: !keyName!
echo reg delete "%~1" /v !keyName! /f
echo(
echo *****************************
echo reg delete "%~1" /v "!keyName!" /f
echo *****************************
echo(
)>>"%~3"
rem Call :PS_Sub 'Warning' 100 '"!KeyName!"' "'Delete !KeyName!'" 'Warning'
) else (
Set KeyName="%%~I"
Call:Trim !keyName!
Title Deleting Run key: !keyName!
echo Deleting Run key: !keyName!
echo reg delete "%~1" /v !keyName! /f
echo(
echo *****************************
echo reg delete "%~1" /v "!keyName!" /f
echo *****************************
echo(
)>>"%~3"
)
)
EndLocal
Exit /b
::*************************************************************************
:Trim <String>
(
echo Wscript.echo Trim("%~1"^)
)>"%tmp%\%~n0.vbs"
for /f "delims=" %%a in ('Cscript /nologo "%tmp%\%~n0.vbs"') do (
set "KeyName=%%a"
)
exit /b
::**************************************************************************
:PS_Sub $notifyicon $time $title $text $icon
PowerShell^
[reflection.assembly]::loadwithpartialname('System.Windows.Forms') ^| Out-Null;^
[reflection.assembly]::loadwithpartialname('System.Drawing') ^| Out-Null;^
$notify = new-object system.windows.forms.notifyicon;^
$notify.icon = [System.Drawing.SystemIcons]::%1;^
$notify.visible = $true;^
$notify.showballoontip(%2,%3,%4,%5)
%End PowerShell%
exit /B
::*************************************************************************
Yani benim sorunu basitleştirmek için, biz sadece bu fonksiyonu odaklanmak:
i görev çubuğundan NotifyIcon kurtulmak almak için buraya ne eklemeliyim?
::**************************************************************************
:PS_Sub $notifyicon $time $title $text $icon
PowerShell^
[reflection.assembly]::loadwithpartialname('System.Windows.Forms') ^| Out-Null;^
[reflection.assembly]::loadwithpartialname('System.Drawing') ^| Out-Null;^
$notify = new-object system.windows.forms.notifyicon;^
$notify.icon = [System.Drawing.SystemIcons]::%1;^
$notify.visible = $true;^
$notify.showballoontip(%2,%3,%4,%5)
%End PowerShell%
exit /B
::*************************************************************************
birkaç saniye uyku sonra '$ bildirmek .Dispose() '? Balon uçlarıyla biraz uğraştım [burada] (http://stackoverflow.com/a/30484358/1683264), ama o zamandan beri uyudum. – rojo
@rojo Evet, hile yapabileceğini düşünüyorum;) Teşekkürler! – Hackoo