Abrindo arquivos HLP no Windows 10

Desde o Windows 7, a Microsoft não distribui mais o WinHelp (WinHlp32.exe), responsável por abrir os antigos arquivos de ajuda (help).

Para quem ainda usa programas antigos/desatualizados, ou desenvolve software usando componentes antigos que não tiverem o arquivo de ajuda migrados para o novo formato, isso acaba gerando um grande problema.

Até a versão 8.1 do Windows, a Microsoft estava criando instaladores do WinHelp, que podiam ser baixados e instalados manualmente através do link https://support.microsoft.com/pt-br/kb/917607. No entanto, até o momento (Nov/2015), não há uma versão disponível para o Windows 10.

Vasculhando a internet, encontrei um link onde mencionavam uma alternativa (gambiarra) para conseguir instalar o WinHelp no Windows 10 e, portanto, abrir os arquivos .hlp. Basicamente, oque deve ser feito é:

  1. Baixe o arquivo disponível em http://www.komeil.com/download/1230
  2. Descompacte (com o WinRar, etc) o conteúdo do arquivo baixo em uma pasta temporária qualquer.
  3. Entre os arquivos extraídos, está o install.cmd
  4. Edite o install.cmd no bloco de notas, e deixe o conteúdo da seção Settings como no exemplo abaixo (basicamente, insira as duas linhas que estão em negrito).
  5. Grave as alterações.
  6. Baixe o arquivo 7zip disponível em http://www.komeil.com/download/2968 e extraia os arquivos winhlp32.exe e winhlp32.exe.mui encontrados em “50.0.6001.18001 Windows Vista & Windows Server 2008 KB917607 updated functional” e substitua os originais gerados pelo passo 2 acima.
  7. Execute o Install.cmd como Administrador.

Fazendo isso, você conseguirá abrir os antigos arquivos de help, no Windows 10.

Os passos abaixo são necessários caso a opção de Busca (Find) do WinHelp não esteja funcionando devido a falta do arquivo ftsrch.dll:

  1. Entre em http://originaldll.com/file/ftsrch.dll/1047.html e baixe a DLL
  2. Se seu Windows for 64bits, grave-a na pasta c:\Windows\SysWow64, se for 32bits, grave-a na pasta c:\Windows\System32
  3. Note que parar gravar nessas pastas, você precisa ter permissões de Administrador.

Com isso, a opção de Busca deve passar a funcionar.

:: --------------------------------
:: Settings

set MuiFileName=winhlp32.exe.mui
set ExeFileName=winhlp32.exe
set WindowsVersion=7
goto :BypassVersionError

Rad Studio XE2 vem aí!

A Embarcadero, atual “dona” do Delphi, começou a anunciar as novidades da próxima versão do Rad Studio, e também uma turnê mundial de apresentação do novo produto, que passará por algumas cidades do Brasil.

Entre as novidades, está o tão aguardado (pelo menos por alguns) suporte a 64bits (o Delphi poderá compilar aplicações para rodar em 64bits no Windows), além da possibilidade de criar aplicações nativas tanto para Windows como para MacOSX! Os controles VCL aparentemente também foram “modernizados” com a possibilidade de se utilizar “temas” a fim de alterar a aparência dos mesmos.

Uma nova tecnologia, chamada de FireMonkey, possibilitará a criação de aplicações gráficas, aproveitando os recursos de GPUs, possibilitando o uso de efeitos de transição, etc, em HD e 3D.

Apesar de não fornecer detalhes, o RadPHP (antigo Delphi for PHP) aparentemente vai possibilitar o desenvolvimento de aplicações para iOS e Android.

Após uma quase “morte” (enquanto estava nas mãos da falecida Borland), é muito bom ver que a Embarcadero está investindo e modernizando o produto, inserindo novos recursos e tecnologias e atendendo alguns anseios dos desenvolvedores.

Não esqueça de se cadastrar para concorrer a 3 cópias do Rad Studio.

Lazarus, progredindo e ficando mais estável!

Há alguns anos atrás, logo depois de ter adquirido meu primeiro dispositivo com Windows Mobile (eca!), tentei criar uma aplicação simples compatível com Windows CE, para ver o quão difícil seria.

Como nosso Delphi até hoje não tem essa capacidade, e não estava a fim de usar .Net nem qualquer outra linguagem da MS, o caminho mais obvio foi usar o Lazarus/FreePascal, mas sem muito sucesso: inúmeros erros na instalação, compilação, etc.

Ontem, resolvi tentar novamente. Baixei o instalador do Lazarus e do compilador add-on pra WinCE (ambos versões snapshot), e logo de cara me espantei: Ambos instalaram sem qualquer problema!

Em seguida, baixei um exemplo de código feito em Lazarus, para acessar o GPS do PDA. Após baixar algumas units que não estavam incluídas no download do código fonte da aplicação, compilei e rodei normalmente no Windows XP. Configurei então as opções do projeto para gerar código WinCE, compilei novamente, e vualá! Uma aplicação WinCE, sem precisar mudar uma linha de código sequer!

