ZoneAlarm fernsteurn



  • Hallo Leute,

    möchte ein Programm schreiben das mir ermöglicht ZoneAlarm fernzusteuern.
    Habe schon einiges ausprobiert, aber kann den "Button"==Checkbox
    "&DieseEinstellung speichern." nicht steuern.
    Hier ein Auszug meines Listings:

    Variante 1.)

    #define _WIN32_WINNT 0x0500
    #include <windows.h>
    #include <stdio.h>
    
    void main(void)
    {
    
    	HWND	wnd;
    	HWND	wndcheckbox;
    	BOOL	vordergrund;
    
    	wnd=FindWindow(0, "ZoneAlarm-Sicherheitswarnung");
    	if(wnd==0)
    	{
    		printf("fehler bei FindWindow!\n");
    	}
    
    	wndcheckbox=FindWindowEx(wnd, 0, "Button", "&Diese Einstellung speichern.");
    	if(wndcheckbox==0)
    	{
    		printf("probleme bei FindWindowEx\n");
    	}
    
    	vordergrund=SetForegroundWindow(wndcheckbox);	
    	if(vordergrund==0)
    	{
    		printf("Vordergrund=:%d", GetLastError());
    	};
    
    	SendMessage(wndcheckbox, BM_SETCHECK, BST_CHECKED, NULL);
    
    }
    

    Variante 2.)

    #define _WIN32_WINNT 0x0500
    #include <windows.h>
    #include <stdio.h>
    
    void main(void)
    {
    
    	HWND	wnd;
    	HWND	wndcheckbox;
    	BOOL	vordergrund;
    
    	wnd=FindWindow(0, "ZoneAlarm-Sicherheitswarnung");
    	if(wnd==0)
    	{
    		printf("fehler bei FindWindow!\n");
    	}
    
    	wndcheckbox=FindWindowEx(wnd, 0, "Button", "&Diese Einstellung speichern.");
    	if(wndcheckbox==0)
    	{
    		printf("probleme bei FindWindowEx\n");
    	}
    
    	vordergrund=SetForegroundWindow(wndcheckbox);	
    	if(vordergrund==0)
    	{
    		printf("Vordergrund=:%d", GetLastError());
    	};
    
    	keybd_event(VK_SPACE, 0, 0, 0);
    	keybd_event(VK_SPACE, 0, KEYEVENTF_KEYUP, 0);
    
    }
    

    Kann bei keiner der Varianten das Häckchen bei
    "&Diese Einstellung speichern." aktivieren oder deaktivieren.
    Aber wenn ich auf einen der Buttons "Zulassen" oder "Verweigern"
    gehe, funktioniert es.

    Würde mich freuen wenn jemand eine Idee hätte, wie man das Ganze zum
    laufen bringen könnte.

    Danke im Voraus



  • Hallo nochmals,

    falls ich etwas vergessen habe zu erwähnen, würde ich mich über ein Feedback
    freuen.

    Danke nochmals

    tschüss



  • erst die ID des buttons ermitteln, dann über CheckDlgButton (wnd, BTN_ID, BST_CHECKED); Button aktivieren



  • Danke für die schnelle Antwort.

    habs probiert - bin allerdings an zwei sachen gescheitert.
    Punkt 1.)
    wie ermittle ich die ID der Checkbox -> ?!? mit FindWindowEx
    Punkt 2.)
    Der Compiler streikt bei "CheckDlgButton (wnd, BTN_ID, BST_CHECKED)"
    BTN_ID -> error C2065: 'BTN_ID' : nichtdeklarierter Bezeichner



  • ähhmm ja :D:D

    1.: GetDlgCtrlID (wndcheckbox);

    zu dem 2. fehler: BTN_ID ist einfach die ID vom Button, die du ermitteln musst. Ich wollte die bloß nicht auf zum Beispiel 5 festlegen, damit du genau diese frage nicht stellst, "warum genau diese zahl, blabla"

    für die zukunft, hier hättest du das auch finden können mit ein bisschen geduld (nichtmal eine minute) www.gidf.de



  • sorry - hab auch gegoogelt - aber hat nicht zum gewünschtem Ergebnis geführt.
    bitte um einwenig geduld.

    egal was ich mache es funktioniert nicht so richtig - hab nu ein
    MFC-Dialogbasierendes Programm mit einer CheckBox erstellt - da funktioniert
    es problemlos. Habt Ihr eine Idee, warum sich die Zonealarm ChechBox nicht
    aktivieren lässt.

    hier nochmal das geänderte Listing:

    #define _WIN32_WINNT 0x0500
    #include <windows.h>
    #include <stdio.h>
    
    void main(void)
    {
    
    	HWND	wnd;
    	HWND	wndcheckbox;
    	BOOL	vordergrund;
    	int		checkboxid;
    	int		abfrage;
    
    	wnd=FindWindow(0, "ZoneAlarm-Sicherheitswarnung");
    	if(wnd==0)
    	{
    		printf("fehler bei FindWindow!\n");
    	}
    
    	wndcheckbox=FindWindowEx(wnd, 0, "Button", "&Diese Einstellung speichern.");
    	if(wndcheckbox==0)
    	{
    		printf("probleme bei FindWindowEx\n");
    	}
    
    	vordergrund=SetForegroundWindow(wndcheckbox);	
    	if(vordergrund==0)
    	{
    		printf("Vordergrund=:%d", GetLastError());
    	};
    
    	checkboxid=GetDlgCtrlID(wndcheckbox); 
    	if(checkboxid==NULL)
    	{
    		printf("GetDlgCtrlID\n");
    	}
    
    	abfrage=CheckDlgButton(wnd, checkboxid , BST_CHECKED);
    	if(abfrage==0)
    	{
    		printf("CheckDlgButton %d\n", GetLastError());
    	}
    }
    


  • vllt. ist wndcheckbox ja ungültig, weil du nach dem falschen button suchst 😕
    also wenn du weißt was ich meine 😃



  • ich habe mit Spy++ den "Button" - "&Diese Einstellung speichern" ermittelt -> diese Stimmen mit den Returnwerte meines Programmes überein. Hab Ihr eine Idee
    was ich falsch gemacht habe. Seltsamerweise funktioniert das Programm wenn ich
    wie gesagt mein MFC-Programm fernsteuern möchte. Nur bei Zonealarm funktionierts
    nicht.



  • Hallo nochmal,

    jetzt habe ich 3 Varianten. Und keine funktioniert 😉 . Ich würde mich freuen
    wenns einwenig konkreter werden würde.

    danke nochmals



  • vielleicht lässt sich ja zonealarm auch nicht fernsteuern. Wäre ja mehr als logisch. Sonst könnte ja jedes Programm kommen und diese Dialog klicken und verschwinden lassen und schon kann es ungehindert kommunizieren und unfug anstellen.
    Aber ist nur eine Idee ...

    schirrmie



  • Ähm, ihr wisst schon, dass Zonealarm so einen Fernsteuerschutz drin hat? Ich hab zwar keine Ahnung, wie der funktioniert, aber man kann das irgendwo in den Einstellungen abstellen. Weiß jetzt leider nicht mehr, wie genau die Checkbox in den Einstellungen heißt, da ich schon längere Zeit ZoneAlarm nicht mehr benutze. Einfach mal nachschauen 🙂

    mfg

    PS: Wenn dieser Schutz drin ist, kann man z.B. auch nicht über VNC diese ZoneAlarm-Bubbles bedienen...


Anmelden zum Antworten