Página 1 de 2

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 18 Fev 2016 11:32
por fladimir
Olá pessoal,

Alguém sabe se é possível bloquear o fechamento de nossas aplicações via botão direito do mouse ou gerenciador de tarefas no windows 7?

Estou tendo um problema q tem usuários fechando a aplicação pelo botão direito...

Tem a dica do Rochinha pra voltar a aplicação caso fechada etc... (tem um tópico sobre isso) mas eu queria mesmo era impedir pq 1 x por mês na primeira execução do mês o sistema faz algumas rotinas demoram um pouco mas são necessárias, e qdo o usuário vê aquilo demorando apesar de todas mensagens pedindo pra aguardar etc e tal, apesar de orientar os clientes e tal... alguns acabam fechando, talvez por não querer esperar, talvez meio q no automatismo do dia a dia, independente do motivo fecham e NÃO quero q fechem se for possível.

[]´s

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 18 Fev 2016 15:29
por Kapiaba
Mostre um <Print Screen> do que você quer impedir o fechamento porfa.

Veja se ajuda:

Código: Selecionar todos

//--------------------------------------------------------------------------//
/*
SHOWTASKBAR() // Habilita
HIDETASKBAR() // Desabilita
TIRA_X()      // Desabilita o X da Janela
PISCA_EXE()   // Vai Piscar o Seu EXE na Barra do Windows
*/

#pragma BEGINDUMP

#include "windows.h"
#include "shlobj.h"
#include "hbapi.h"
#include "math.h"
#include "hbvm.h"
#include "hbstack.h"
#include "hbapiitm.h"
#include "hbapigt.h"

HB_FUNC ( SHOWTASKBAR ) //Habilita o botao INICIAR
{
HWND hWnd = FindWindow("Shell_TrayWnd", "");

ShowWindow( hWnd, 1 );
}

HB_FUNC ( HIDETASKBAR ) //Desabilita o botao Iniciar
{
HWND hWnd = FindWindow("Shell_TrayWnd", "");

ShowWindow( hWnd, 0 );
}

HB_FUNC ( FLASHWINDOW ) // VAI PISCAR O SEU EXE NA BARRA
{
HWND Handle = GetForegroundWindow();

FlashWindow(Handle,TRUE); // VAI PISCAR O SEU EXE NA BARRA

Sleep(300); // TEMPO DE ESPERA
}


HB_FUNC ( DISABLECLOSEWINDOWS ) // DESABILITA O X da janela

{
HMENU MenuH = GetSystemMenu(GetForegroundWindow(),FALSE);

EnableMenuItem(MenuH,SC_CLOSE,MF_GRAYED);
}

HB_FUNC ( ENABLECLOSEWINDOWS ) // HABILITA O X da janela

{
HMENU MenuH = GetSystemMenu(GetForegroundWindow(),TRUE);

EnableMenuItem(MenuH,SC_CLOSE,MF_GRAYED);
}

#pragma ENDDUMP

//--------------------------------------------------------------------------//
abs

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 18 Fev 2016 19:56
por fladimir
Obrigado JOão pela força... Eu tenho essas rotinas tb mas não seria bem isso o q preciso... veja...

preciso desabilitar o botão direito na aplicação (na barra) q aparece "Fechar Janela" pq ai se clica nisso fecha a aplicação.

Testa no teu ai pra ver se o teu fecha...

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 18 Fev 2016 22:08
por rmlazzari
Quem sabe ajuda... são intervenções no Windows, nada com o Harbour...


http://www.tecmundo.com.br/gerenciador- ... indows.htm
e
http://www.tecmundo.com.br/programas/36 ... indows.htm

Nesse segundo, WinRAP, ele promete:
O WinRAP ainda possui opções de trava no menu Lock. Por meio desse recurso as configurações realizadas por você permanecem intocadas e não é mais possível esconder ou exibir mais programas, muito menos encerrar o aplicativo.
Nunca usei, fladimir, mas já vi um pessoal da antiga Datasul usando para evitar interromper fechamentos mensais, coisas assim.

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 19 Fev 2016 07:36
por fladimir
Vou analisar. Obrigado

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 19 Fev 2016 09:16
por Kapiaba
Bom dia, veja onde está escrito: <Fechar>, Não fecha de jeito nenhum, só sai no botão de saida. abs

Imagem

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 19 Fev 2016 10:34
por fladimir
A janela do teu sistema é definida como? Dialog?
Teu Windows é qual?

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 19 Fev 2016 11:21
por Kapiaba
Não, é uma WINDOW(janela) - DIALOGS em Fivewin, é a mesma coisa que um FORM em delphi, e para desligar o X de uma DIALOG(form), basta entrar no RECURSO(Resource) e desligar via WORKSHOP.EXE, se fosse em linha de comando, @SAY, basta achar qual o comando que desliga o X do dialogo e colocar o comando no DEFINE DIALOG oDlg...

