[Ajuda] Escondendo do ctrl+del "Erro aki"

Started by rodweb, 30 de March , 2006, 06:19:42 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

rodweb

coloquei esse code aki, éra pra ocultar do gerenciador de tarefaz mais da erro....o código tah errado ou uq ?

Quoteunit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;
 
type
  TForm1 = class(TForm)
  procedure FormCreate(Sender: TObject);
  procedure FormDestroy(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.DFM}
{Para ocultar um programa, deve-se registrar este como um serviço do Windows. Normalmente um serviço do Windows é ativado quando com a inicialização do sistema (Windows) e pemanece ativo até a finalização deste. Este processo esconde o programa da lista "Ctrl+Alt+Del"}
Const
  Servico_Simples = 1;
  Servico_Unregister = 1;
 
Function RegisterServiceProcess(DwProcessID, dwType: DWord): DWord; StdCall; External 'KERNEL32.dll';
 
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  RegisterServiceProcess(GetCurrentProcessID, Servico_Simples);
end;
 
procedure TForm1.FormDestroy(Sender: TObject);
begin
  RegisterServiceProcess(GetCurrentProcessID, Servico_Unregister);
end;
end.


whit3_sh4rk

Dá esse erro porque isso só funciona em Windows 9x.. Em Windows NT/XP isso não funciona, pois não existe o RegisterServiceProcess no kernel32.dll.. Como mostra na mensagem de erro..

[]s


Anonymous

disable  ctrl+alt+delSystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @I, 0);
enable ctrl+alt+del
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @I, 0);
tranca todos os atalhos do teclado
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0);

usar toda a memoria ( num tem nada a ver mas eu to postando) ^^

    function GetMemoryTotalPhys : DWord;
    var
    memStatus: TMemoryStatus;
    begin
    memStatus.dwLength := sizeOf ( memStatus );
    GlobalMemoryStatus ( memStatus );
    Result := memStatus.dwTotalPhys;
    end;

 ;)

whit3_sh4rk

[darkxlx]
Novamente, creio eu, que essas funções para desabilitar o Ctrl+Alt+Del, são apenas para Win9x..

Para Windows 2000/NT/XP isso pode ser facilmente feito pelo registro:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

Acrescente nessa chave, um valor DWORD de nome DisableTaskMgr e coloque nos dados dele 1(ativado).

Para fazer efeito em todos os usuários do PC, coloque em:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System ...

Um exemplo pra vcs:
Quote
//Após declarar a unit Registry em uses, use em algum evento OnClick, etc..
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.RootKey := HKEY_CURRENT_USER;
Reg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System\',True);
Reg.WriteBool('DisableTaskMgr', True);
Reg.CloseKey;
end;



[]s

rodweb