2016-04-21 15 views
5

Ich schreibe einen Reiniger für einige bekannte Virusschlüssel wie ("vbs" ,"vbe" ,"wsf", "a3x") aus der Registrierung.Wie man eine Balloontip richtig zeigt?

Ich möchte eine BalloonTip in Powershell mit diesem Skript hinzufügen, aber etwas stimmt nicht!

Ich weiß nicht, wie Sie das Symbol aus der Taskleiste entfernen, um den Fortschritts-Scan anzuzeigen?

Dies ist ein Entwurf. Es ist noch nicht optimiert!

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

Also mein Problem zu vereinfachen, konzentrieren wir uns nur auf diese Funktion:

Was soll ich hier hinzufügen, die NotifyIcon aus der Taskleiste entfernen?

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

Nach ein paar Sekunden schlafen, '$ benachrichtigen .Dispose() '? Ich habe ein wenig mit Ballon-Tipps [hier] (http://stackoverflow.com/a/30484358/1683264), aber ich habe seitdem geschlafen. – rojo

+2

@rojo Ja ich denke, es kann den Trick gemacht;) Danke! – Hackoo

Antwort

2

ich das Problem dank @rojo Idee wie folgt gelöst:

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

Also, wenn jemand wie der gesamte Code in der Beta-Version zu testen, hier ist der Link:

Hackoo Virus Cleaner

enter image description here

+1

OMFG Wie benutze ich diese Schönheit? Speichern als Skript und öffnen von PowerShell? Bitte, würde es dir etwas ausmachen, mir die Schritte zu zeigen, die ich brauche, um das Laufen zu sehen? Danke und herzlichen Glückwunsch für deine Arbeit! --------- oooh, es tut mir leid, es ist ein .bat - schon läuft es! Sehr sehr nett. - Es spricht! Benachrichtigt! Waaaaw ... Du musst mit diesem ganzen Hackoo viel Geld verdienen !!!!!!!!! Dieses Wissen ist absolut erstaunlich. – statosdotcom

+1

@statosdotcom LOL ich bin froh, dass du es liebst;) mein bester Tester! Vielen Dank für Ihre Unterstützung und für Ihr Feedback! Hast du diesen Code ausprobiert oder nicht? http://stackoverflow.com/questions/38524510/open-afile-through-cmd-and-display-the-selected-in-specific-editor/38525929#38525929 – Hackoo