O que você usa, RECURSO ou @Say na sua linguagem, creio que o caminho seja por ai... abs.

Windows 7 de 32 bits, mas desligará em qualquer versão do Windows, pois o código, é em C for xHarbour.

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 20 Fev 2016 00:14
por rochinha
Amiguinhos,

O Gerenciador de tarefas pode ser desligado diretamente no registro, se o seu aplicativo tiver funções de suporte a leitura e escrita do registro facilmente.

Caso possa usar a linha de comando bastará, em uma janela Prompt do DOS como Administrador executar o regedit seguido do parâmetro contendo o nome do arquivo .REG desejado para a manutenção, segue alguns:

Desativar o Task Manager no registro no Windows Vista/7:

Código: Selecionar todos

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=-

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=-
Ativar o Task Manager no registro no Windows Vista/7:

Código: Selecionar todos

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=-

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"DisableTaskMgr"=-
Exemplo de comando:

Código: Selecionar todos

ShellExecute( GetActiveWindow(), "RUNAS", "regedit.exe", " /s arquivo.reg", "c:\windows\system32", 1)

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 20 Fev 2016 10:09
por fladimir
vlw Rochinha vou testar tb. obrigado.

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 25 Mar 2017 01:06
por cjp
Pessoal, estou tentando também desabilitar o fechamento da aplicação pelo usuário. Também já uso o tira_x() sugerido acima, mas igualmente não resolve o que preciso.

Testei esta última sugestão, mas acho que não estou sabendo fazer isto corretamente de dentro da minha aplicação.

Uso modo console. É possível fazer isso? Como?

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 25 Mar 2017 10:32
por fladimir
Com relação a tirar o X e o Gerenciador de tarefas ( não testei) pq se não conseguirmos desabilitar o botao direito para fechar a aplicação na própria barra de tarefas (figura abaixo) o problema continua...
Captura de tela em 2017-03-25 09-30-56.png
Captura de tela em 2017-03-25 09-30-56.png (13.62 KiB) Exibido 3619 vezes
Aki o q tive q fazer foi uma série de tratamentos nas rotinas de vendas para q caso fechar a aplicação fazer o estorno etc e não afetar o estoque/movimentações, pq se fechar em consultas não seria tanto a questão, se fecha no meio do cadastramento de uma ficha perde o trabalho daquele item, agora se fecha no meio de uma entrada de notas ou uma venda é q mora o perigo se não tratarmos isso.

O bom seria inibir o fechamento da aplicação pelo botão direito do mouse, porém não sei se isso seria possível só para a aplicação console.

Uso Windows 7 64, o João (Kapiaba) testou e lá com a aplicação dele em Five não deu problema, mas aki no meu todas as janelas são passiveis de fechamento via botão direito do mouse.

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 25 Mar 2017 15:22
por rochinha
Amiguinhos,

fladimir
Sua aplicação é console certo? Forçá-la a ficar sempre a frente de todas as janelas e com tela cheia resolveria o fechamento brutal.

Desabilitar a barra de tarefas enquanto o aplicativo esta ativo também, mas só vale para aplicativos monotarefa, que tentem manter o usuário focado no trabalho, como um PDV.

Retirar o X de janelas só funciona em aplicações Windows, portanto mesmo tirando o X da tela de Prompt do DOS, ela estará restaurada a uma janela no desktop deixando a barra de tarefas visível para o usuário.

Desativar Alt-Tab seria ótimo impedindo o usuário de ao pressioná-las viesse a ter restaurada a tela do aplicativo e pudesse fechá-lo brutalmente.

Desativar CTRL-ALT-DEL também, acho que até o mais fácil mas parece que este só mudar ao reiniciar. Geralmente alguns virús fazem isto para evitar o seu fechamento.

Em suma é possível fazer algumas coisas mesmo tendo o aplicativo em console, pois acesso a API do Windows pelo Harbour não está relacionado a nenhuma GUI.

Seguem dois utilitários que podem ajudar nos hackings:

download API-Guide

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 25 Mar 2017 16:41
por fladimir
Vou analisar obrigado.

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Enviado: 25 Mar 2017 21:15
por Vander
Já tentou assim:
Ao iniciar a janela principal

Código: Selecionar todos

lSair := .F.
DEFINE WINDOW oWnd TITLE ....
...
...
ACTIVATE WINDOW oWnd MAXIMIZED  valid lSair
Na função de fechamento da janela

Código: Selecionar todos

FUNCTION SAIR()
   lSair := .T.
   ....
   ... 
Desta forma só é possível fechar pela rotina responsável pelo fechamento ou pelo gerenciador de tarefas, o botão direito da barra de tarefas do Windows ou o X da janela ficam sem ação.

Vander