Jump to content

Recommended Posts

Posted

Olá caros amigos, estou com uma duvida, atualmente em meu programa ele carrega uma dll importante cujo tem um form nessa dll

que fica oculto que possui um titulo X, o que eu queria fazer é impedir que o cara feche o form dessa dll, pensei em injetar uma dll no

explorer.exe onde verifica se o form foi fechado, mas alguns anti-virus detectariam como um malware, o que vocês me indicam?

obrigado!

Posted

Podes "anular" o menu de sistema da form, e criar o teu próprio.

A maneira mais simples é:

1. Definir a propriedade biSystemMenu para False.

form1.BorderIcons.biSystemMenu:=False;

2. Criar uma solução (menu, botão, etc.) que permita a janela ser fechada. Esta solução já pode ser controlada por ti, por exemplo só ficar Enabled quando uma determinada tarefa concluir.

Advertência: Deves ter muita atenção se optares por este procedimento. Um programa que bloqueia o funcionamento do utilizador indefinidamente (sem que o ponto 2 esteja previsto) pode ser considerado virus, mesmo que os Anti-Virus não o detectem assim, criando potenciais problemas legais a quem o fez.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Posted

entendo amigo, mas o problema não é que o cara feche, por exemplo o form ele é totalmente oculto, a pessoa não consegue ver, mas pelo titulo do form que está oculto, o cara consegue fecha-lo matando o processo entende? esse form no caso é uma dll que fica dentro do arquivo executavel, o executavel é um programa normal que a pessoa mexe, e essa dll possui um form totalmente oculto entende?

Posted

Ah, agora entendi.

Infelizmente nesse caso não posso é ajudar, nunca fiz isso, nem sei como fazer.  👍

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Posted

Propriedades do form > Events > OnCloseQuery >

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=false;
end;

podes é dizer que esse form oculto é uma mdi-child, e um formulario principal visivel será o mdi parent...

tenta explicar um pouco melhor, para eu entender realmente o que pretendes ao certo... tambem tava aqui a pensar no uso de threads mas acho que nao é isso que precisas :/

B2R » Beat2Revolution v3.0b | Regista e divulga-nos

beat2revolution.net
Posted

Pelo que me recordo da API do Windows, podes encontrar o processo da DLL e creio que podes fazer um hook aos eventos da janela.

Vê se isto ajuda:

http://msdn.microsoft.com/en-us/library/windows/desktop/ms632589(v=vs.85).aspx

http://msdn.microsoft.com/en-us/library/windows/desktop/ms644959(v=vs.85).aspx

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Posted

Porque não fazer isso sem Form? Se é para estar oculto, provavelmente não precisas da janela...

pedro, por que a dll não funciona algumas funções que em um form normal funcionaria compreendi?

Posted

pedro, por que a dll não funciona algumas funções que em um form normal funcionaria compreendi?

Tudo depende do que vais fazer, mas muito provavelmente, se a tal form nunca chega a aparecer, não será necessária, podendo-se fazer o mesmo processo sem ela.

Agora, pelo que percebi, o teu problema nem é o fechar da form, mas sim do próprio processo.

Possivelmente o TApplictionEvents é capaz de ter algo para isso, mas como te tinha dito, nunca o fiz.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.