Copiei a aplicação (13MB!!!!) para o PDA, e funcionou logo de primeira! O tamanho do arquivo deixa claro que o FreePascal ainda precisa melhorar nessa área. Felizmente, desligando as opções de informações de debug, o tamanho do arquivo diminuiu para 1.8MB (que diferença! mas fica mais difícil debugar os problemas).

Existe uma biblioteca chamada KOL-CE, que permite criar aplicações GUI para Win32/WinCE que ficam bem menores do que as nativas do Lazarus. No entanto, a última versão do FreePascal tem algumas incompatibilidades com o código da KOL-CE, portanto, não consegui usa-la.

Resolvi escrever minha própria aplicação. Criei um componente para acessar o GPS via porta serial. Compilou de primeira!

Os primeiros problemas começaram com a interface da aplicação:

Fiz uma interface muito simples, com um PageControl, alguns labels, etc. Rodando no Win32, tudo perfeito! Ao gerar para WinCE e jogar no PDA, os labels simplesmente não apareciam! Uma Googlada rápida e descobri que é um bug da versão atual do LCL (equivalente ao VCL do Delphi). Solução gambiarra: inserir um TPanel dentro do TabSheet e colocar os componentes dentro do Panel, fazendo assim com que eles sejam “pintados” na tela. Feito isso, tudo blz!

O que me deixa mais feliz com tudo isso, é ver que o Lazarus/FreePascal tem progredido, apesar que lentamente. O fato de se poder utilizar uma mesma base de código para criar aplicações (inclusive GUI) multi-plataforma, é um sonho de qualquer programador.

A falecida Borland tentou algo nessa área, via Kylix. Infelizmente, não vingou. O FreePascal parece estar no caminho certo. Fico torcendo para que o ritmo de desenvolvimento aumente, e para que a ferramenta fique cada vez mais completa e estável.

Dica:

  1. A nova versão do Lazarus é compatível com arquivos DFM do Delphi.
  2. Apesar da maioria dos comandos, funcões, etc. serem equivalentes ao que estamos acostumados no Delphi, deve-se ficar atento à algumas diferenças, por exemplo: FloatToStr no FreePascal utiliza o DecimalSeparator para fazer a conversão. No Delphi, o “.” é sempre utilizado como separador decimal.
  3. As versões snapshot, apesar de não serem testadas, tem a vantagem de incluirem as correções mais recentes (mas podem incluir novos bugs também).
  4. O FreePascal/Lazarus produz código 64bits (coisa que o Delphi ainda não faz).

PS: Agora preciso descobrir como fazer para gravar audio do microfone do PDA para um arquivo .wav

Registrando o Help do Jedi no Delphi

Para quem possa interessar, segue os passos para integrar o help do JVCL (Jedi VCL) no Help do Delphi 2007.

Primeiro, baixe o help do site do SourceForge. O arquivo que eu usei foi o JVCL333Help-Help2.zip

No prompt de comando, com direitos de administrador, rode a linha abaixo:

h2reg.exe -u "cmdfile="JVCL333_h2reg.ini"

Obs: o h2reg.exe está gravado na pasta Help\Doc do Delphi 2007. Talvez você tenha que especificar o path completo para o arquivo JVCL333_h2reg.ini.

Edite o arquivo JVCL333_h2reg.ini adicionando a linha abaixo tanto na seção [Reg_Plugin] como na [UnReg_Plugin].

borland.bds5|_DEFAULT|Jedi.JVCL|_DEFAULT|

Pronto!

RAD, com certeza!

Na eterna briga entre linguagens e IDEs, continuo fã do Delphi! Como atualmente estou reformando uma casa, resolvi criar uma aplicação pra controlar os gastos envolvidos, facilitando o acompanhamento e talvez, prorrogando ou antecipando o infarto 😉

A questão é que, em apenas 6 horas, criei uma aplicação completa, nativa, que roda em qualquer versão do Windows >= 98, com deploy ridiculamente fácil (graças também ao Firebird Embedded). E olha que o projeto tem até algumas frescuras, como gráficos, etc.

Fiz questão de criar algo simples, apenas com o essencial: três cadastros (gastos, fornecedores e estágios). Ou seja, qualquer “babão” consegue usar. Algumas facilidades também estão presentes, como clicar no título de uma coluna para ordená-la de forma ascendente ou descendente, filtragem de registros, busca rápida, etc.

Tenho dúvidas se com alguma outra IDE/linguagem, eu conseguiria fazer a mesma coisa em tão pouco tempo.

Pretendo colocar essa aplicação para download daqui alguns dias, caso tenha algum interessado.

O nome da aplicação eu ainda não sei, mas tô pensando em chama-la de “TôFerrado”, afinal, o preço das barras de ferro está pela hora da morte! 🙁

1 2