exclusividade para o meu programa
Gostaria de saber como fazer para que, ao iniciar minha aplicacao Delphi, eu ´ desabilite ´ o shell do Windows (Explorer). Ou seja, o que eu preciso e´ de uma forma de fazer com que apos a minha aplicacao seja iniciada, a maquina trave e só funcione quando eu digitar uma senha. tipo proteção de tela
tentei o codigo abaixo, mas nao funcionou em delphi7:
procedure Tform1.ChangeShell(String programa);
var
ArquivoIni : Tinifile;
begin
try
ArquivoIni := Tinifile.Create(´System.ini´);
ArquivIni.WriteSection(´Config´,´Shell´,´Myprog.exe´);
fynally
ArquivoIni.Destroy;
end;
end;
tentei o codigo abaixo, mas nao funcionou em delphi7:
procedure Tform1.ChangeShell(String programa);
var
ArquivoIni : Tinifile;
begin
try
ArquivoIni := Tinifile.Create(´System.ini´);
ArquivIni.WriteSection(´Config´,´Shell´,´Myprog.exe´);
fynally
ArquivoIni.Destroy;
end;
end;
Mahdak
Curtidas 0
Respostas
Orlando Frade
13/04/2004
Eu tenho um exemplo de um prog q faz isso. Eu vou postá-lo aqui depois, pois estou sem tempo agora.
GOSTEI 0
Orlando Frade
13/04/2004
É + ou - assim (pq eu ainda não entendi direito o código)
vc deve declarar uma [b:0151cef896]procedure[/b:0151cef896] na sessão privada q é: [i:0151cef896][b:0151cef896]procedure[/b:0151cef896] AppMsg(var Msg: TMsg; var Handled: Boolean);[/i:0151cef896]
no evento OnCreate do formulário principal que eu chamo de FormSenha você deve digitar o seguinte código:
ainda tá faltando desabilitar o Ctrl + Alt + Del q está em uma outra documentação. Mais tarde eu coloco aqui pra vc
vc deve declarar uma [b:0151cef896]procedure[/b:0151cef896] na sessão privada q é: [i:0151cef896][b:0151cef896]procedure[/b:0151cef896] AppMsg(var Msg: TMsg; var Handled: Boolean);[/i:0151cef896]
procedure TFormSenha.AppMsg(var Msg: TMsg; var Handled: Boolean);
begin
if (Msg.Message = wm_SysCommand) and (Msg.wParam = sc_ScreenSave) then
Handled := true;
end;
no evento OnCreate do formulário principal que eu chamo de FormSenha você deve digitar o seguinte código:
procedure TFormSenha.FormCreate(Sender: TObject);
begin
Application.OnMessage := AppMsg;
SetForeGroundWindow(Application.Handle);
ShowWindow(FindWindow(nil,´Program Manager´),SW_HIDE); // Ícones Desktop
ShowWindow(FindWindow(´Shell_TrayWnd´, nil), SW_HIDE); // Barra de Tarefas
//SystemParametersInfo(97, Word(True), @OldValue, 0); // liga Ctrl+Alt+Del, Alt+Tab, Ctrl+Esc
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, Nil, 0)
ainda tá faltando desabilitar o Ctrl + Alt + Del q está em uma outra documentação. Mais tarde eu coloco aqui pra vc
GOSTEI 0
Orlando Frade
13/04/2004
Para desabilitar o ctrl+alt+del
declare a variavel [b:50e047071e]OldValue : LongBool;[/b:50e047071e] no evento onCreate do formulário principal e dentro do procedimento coloque a seguinte linha:
[b:50e047071e]SystemParametersInfo(97, Word(True), @OldValue, 0);[/b:50e047071e]
Com isso vc desabilita o ctrl+alt+del, alt+tab + ctrl+esc.
Essa dica foi retirada do site da borland
declare a variavel [b:50e047071e]OldValue : LongBool;[/b:50e047071e] no evento onCreate do formulário principal e dentro do procedimento coloque a seguinte linha:
[b:50e047071e]SystemParametersInfo(97, Word(True), @OldValue, 0);[/b:50e047071e]
Com isso vc desabilita o ctrl+alt+del, alt+tab + ctrl+esc.
Essa dica foi retirada do site da borland
GOSTEI 0