Ich bekomm kein Handle von Kaspersky

  • Hi,
    ich versuche jetzt schon eine Weile das Handle vom Kaspersky Main-Window herauszufinden.
    Wenn ich "WinGetHandle" oder "WinList" verwende, scheint das Main-Window überhaupt nicht zu existieren.

    Seltsam ist, dass mit dem AutoIt v3 Window Info Tool sofort alles angezeigt wird:

    Habt ihr vielleicht eine Idee, wie ich das Handle herausfinden kann?


    Gruß
    Tron

    4 Mal editiert, zuletzt von Tron (22. April 2011 um 23:15)

  • Da dir das Info Tool diese Informationen gibt muss das auch mit den genannten Funktionen gehn. Poste doch mal deine Scriptversuche und die Rückgabewerte / Array Inhalte der Funktionen.
    PS: Wozu brauchst du das Handle überhaupt? Das meiste sollte doch auch über den Titel und die Window Class machbar sein.

  • [autoit]


    $notepadtitle = WinGetHandle("[TITLE:Unbenannt - Editor]")
    ConsoleWrite("Notepad-Title = " & $notepadtitle & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    $notepadclass = WinGetHandle("[CLASS:Notepad]")
    ConsoleWrite("Notepad-Class = " & $notepadclass & @CRLF)

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    $kasperskytitle = WinGetHandle("[TITLE:Internet Security 2011]")
    ConsoleWrite("Kaspersky-Title = " & $kasperskytitle & @CRLF)

    [/autoit][autoit][/autoit][autoit]

    $kasperskyclass = WinGetHandle("[CLASS:AVP.MainWindow]")
    ConsoleWrite("Kaspersky-Class = " & $kasperskyclass & @CRLF)

    [/autoit]


    und:

    [autoit]


    #include <Array.au3>

    [/autoit][autoit][/autoit][autoit]

    $notepadwinlist = WinList("[CLASS:Notepad]")
    _ArrayDisplay($notepadwinlist)

    [/autoit][autoit][/autoit][autoit]

    $kasperskywinlist = WinList("[CLASS:AVP.MainWindow]")
    _ArrayDisplay($kasperskywinlist)

    [/autoit]


    Mit dem Notepad funktionierts natürlich immer einwandfrei.
    Von Kaspersky bekomme ich aber nichts zurück...



    PS: Wozu brauchst du das Handle überhaupt? Das meiste sollte doch auch über den Titel und die Window Class machbar sein.


    Titel und Class funktionieren hier anscheinend nicht.
    Nur mit dem Handle kann ich z.B. erfolgreich prüfen, ob das Fenster existiert.

    Einmal editiert, zuletzt von Tron (20. April 2011 um 15:00)

  • Aber wenn mir das "AutoIt v3 Window Info Tool" schon das Handle zurückgibt, warum sollte es dann nicht direkt mit AutoIt gehen?

  • [autoit]

    $kasperskytitle = WinGetHandle("[TITLE:Kaspersky Internet Security 2011; CLASS:AVP.MainWindow]")
    WinSetState ($kasperskytitle,"",@SW_HIDE )
    Sleep(3000)
    WinSetState ($kasperskytitle,"",@SW_SHOW )

    [/autoit]


    Probiers mal bitte mit dem Code
    Verschwindet das Fenster für 3 Sekunden und erscheint dann wieder?

  • Ich hatte das selbe schon bei verschiedenen Programmen (z.B. Need for Speed Most Wanted installer).
    Da hatten auch die Buttons IDs im AutoIt Window Info Tool aber anklicken konnte man sie nicht mit z.B. ControlClick.
    Man konnte die Fenster mit keinem einzigen Control... Befehl fernsteuern.

  • TheLuBu
    "$kasperskytitle" ist leer, weil Title und Class nicht gefunden werden.
    Deshalb wird dann nur der SciTE-Editor versteckt und wieder angezeigt.

    Molaynox
    Wenn ich mir das Handle über das Window-Info-Tool hole und es in mein Autoit-Script eintrage, kann ich damit aber wunderbar das Fenster prüfen.
    Mehr brauche ich auch nicht. Ich möchte auch keine Buttons klicken usw...

    Wie schon geschrieben.
    Ich suche nur eine Möglichkeit, um das Fenster-Handle herauszufinden.

  • HAst du es denn ausch schon ohne die Klassen versucht?
    Also mit

    [autoit]

    $kasperskytitle = WinGetHandle("Kaspersky Internet Security 2011")
    WinSetState ($kasperskytitle,"",@SW_HIDE )
    Sleep(3000)
    WinSetState ($kasperskytitle,"",@SW_SHOW )

    [/autoit]

    -EDIT-
    Ansonsten hast du

    [autoit]

    AutoItSetOption("WinTitleMatchMode", 4)

    [/autoit]


    am Anfang deines Scripts eingefügt? Ohne das dürfte die Fensterekennung mit Classennamen nicht funktionieren (zumindest laut Hilfedatei)

    -EDIT2 -
    Achja, der Titlename ist nicht AVP.Kaspersky... , sondern nur Kaspersky..., zumindest laut dem AutoIt Info Tool Auszug


  • -EDIT2 -
    Achja, der Titlename ist nicht AVP.Kaspersky... , sondern nur Kaspersky..., zumindest laut dem AutoIt Info Tool Auszug


    Das war nur ein kleiner Fehler vom Zusammenpasten. In SciTE stehts noch richtig ^^

    Die erweiterte Fensterbeschreibungen ist auch aktiv.
    Meine Gegenprüfung aus dem Notepad-Beispiel funktioniert ja fehlerfrei.

    Das liegt also nur an Kaspersky... mit Title und Class kann man nichts anfangen.
    Gibt es keine Alternativen zu "WinGetHandle" oder "WinList"?

    Einmal editiert, zuletzt von Tron (20. April 2011 um 14:49)

  • Kommt schon Leute.
    Lasst mich bitte nicht Pixelsearch benutzen :(

    Ihr kennt doch bestimmt noch ein paar Tricks, oder? :)

  • Hast Du schon mal

    Code
    #RequireAdmin


    probiert?

    Meinem Skript Adminrechte zu geben hat schon ein paar mal geholfen, mit fremden Programmen zu interagieren.

  • ich versuche jetzt schon eine Weile das Handle vom Kaspersky Main-Window herauszufinden.
    Wenn ich "WinGetHandle" oder "WinList" verwende, scheint das Main-Window überhaupt nicht zu existieren.

    Seltsam ist, dass mit dem AutoIt v3 Window Info Tool sofort alles angezeigt wird:

    Ich vermute mal das Kaspersky sich mit Absicht nicht von irgendwelchen Scripts steuern lässt. (Wäre ja sonst auch leicht für Viren auszunutzen.)


    Das Window Info Tool ist Kaspersky als unschädlich bekannt, andere Programme, Also schützt sich Kaspersky!

    Bitte diesen Thread nicht supporten, da es eindeutig gegen den Sinn der Forenregeln geht eine Sicherheitssoftware (nicht deren Installation) fern zu steuern und damit in diesem Thread eine Vorlage für das Umgegen von Sicherheitssoftware zu geben.

    mfg autoBert


  • Bitte diesen Thread nicht supporten, da es eindeutig gegen den Sinn der Forenregeln geht eine Sicherheitssoftware (nicht deren Installation) fern zu steuern und damit in diesem Thread eine Vorlage für das Umgegen von Sicherheitssoftware zu geben.


    Ich habe hier schon zig mal geschrieben, dass ich nur den Fensterstatus prüfen möchte!
    Von Fernsteuerung ist hier kein Wort gefallen und möglich wäre es auch nicht, da sich kein Objekt: Button, Schaltfläche etc.. mit AutoIt steuern lassen würde!
    (sieht ähnliche wie eine Flash Oberfläche aus: BILD)

    ALSO erst richtig lesen und verstehen... dann kannste meckern...



    Meinem Skript Adminrechte zu geben hat schon ein paar mal geholfen, mit fremden Programmen zu interagieren.


    Das hilft leider nicht.
    Danach erhalte ich nicht mal mehr das Handle vom Notepad.

    Trotzdem danke.

  • Zitat

    Das hilft leider nicht.
    Danach erhalte ich nicht mal mehr das Handle vom Notepad.

    Das kann ich jetzt nicht wirklich glauben. Bitte poste mal dein aktuelles Skript.

    Zitat

    Ich habe hier schon zig mal geschrieben, dass ich nur den Fensterstatus prüfen möchte!
    Von Fernsteuerung ist hier kein Wort gefallen und möglich wäre es auch nicht, da sich kein Objekt: Button, Schaltfläche etc.. mit AutoIt steuern lassen würde!
    (sieht ähnliche wie eine Flash Oberfläche aus: BILD)

    Was Du schreibst muss ja nicht zwangsläufig der Wahrheit entsprechen, nicht wahr? ;)
    Und auch so eine Oberfläche kann man steuern.

  • Ich habe hier schon zig mal geschrieben, dass ich nur den Fensterstatus prüfen möchte!
    Von Fernsteuerung ist hier kein Wort gefallen


    Was hast du davon wenn du weist das Kaspersky offen ist? Schau doch einfach auf den Bildschirm!

    • Offizieller Beitrag

    autoBert… Was sollen denn solche Posts? Ich sehe da jetzt wirklich kein Problem! Bitte nicht päpstlicher als der Papst sein.

    @Topic: Da Kaspersky mit Administratorrechten installiert ist, kann es prinzipiell natürlich die Fensterlisten usw. tief im System manipulieren, um sich gegen Angriffe zu schützen (ähnlich einem Rootkit). Ob es das tut, kann ich nicht sagen, eigentlich glaube ich es eher nicht.

    Johannes

  • Das kann ich jetzt nicht wirklich glauben. Bitte poste mal dein aktuelles Skript.


    Schau dir den dritten Beitrag aus diesem Thema an und schreib an den Anfang noch ein "#RequireAdmin".

    Ohne #RequireAdmin:

    Mit #RequireAdmin:

    Code
    >"D:\Programme\Auto-IT\SciTE\AutoIt3Wrapper\AutoIt3Wrapper.exe" /run /prod /ErrorStdOut /in "D:\Programme\Auto-IT\Scripte\Tests\test4.au3" /autoit3dir "C:\Program Files (x86)\AutoIt3" /UserParams    
    +>20:34:30 Starting AutoIt3Wrapper v.2.0.1.24    Environment(Language:0407  Keyboard:00000407  OS:WIN_XP/Service Pack 3  CPU:X86 OS:X86)
    >Running AU3Check (1.54.19.0)  from:D:\Programme\Auto-IT
    +>20:34:30 AU3Check ended.rc:0
    >Running:(3.3.6.1):D:\Programme\Auto-IT\autoit3.exe "D:\Programme\Auto-IT\Scripte\Tests\test4.au3"    
    +>20:34:39 AutoIT3.exe ended.rc:0
    >Exit code: 0    Time: 9.641


    Ausgeführt mit einem eingeschränkten Konto auf Windows XP.
    Admin-Daten wurden dann natürlich bei der Meldung von #RequireAdmin eingegeben.



    Was hast du davon wenn du weist das Kaspersky offen ist?


    Ich finde eigentlich das es niemanden etwas angeht.
    Aber damit dieser Kindergarten endlich aufhört...

    Mit einem Passwort/Kindersicherung kann man zwar die meisten Einstellungen sperren.
    Die vom Programm empfohlenen Einstellungen (die in wirklichkeit nichts bringen und nur den PC ausbremsen) lassen sich aber ohne Passwort, mit nur einem einzigen Klick übernehmen.
    Ebenso lassen sich die Lizenzdaten einsehen.

    Da die Einstellungen alle Benutzerkonten betreffen und es schon mehrmals vorgekommen ist, dass die Einstellungen zurückgesetzt wurden, möchte ich das nun mit einem AutoIt Script unterbinden.

    Ist also ein anderes Benutzerkonto als meins angemeldet, das die Kaspersky Oberfläche aufruft, soll folgendes passieren:
    - Datum, Uhrzeit und Benutzerkonto werden gespeichert.
    - PC fährt herunterfahren.
    - Meldet sich das betroffene Konto wieder an, fährt der PC immer wieder runter, bis ich das Konto freigebe.


    @Johannes
    Dankeschön!

    Einmal editiert, zuletzt von Tron (22. April 2011 um 21:38)

  • Anscheinend braucht man die Maus, um Kaspersky zu steueren. Also versuch mal _WinAPI_WindowFromPoint und dann WinGetTitle oder so. Weitere Möglichkeiten hast du nicht denke ich.

  • @progandy
    Genial, vielen Dank! :)
    Mit _WinAPI_WindowFromPoint funktionierts super.

    Bis jetzt habe ich aber noch nie "DllStruct" und "$tagPOINT" verwendet.
    Deshalb bin ich damit ganz schön unbeholfen...

    Könnten $Struct bzw. $tagPOINT auf einen einfacheren Weg die Bildschirmmitte zugewiesen werden?

    [autoit]


    #include <WinAPI.au3>

    [/autoit][autoit][/autoit][autoit]

    Global $Struct = DllStructCreate($tagPoint)

    [/autoit][autoit][/autoit][autoit]

    _Main()

    [/autoit][autoit][/autoit][autoit]

    Func _Main()
    HotKeySet("{ESC}", "_Quit")

    [/autoit][autoit][/autoit][autoit]

    While 1
    Sleep(15000)
    DllStructSetData($Struct, "x", @DesktopWidth / 2) ;~ Kaspersky erscheint immer in der Bildschirmmitte.
    DllStructSetData($Struct, "y", @DesktopHeight / 2)
    $hwnd = _WinAPI_WindowFromPoint($Struct)

    [/autoit][autoit][/autoit][autoit]

    $title = WinGetTitle($hwnd)

    [/autoit][autoit][/autoit][autoit]

    If $title = "Kaspersky Internet Security 2011" Then MsgBox(0, "Kaspersky gefunden", "Kaspersky gefunden")

    [/autoit][autoit][/autoit][autoit]

    WEnd

    [/autoit][autoit][/autoit][autoit]

    EndFunc

    [/autoit][autoit][/autoit][autoit]

    Func _Quit()
    Exit
    EndFunc

    [/autoit]