Toda a gente, pelo menos uma vez ja precisou de abrir um documento de texto (.txt) com o NotePad. O NotePad é muito fácil de utilizar e muito eficiente no que diz respeito à velocidade. Ora esta facilidade torna-o convidativo para abrir documentos de texto pequenos e médios. Quando se tenta abrir um documento de texto um pouco maior o NotePad pára e pergunta se desejamos abrir o documento com o WordPad. Até aqui, nada de novo. Mas eu acho irritante o facto de ele estar sempre a fazer a mesma pergunta.
Uma maneira de evitar a pergunta é de obrigar o NotePad a abrir o WordPad sempre que ele não tem capacidade para o nosso documento de texto.
Antes de tudo, devemos fazer uma copia de segurança do nosso NotePad. Para esse efeito, basta copia-lo e dar-lhe o nome de NotePad2.exe.
Temos que abrir o NotePad com um editor de executáveis tais como o HexWorkShop e procurar esta cadeia de código:
-> FF15A8644000
Uma vez a cadeia de código encontrada, só nos resta trocar por esta nova cadeia de código:
-> EB0D90909090
Grava-se o programa NotePad.exe alterado, e já esta!
Agora sempre que se abrir um documento de texto médio ou grande, o NotePad abre automaticamente o WordPad.
Para mais explicações sobre a cadeia de código que mudamos, leia as linhas que se seguem.
Porção da listagem original do ficheiro NOTEPAD.EXE gerada pelo WinDasm:
* Referencia a Função API do KERNEL32 -> GetStartupInfoA
:0040339F FF1590634000 Call dword ptr [00406390]
:004033A5 6A24 push 00000024
:004033A7 A1B4504000 mov eax, dword ptr [004050B4]
-> Prepara o texto "Este ficheiro é muito grande..."
:004033AC 56 push esi
:004033AD 50 push eax
:004033AE FF7508 push [ebp+08]
-> Guarda o caminho e o nome do ficheiro que se vai abrir
* Referencia a Função API do USER32 -> MessageBoxA
:004033B1 FF15A8644000 Call dword ptr [004064A8]
-> Faz aparecer uma caixa de mensagem com o seguinte texto:
"Este ficheiro é muito grande"
"Quer abri-lo com o WordPad?"
:004033B7 83F806 cmp eax, 00000006
-> Verifica se o botão da caixa de mensagem premido foi o "Sim"
:004033BA 0F85A7000000 jne 00403467
-> Se foi outro botão, então retorna sem chamar o WordPad
:004033C0 6804010000 push 00000104
-> Se o programa chegou até aqui, então a escolha foi o botão "Sim"
-> O fluxo do programa continua e chama o WordPad com o nosso ficheiro.
Porção da listagem alterada do ficheiro NOTEPAD.EXE gerada pelo WinDasm:
* Referencia a Função API do KERNEL32 -> GetStartupInfoA
:0040339F FF1590634000 Call dword ptr [00406390]
:004033A5 6A24 push 00000024
:004033A7 A1B4504000 mov eax, dword ptr [004050B4]
-> Prepara o texto "Este ficheiro é muito grande..."
:004033AC 56 push esi
:004033AD 50 push eax
:004033AE FF7508 push [ebp+08]
-> Guarda o caminho e o nome do ficheiro que se vai abrir
:004033B1 EB0D jmp 004033C0
-> Salto incondicional para o endereço 4033C0 (push 00000104)
:004033B3 90 nop
:004033B3 90 nop
:004033B3 90 nop
:004033B3 90 nop
-> Esta serie de NOPs só serve para acertar os ciclos até a próxima instrução.
:004033B7 83F806 cmp eax, 00000006
-> Esta verificação nunca vai ser feita
:004033BA 0F85A7000000 jne 00403467
-> Este salto nunca vai ser executado
:004033C0 6804010000 push 00000104
-> O fluxo do programa vem directamente para aqui e executa automaticamente o WordPad.
Ultimas notas:
Este pequeno exercício, só pode ser executado por mera curiosidade. O NotePad faz parte integrante do Windows e é propriedade da MicroSoft. O NotePad não deve ser adulterado sem autorização expressa da MicroSoft.
Uma maneira de evitar a pergunta é de obrigar o NotePad a abrir o WordPad sempre que ele não tem capacidade para o nosso documento de texto.
Antes de tudo, devemos fazer uma copia de segurança do nosso NotePad. Para esse efeito, basta copia-lo e dar-lhe o nome de NotePad2.exe.
Temos que abrir o NotePad com um editor de executáveis tais como o HexWorkShop e procurar esta cadeia de código:
-> FF15A8644000
Uma vez a cadeia de código encontrada, só nos resta trocar por esta nova cadeia de código:
-> EB0D90909090
Grava-se o programa NotePad.exe alterado, e já esta!
Agora sempre que se abrir um documento de texto médio ou grande, o NotePad abre automaticamente o WordPad.
Para mais explicações sobre a cadeia de código que mudamos, leia as linhas que se seguem.
Porção da listagem original do ficheiro NOTEPAD.EXE gerada pelo WinDasm:
* Referencia a Função API do KERNEL32 -> GetStartupInfoA
:0040339F FF1590634000 Call dword ptr [00406390]
:004033A5 6A24 push 00000024
:004033A7 A1B4504000 mov eax, dword ptr [004050B4]
-> Prepara o texto "Este ficheiro é muito grande..."
:004033AC 56 push esi
:004033AD 50 push eax
:004033AE FF7508 push [ebp+08]
-> Guarda o caminho e o nome do ficheiro que se vai abrir
* Referencia a Função API do USER32 -> MessageBoxA
:004033B1 FF15A8644000 Call dword ptr [004064A8]
-> Faz aparecer uma caixa de mensagem com o seguinte texto:
"Este ficheiro é muito grande"
"Quer abri-lo com o WordPad?"
:004033B7 83F806 cmp eax, 00000006
-> Verifica se o botão da caixa de mensagem premido foi o "Sim"
:004033BA 0F85A7000000 jne 00403467
-> Se foi outro botão, então retorna sem chamar o WordPad
:004033C0 6804010000 push 00000104
-> Se o programa chegou até aqui, então a escolha foi o botão "Sim"
-> O fluxo do programa continua e chama o WordPad com o nosso ficheiro.
Porção da listagem alterada do ficheiro NOTEPAD.EXE gerada pelo WinDasm:
* Referencia a Função API do KERNEL32 -> GetStartupInfoA
:0040339F FF1590634000 Call dword ptr [00406390]
:004033A5 6A24 push 00000024
:004033A7 A1B4504000 mov eax, dword ptr [004050B4]
-> Prepara o texto "Este ficheiro é muito grande..."
:004033AC 56 push esi
:004033AD 50 push eax
:004033AE FF7508 push [ebp+08]
-> Guarda o caminho e o nome do ficheiro que se vai abrir
:004033B1 EB0D jmp 004033C0
-> Salto incondicional para o endereço 4033C0 (push 00000104)
:004033B3 90 nop
:004033B3 90 nop
:004033B3 90 nop
:004033B3 90 nop
-> Esta serie de NOPs só serve para acertar os ciclos até a próxima instrução.
:004033B7 83F806 cmp eax, 00000006
-> Esta verificação nunca vai ser feita
:004033BA 0F85A7000000 jne 00403467
-> Este salto nunca vai ser executado
:004033C0 6804010000 push 00000104
-> O fluxo do programa vem directamente para aqui e executa automaticamente o WordPad.
Ultimas notas:
Este pequeno exercício, só pode ser executado por mera curiosidade. O NotePad faz parte integrante do Windows e é propriedade da MicroSoft. O NotePad não deve ser adulterado sem autorização expressa da MicroSoft.