Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Desactivar MSN (https://www.clubdelphi.com/foros/showthread.php?t=21464)

jorodgar 18-05-2005 15:57:16

Desactivar MSN
 
Necesito evitar que la gente de un aula de informática a unas horas determinadas abran el MSN. Mi idea inicial era matar el proceso, pero luego me di cuenta que si un usuario avispado cambia el nombre del ejecutable al msn lo puede lanzar ya que su nombre de proceso cambia.
He pensado en detectar cuando hay actividad por el puerto del msn (1863) y cerrarlo, pero segun he visto, no es posible cerrar puertos con W2000/XP.
Acepto ideas porque esto me esta volviendo loco!!!.
Gracias.

delphi.com.ar 18-05-2005 16:10:49

Puedes la "MessengerAPI", existe un objeto Messenger que tiene un evento OnSignIn y tienes un método SignOut!...
Si quieres te puedo pasar código de algo que hice, pero en VB :S

Saludos!

jorodgar 18-05-2005 16:42:57

Es que me gustaria que fuera algo genérico. es decir, tener la posibilidad tambien de quitar yahoo, etc...
De todas formas gracias. Sigo buscando alguna alternativa.

roman 18-05-2005 16:52:35

Cada vez que reinstalo una pc con Windows2000 o XP Pro, una de las primeras cosas que hago es habilitar la política de grupo para impedir la ejecución del messenger:

Run -> gpedit.msc -> configuración de usuario -> plantillas administrativas -> Windows Messenger -> No permitir que se ejecute Windows Messenger.

// Saludos

jorodgar 18-05-2005 18:00:26

roman con tu propuesta, bien me lo podria currar para saber en que llave de registro esta situado y desactivarlo. Pero para quitar por ejemplo el yahoo ¿como seria? ya que no me aperece :(
Gracias por tu aportación. Saludos

jorodgar 19-05-2005 11:41:03

solucion
 
Al final di con la solución :

function EnumProcess(hHwnd: HWND;lParam : integer): boolean; stdcall;
var
pPid : DWORD;
title, className : string;
i:integer;
name:string;
begin
if(hHwnd=NULL) then
begin
result := false;
end
else
begin
GetWindowThreadProcessId(hHwnd,pPid);
SetLength(className, 255);
SetLength(className, GetClassName(hHwnd, PChar(className), Length(className)));
SetLength(title, 255);
SetLength(title, GetWindowText(hHwnd, PChar(title), Length(title)));
// ProcessForm.ProcessListBox.Items.Add('Class Name = ' + className + '; Title = ' + title + '; HWND = ' + IntToStr(hHwnd) + '; Pid = ' + IntToStr(pPid));

if ((copy(title,1,3)='MSN') or (copy(title,1,5)='Yahoo')) then
begin
PostMessage(hHwnd, WM_QUIT, 0, 0);
end;}
result := true;
end;
end;

procedure matar_procesos;
begin
EnumWindows(@EnumProcess,0);
end;

marceloalegre 19-05-2005 14:21:13

Cuidado!, que si algun alumno te usa el web messenger ya puede chatear sin problemas... :(


La franja horaria es GMT +2. Ahora son las 06:38:04.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi