Clipper On Line • Ver Tópico - Bloquear Botão Direito fechar App e Gerenciador Tarefas

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Mensagempor aedurocha » 15 Jun 2017 15:56

Olá Turma, não sei se Fladimir já resolveu o problema dele, mas tive um problema semelhante e pesquisando aqui no forum ví a rotina disponibilizada por Kabiaba.
Funcionou direitinho só que quando clicava na barra de tarefa com o botao direito do mouse , o botão X voltava a ficar ativo, pesquisei um pouco mas e consegui melhorar a fução postada por Kabiaba, seque abaixo o original com as devidas alterações, esta rotina esta funcionando bem com windows xp , windows 7 e windows 10 32 e 64 bits.
desabilita o X e a opção fechar no menu da barra de tarefa e menu da janela.

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

#pragma BEGINDUMP

#define _WIN32_WINNT 0x0501 // esta linha depende da versao do windows xp= 0x0501 seven = 0x0601 é só ver a versao do windows
#include "stdio.h"
#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 ( TIRA_X ) // DESABILITA O X da janela DISABLECLOSEWINDOWS

{
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);
}

//HB_FUNC ( NOVOTIRARX ) // TIRAR X DA JANELA

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

//EnableMenuItem(MenuH,SC_CLOSE,MF_GRAYED);
//}

HB_FUNC ( NOVOTIRARX )
{
HWND hnd;
HMENU menu;
int i, j, cont;
LPTSTR buffer;

// Recebe o handle do console
hnd = GetConsoleWindow();

// Recebe o handle para o menu do sistema
menu = GetSystemMenu(hnd, 0);

// Recebe quantos itens tem no menu
cont = GetMenuItemCount(menu);

j = -1;

// Alocando espaço para receber a string que "não sabemos" o tamanho
buffer = (TCHAR*) malloc (256 *sizeof(TCHAR));

for (i=0; i<cont; i++) {
// Recebe a string do menu, na posição "i" e a coloca no buffer
GetMenuString(menu, i, buffer, 255, MF_BYPOSITION);
//Compara se a string do menu é igual a string "Fechar"
if (!strcmp(buffer, "&Fechar")) {
j = i;
break;
}
}
// Se a string "Fechar" for encontrada, remove do menu
if (j >= 0)
RemoveMenu(menu, j, MF_BYPOSITION);

return 0;
}

#pragma ENDDUMP
aedurocha
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 22
Data de registro: 31 Ago 2011 20:28
Cidade/Estado: Iguatu-Ceara
Curtiu: 2 vezes
Mens.Curtidas: 3 vezes

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Mensagempor fladimir » 15 Jun 2017 18:53

Obrigado colega...
Então não tinha resolvido
Ontem estava vendo sobre o assunto
coloquei sua função pra testar mas após executar o NovoTiraX() parece não afetar.
Recompilei mudando o #define do tipo do windows mas tb não resolveu (uso Windows 7 64)
O Fechar qdo pressiono o botão direito permanece
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Mensagempor rochinha » 17 Jun 2017 14:12

Amiguinhos,

Uma discussão sobre o assunto começou lá no forum Fivewin.com.br, chegou até aqui e com dois tapas, acabamos com ela:

Botão Iniciar do Windows 7 não invisibiliza
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Mensagempor fladimir » 18 Jun 2017 14:19

Não consegui usar essa referencia Dll32 do Five em console puro
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Mensagempor rochinha » 19 Jun 2017 01:36

Amiguinhos,

fladimir
STATIC FUNCTION FindWindowEx( hWndParent, hWndChildAfter, lpszClass, lpszWindow ) 
      #define DC_CALL_STD 0x0020
      nResult := DllCall( "user32.dll", DC_CALL_STD , "FindWindowExA" , hWndParent, hWndChildAfter, lpszClass, lpszWindow )
      RETURN nResult


Veja se funciona e adeque.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Mensagempor fladimir » 19 Jun 2017 02:47

Obrigado Rochinha, vou verificar.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Bloquear Botão Direito fechar App e Gerenciador Tarefas

Mensagempor rubens » 19 Jun 2017 14:25

Fladimir...

Aqui compilando em modo console...
Eu uso a WVT
REQUEST HB_GT_WVT_DEFAULT

com a opção
HB_GtInfo(HB_GTI_CLOSABLE, .F.)

Daí não fecha com o X e nem clicando com o botão direito do mouse. O Usuário só consegue fechar com CTRL+ALT+DEL...
Tanto faz em XP, 7 ou 10.
Eu uso o 10 no desenvolvimento...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar de usuário

rubens
Colaborador

Colaborador
 
Mensagens: 1518
Data de registro: 16 Ago 2003 09:05
Cidade/Estado: Nova Xavantina - MT
Curtiu: 77 vezes
Mens.Curtidas: 104 vezes

Anterior



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Google [Bot] e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro