Pesquisar na Comunidade
Showing results for tags 'UAC'.
Encontrado 1 registro
-
Saudações a todos: O problema: Sob Windows 8, o bloqueio de teclado/mouse não funciona. Testei, inclusive a função BlockInput em um aplicação simples, sem ACBR e realmente não funciona. O problema está no nível de privilégio requerido para que o Windows processe a função. Uma forma de fazer com que o aplicativo funcione é mudar o nível de privilégio do arquivo .exe manualmente (marcando a opção Executar este programa como administrador). O desejável é que o aplicativo não requeira esta mudança. A solução: Ao pesquisar na NET encontrei este artigo bem explicado.(http://www.cesarromero.com.br/embutindo-o-manifesto-na-aplicao-com-delphi/). Lá tem uma boa explicação do mecanismo de permissões. Fiz os simples procedimentos e embuti o RES na minha aplicação. abaixo um exemplo .dpr simples com a adição do RES program Project1; uses Vcl.Forms, Unit2 in 'Unit2.pas' {Form2}; {$R *.res} {$R UAC.res} begin Application.Initialize; Application.MainFormOnTaskbar := True; Application.CreateForm(TForm2, Form2); Application.Run; end. Vá em Project/Options/Application e coloque "none" em runtimes themes. Se estiver diferente de None, não funciona. Após a compilação o bloqueio passou a funcionar normalmente. Uma dica: o Delphi deve estar rodando com privilégios administrativos, do contrário ele compila e gera o exe mas não o roda, além de exibir uma mensagem informando que necessita de elevação. O arquivo compilado (.RES) deve estar junto aos principais arquivos do projeto, ou ao compilar, o Delphi informará que o .RES não foi encontrado. Eu testei o executável na minha maquina de desenvolvimento (W8) e em outras duas, rodando W8 e W8.1. Não testei no W7 com o UAC ativo. Espero que a dica ajude aos colegas que possam ter a mesma dificuldade.