2016-04-21 9 views
5

Piszę czyszczenie jakiegoś znanego klucza wirusa, takiego jak ("vbs" ,"vbe" ,"wsf", "a3x") z rejestru.Jak poprawnie wyświetlić balloontip?

Chcę dodać BalloonTip w PowerShell przy pomocy tego skryptu, ale coś jest nie tak!

Nie wiem, jak usunąć ikonę z paska zadań, aby wyświetlić skanowanie postępu?

To jest wersja robocza. Nie jest jeszcze zoptymalizowany!

@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 
::************************************************************************* 

Tak aby uprościć mój problem, skupiamy się tylko na tej funkcji:

Co Dodam tutaj, aby pozbyć się notifyicon z paska zadań?

::************************************************************************** 
: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 
::************************************************************************* 
+2

Po spaniu przez kilka sekund, '$ notify .Dispose() '? Pomieszałem trochę z balonami [tutaj] (http://stackoverflow.com/a/30484358/1683264), ale od tamtej pory spałem. – rojo

+2

@rojo Tak, myślę, że to może załatwić sprawę;) Dziękuję! – Hackoo

Odpowiedz

2

I rozwiązać problem dzięki @rojo pomysł jak to:

::************************************************************************** 
:PS_Sub $notifyicon $time $title $text $icon $Timeout 
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);^
    Start-Sleep -s %6;^
    $notify.Dispose() 
%End PowerShell% 
exit /B 
::************************************************************************* 

Tak więc, jeśli ktoś chciałby przetestować cały kod w wersji beta, tu jest link:

Hackoo Virus Cleaner

enter image description here

+1

OMFG jak korzystać z tego piękna? Zapisz jako skrypt i otwórz PowerShell? Proszę, czy mógłbyś mi pokazać kroki, które muszę wykonać? Dziękuję i gratuluję pracy! --------- oooh, przepraszam, to jest .bat - już to zrobiłem! Bardzo bardzo dobrze. - To mówi! Powiadamia! Waaaaw ... Musisz zrobić duże pieniądze z całym tym Hackoo !!!!!!!!! Ta wiedza jest absolutnie niesamowita. – statosdotcom

+1

@statosdotcom LOL Cieszę się, że to lubisz;) mój najlepszy tester! Dziękujemy za wsparcie i opinie! Czy próbowałeś tego kodu, czy nie? http://stackoverflow.com/questions/38524510/open-a-file-through-cmd-and-display-selected-in-specific-editor/38525929#38525929 – Hackoo