Ver Mensaje Individual
  #1  
Antiguo 20-11-2009
marareta marareta is offline
Miembro
 
Registrado: ago 2008
Posts: 33
Reputación: 0
marareta Va por buen camino
sockets en cliente servidor

buenas amigos de club delphi, aqui de nuevo molestandolos, saben, tengo 2 aplicaciones, una cliente y otra servidor, y con ellas manejo sockets, lo que estoy haciendo es que por medio de una aplicacion me conecto por medio de sockets a la otra y le doy la orden de que se bloquee el administrador de tareas, el escritorio y la barra de tareas, abriendo las 2 aplicaciones en mi compu y ejecutandolas al mismo tiempo si me obedecen y se conectan correctamente, el problema es cuando las tengo en diferente computadora, no se si sea que tengo equivocados los valores del clientsocket y del serversocket.
Los valores del client socket son:
active: true
address:127.0.0.1 (aqui la verdad no se cual ip poner)
client type: ctNonBlocking
port: 4141 (lo tengo exactamente igual en el server socket)

y los valores en el serversocket son:
active: true
port:4141
server type: stNonBlocking

no se si tenga algun error aqui.
ahora les pongo el codigo de las aplicaciones:
en la aplicacion principal que es donde tengo el clientsocket y mando bloquear a la otra aplicacion tengo el siguiente codigo, que lo tengo funcionando con radiobuttons:

Código Delphi [-]
 
procedure TMenuPrincipal.RadioButton1Click(Sender: TObject);
begin
clientsocket1.socket.SendText('1');
end;
procedure TMenuPrincipal.RadioButton2Click(Sender: TObject);
begin
clientsocket1.socket.SendText('2');
end;
procedure TMenuPrincipal.RadioButton3Click(Sender: TObject);
begin
clientsocket1.socket.SendText('3');
end;
procedure TMenuPrincipal.RadioButton4Click(Sender: TObject);
begin
clientsocket1.socket.SendText('4');

lo que hago aqui es mandarle al serversocket un numero y cuando lo reciba va a ejecutar un case, que es el siguiente.
Este es el codigo del server socket en la propiedad onclientread:

Código Delphi [-]
 
procedure TMenuPrincipal.ServerSocket1ClientRead(Sender: TObject;
  Socket: TCustomWinSocket);
  var
  reg: TRegistry;
  begin
    case (strtoint(Socket.ReceiveText)) of
      1:   begin
            label1.caption:='El administrador de tareas está desactivado';
            reg := TRegistry.Create;
            reg.RootKey := HKEY_CURRENT_USER;
            reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', True);
            reg.WriteString('DisableTaskMgr', '1');
            reg.CloseKey;
            reg.Free;
           end;
      2:   begin
            label1.caption:='El administrador de tareas está activado';
            reg := TRegistry.Create;
            reg.RootKey := HKEY_CURRENT_USER;
            reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System', True);
            reg.DeleteValue('DisableTaskMgr');
            reg.CloseKey;
            reg.Free;
           end;
      3:   begin
            timer1.Enabled:=true;
            label2.caption:='El barra de tareas y el escritorio están ' +
              'activados';
           end;
      4:   
           begin
              label2.caption:='El barra de tareas y el escritorio están ' +
              'desactivados';
              Timer1.Enabled:= false;
              ShellExecute(MenuPrincipal.Handle,nil,('explorer.exe'),'','',SW_HIDE);
              registro(Hkey_Current_User, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\',
                                'DisableTaskMgr',ParamStr(1));
           end;
 
    end;
end;


las opciones 3 y 4 en el case utilizan un timer, el codigo es el siguiente:
Código Delphi [-]
procedure TMenuPrincipal.Timer1Timer(Sender: TObject);
begin
//Con Shellexecute cerramos el proceso "explorer" osea el explorador de windows
   ShellExecute(Handle, nil, 'tskill', 'explorer', nil, sw_hide);
   //Aquí accedemos al registro y bloqueamos al acceso al TaskMgr osea el (ctrl+alt+supr)
   registro(Hkey_Current_User, 'SOFTWARE\Microsoft\Windows    \CurrentVersion ' +
     'Policies\System\', 'DisableTaskMgr',IntToStr(1));
end;

como ya les comente mi verdadero problema esta en la conexion de los sockets, si me pudieran ayudar lo antes posible se los agradeceria mucho
un saludo
Responder Con Cita