Domingo, 6 de Julho de 2008

Testando o primeiro beta público do SMF 2.0

Quem acompanha este blog bem de perto sabe que meu fórum está fechado para novos usuários há meses e que eu pretendo que continue assim pelo menos até o lançamento da versão 2.0 do SMF (o software que controla o fórum).

Há algumas semanas saiu o primeiro beta público e já instalei em um de meus fóruns de testes para conferir se realmente vai funcionar do jeito que eu espero. Aparentemente, sim.

Moderação prévia

Existe um novo grupo de permissões no fórum que estabelece que cada coisa que o usuário faz relacionada com postagens requeira aprovação de um moderador. Estas permissões podem ser adicionadas a qualquer grupo de usuários, por isso eu adicionei ao grupo "regular members" de modo que todo usuário novo esteja sujeito automaticamente a uma moderação prévia. Cada postagem de um usuário moderado aparece no tópico apenas para ele mesmo e para os moderadores e só vai aparecer para os demais usuários depois de aprovada. Antes da aprovação, tanto o autor quanto os moderadores podem editar a mensagem.

Depois que eu sentir que dá para confiar no usuário (isso pode requerer apenas uma mensagem 100% dentro das regras), o usuário pode subir para o grupo "unmoderated members" (criado por mim) que pode postar sem precisar de aprovação. Mas basta pisar na jaca uma vez para cair para o grupo moderado e ficar lá por um looongo tempo, ou mesmo ser banido, dependendo do tamanho da jaca.

Outra vantagem da moderação prévia do SMF 2.0 é que posso aplicá-la também a Guests. Hoje, para postar qualquer coisa no meu fórum é preciso se registrar. Mas com a possibilidade de moderar Guests eu pretendo abrir a postagem para todos, porém com uma regra extra: "apenas para quem quer contribuir com o fórum". Ou seja: postagens feitas por Guests com pedidos ou perguntas jamais aparecerão no fórum a não ser que acrescentem algo novo e interessante ao tópico. A intenção de liberar postagens para Guests é permitir, assim como acontece neste blog, que anônimos que estão simplesmente de passagem por aqui possam contribuir com uma solução nova para um problema.

Suporte a OpenID

Para quem não está familiarizado, OpenID é uma idéia semelhante ao "passaporte" do MSN, mas com suporte bem mais amplo. A idéia é poder se registrar em vários sites diferentes sem precisar realmente "se registrar" em cada um deles. Com um único OpenID você pode ter várias "personalidades" e escolher que personalidade vai apresentar a cada site que suporte OpenID.

A nova versão do SMF permite que você se registre apenas com seu OpenID, mas ainda não está funcionando direito (sempre diz que "The signature from the identity provider is invalid"),

Backup de chaves específicas do registro, em batch.

Eu não sei se isso resolve o problema que Silvinho disse ter no meu post anterior sobre o Registro, mas pode ser útil para outras pessoas.

Desde o Windows 3.1 regedit.exe aceita alguns parâmetros por linha de comando, mas isso só passou a ser realmente útil a partir do Windows 95. Eu falei sobre os parâmetros em 1999 (putz, faz tempo...) e até a última versão do Win9x você ainda conseguia manipular o registro pelo DOS puro.

O que vou explicar aqui só funciona no Windows XP, mas também pode ser feito no Windows 9x mudando-se algumas coisas.

O regedit.exe do Windows XP ainda aceita os parâmetros, mas fica parecendo que não, porque ele não aceita mais o parâmetro "/?" para exibir as opções disponíveis. Eu imagino que isso seja para manter compatibilidade com aplicações antigas mas não incentivar seu uso, porque no Windows XP o jeito oficial de manipular o Registro pela linha de comando é pelo programa REG.EXE.

Se você precisa gravar por script uma determinada chave do Registro em arquivo, basta usar o seguinte comando:

REG EXPORT [nome do arquivo] [caminho da chave]

Nota: REG.EXE suporta os "apelidos" padrão para as chaves do registro, que vou usar aqui para encurtar as linhas, mas você pode usar o caminho expandido.

Digamos que você queira ter um backup dessas duas chaves:

HKEY_CLASSES_ROOT\*\shellex
HKEY_LOCAL_MACHINE\System\Altiris


Basta um arquivo .bat assim:

del *.reg
REG EXPORT "HKCR\*\shellex" shellex.reg
REG EXPORT "HKLM\System\Altiris" altiris.reg
no exemplo acima, os arquivos serão criados na pasta corrente, mas você pode forçar a criação numa pasta específica:
del c:\backup\*.reg
REG EXPORT "HKCR\*\shellex" c:\backup\shellex.reg
REG EXPORT "HKLM\System\Altiris" c:\backup\altiris.reg

Lembre-se: Se houver espaços nos caminhos o uso de aspas é imprescindível

No fim do batch você pode concatenar todos os backups em um único arquivo backup.reg:

copy shellex.reg+altiris.reg backup.reg


Exemplo completo de backup (backup.bat):

del *.reg
REG EXPORT "HKCR\*\shellex" shellex.reg
REG EXPORT "HKLM\System\Altiris" altiris.reg
copy shellex.reg+altiris.reg backup.reg


Como restaurar

Restaurar a partir dos backups é simples na maioria dos casos, mas nem sempre. Se sua intenção é copiar os dados de um computador para outro, ou se precisa restaurar valores que podem ter sido modificados, basta clicar duas vezes no arquivo backup.reg.

Ou por script: regedit backup.reg

Mas existem problemas:

1) Dependendo da chave, você pode se deparar com uma mensagem do tipo:
Não é possível importar c:\backup.reg: nem todos os dados foram gravados com êxito no Registro. Algumas chaves estão abertas pelo sistema ou outros processos.
Para gravar nessas chaves, o jeito mais simples e garantido é fazê-lo pelo Modo de Segurança.

2)Por default a importação feita só adiciona ou modifica conteúdo. Nada é excluído. Isso é bom na maioria dos casos, mas se por exemplo você quiser se livrar de entradas maliciosas na chave RUN, uma importação simples não vai mudar nada

Para se certificar que valores alienígenas sejam excluídos, você deve apagar a chave inteira antes da importação.
REG DELETE "HKCR\*\shellex" /f

O "/f" (de "force") força a exclusão sem fazer perguntas. Óbviamente é bom ter certeza de estar fazendo isso na chave certa


E para importar:
REG IMPORT backup.reg

Exemplo completo (restore.bat):
REG DELETE "HKCR\*\shellex" /f
REG DELETE "HKLM\System\Altiris" /f
REG IMPORT backup.reg

Manipulando erros

Você está se metendo com o Registro e não vai querer que erros passem despercebidos. É aconselhável que você pelo menos termine cada batch com um comando pause para examinar se tudo correu bem. Mas como REG.EXE suporta errorlevel, você pode criar uma manipulação de erros mais elaborada, se achar que vale o trabalho.

Sábado, 5 de Julho de 2008

Cuidado: a fonte do D-Link DI-524 mudou!

Se você está acostumado com o fato da fonte do roteador wireless DI-524 ser de 7.5V x 1.5A (11,25W) se ligue: Os aparelhos novos estão vindo com uma fonte de 5V x 1.2A (6W).

Eu notei isso hoje. Ao instalar o roteador recém-comprado por uma cliente na Nagem de Recife eu estranhei a fonte, que tinha metade do tamanho da fonte que eu conhecia. Olhei no aparelho e na fonte e os dois tinham a nova especificação gravada.

Por um lado, isso é bom, porque o roteador consome agora metade do que os antigos consomem, o que dá uma redução de uns R$2 por mês na conta de energia para uma operação 24H. Por outro, é estranho, pois de onde vem a redução do consumo? Redução da potência de irradiação (que já não impressionava) ou completa mudança do projeto interno?

E por que o mesmo modelo? Só a troca da fonte para mim já justificaria a designação mudar para DI-524A, ou algo assim.

Quinta-feira, 3 de Julho de 2008

Como abrir regedit.exe em uma chave específica

Se você é um power user (a maior parte dos leitores deste blog é) deve usar muito regedit.exe para inspecionar ou fazer alterações no Registro do Windows e por esse motivo já deve ter sentido falta de um jeito de fazer o Editor do Registro se lembrar das chaves que você consulta mais. Ou mesmo de um jeito de entrar com uma chave através de copiar e colar.

Regedit.exe apenas se lembra da última chave visitada. Se você precisa consultar uma chave qualquer, precisa ir clicando até ela, o que é no mínimo maçante.

Por exemplo, tente ir até a seguinte chave (que nem é das mais difíceis):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

Outro dia falarei sobre a possibilidade de ter "favoritos" no Regedit. Hoje vou apenas mostrar o método mais simples que encontrei para abrir o Regedit direto em uma chave específica através de copiar e colar.

A dica foi dada nesta página do Experts Exchange:

Com a ajuda do Notepad, salve em um arquivo com extensão ".vbs" (digamos: regedit.vbs) o seguinte texto:


Set WshShell = CreateObject("WScript.Shell")
Dim MyKey
MyKey = Inputbox("Digite ou cole o caminho")
MyKey = "My Computer\" & MyKey
WshShell.RegWrite "HKCU\Software\Microsoft\W
indows\CurrentVersion\Applets\Regedit\Lastkey",MyKey,"REG_SZ"
WshShell.Run "regedit", 1,True
Set WshShell = Nothing


Quando você clicar duas vezes nesse script uma caixa de diálogo irá aparecer pedindo o caminho. Basta colar e dar OK que o regedit será aberto na chave indicada. É importante que o regedit esteja fechado antes de você rodar o script, ou isso não funcionará.

Coloque um atalho para o script onde achar mais conveniente.

ATENÇÃO: Se você executar o arquivo e ele abrir no Bloco de Notas em vez de exibir a caixa de diálogo, você não é o tipo de usuário que deveria estar lendo essas instruções ;)

Como funciona:

Ao fechar, regedit.exe sempre grava o caminho para a chave aberta em

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit\Lastkey

e consulta o conteúdo dessa chave ao iniciar para determinar que chave abrir automaticamente. O que o script faz é gravar em "lastkey" o caminho fornecido por você antes de chamar regedit.exe.

Quarta-feira, 2 de Julho de 2008

O golpe Embratel - Livre

Esse tipo de golpe não é nenhuma novidade. Estou apenas fazendo o meu registro aqui, porque às vezes parece que essas coisas só acontecem bem longe de nós.

Eu estava do lado de uma de minhas clientes em sua empresa quando esta recebeu um telefonema na sua linha Embratel Livre (ex-Vesper). A pessoa que ligou disse ser da Embratel e que havia sido identificada uma clonagem da linha e várias ligações internacionais tinham sido feitas pelo clone mas que o golpe havia sido identificado pela Embratel e que eles estavam ligando apenas para confirmar umas informações pessoais.

Minha cliente, já ciente de que essas coisas são suspeitas, pediu um telefone para que ela pudesse ligar de volta. O individuo forneceu um número.

Ela desligou e veio pedir minha opinião. De cara eu achei que havia algo estranho com o número fornecido, que tinha o formato 014 21 xxxx yyyy. O número não se parecia em nada nem mesmo com um número comercial e muito menos com um número de uma empresa de telefonia, que geralmente são bem distintivos. Eu sugeri à minha cliente que em vez de ligar para o número fornecido ligasse para o número da Embratel que constava em seu contrato.

Enquanto ela procurava o número, chegou outra ligação (não se passaram nem cinco minutos), desta vez à cobrar e de um número sigiloso. Muito estranho, mas o filho da cliente atendeu porque às vezes os funcionários ligam dessa forma. A pessoa do outro lado, óbviamente um estranho, foi logo afirmando que eles não iam pagar pela ligação porque o telefone era um Livre.

O filho da cliente, que não é nada bobo para essas coisas, desligou.

Enquanto minha cliente ligava para a Embratel eu verifiquei pelo Google que '014' é o número de operadora da Telefónica. Ora... um funcionario de uma operadora de telefonia jamais sugeriria que você ligasse para eles usando uma operadora concorrente. O número fornecido para ser minimamente verossímil precisaria começar com '21 21' (operadora Embratel + DDD do Rio de Janeiro).

E minha cliente confirmou já na primeira ligação que o número não era da Embratel. Mas ela só ficou tranquila após a terceira pessoa confirmar que não havia nada de errado registrado em sua linha.

E se o golpista tivesse fornecido um número mais digno de confiança?

Na dúvida, tenha em mente o seguinte:

Sempre ligue para a operadora pelo número que você conhece. Não dê qualquer informação (ou qualquer confiança) para alguém que ligou para você. Na eventualidade de que a ligação tenha sido legítima, você sempre poderá alegar mais tarde que ela foi feita de modo que não podia ser diferenciada de um golpe.

Em caso de clonagem a operadora não tem como diferenciar o telefone legítimo do clone e ligando para o cliente poderia estar ligando para o golpista. O único "modus operandi" que faz sentido para a operadora é bloquear inteiramente a linha e esperar que o cliente ligue reclamando para só então deixá-lo ciente da situação. Depois enviar para o endereço cadastrado do cliente um novo telefone com um novo SN/IMEI, pois o telefone clonado não pode mais ser reativado a não ser que seu SN/IMEI seja mudado.

Ligou a fonte de 110V em 220V? Não jogue fora ainda.

Para esta dica você precisa no mínimo de um multímetro, desses que são vendidos por R$15 por aí e de um mínimo de familiaridade com eletricidade e segurança ao lidar com ela.

Esta dica vale apenas para fontes lineares (não-chaveadas, o que exclui de cara as fontes de computador) e para dispositivos simples como torradeiras, ventiladores, liquidificadores, etc.

Se a sua fonte é linear com entrada de 110V, foi ligada em 220V e pifou, ainda existe uma pequena chance de que possa ser consertada por você mesmo.

O exemplo abaixo é uma fonte de 7.5V x 1500mA, modelo AM-0751500D da D-Link, que veio com um roteador DI-524. Foi preciso usar uma serra para abrir a caixa porque estava fechada com cola. Com a caixa fechada o diagnóstico de "queimada" já era indiscutível, porque medindo com um multímetro os terminais de entrada dava circuito aberto.



A propósito, como distinguir uma fonte linear de uma chaveada sem precisar abrir? O peso! A fonte acima pesa quase meio quilo. Uma fonte chaveada de mesma capacidade (JENTEC JTA0302PG) pesa uns 150 gramas.

O primeiro sinal de que a fonte pode ser consertada: Entre os terminais 1 e 2 o circuito está aberto, mas entre 2 e 3 existe uma resistência típica de primário de transformador. Note o pequeno volume na bobina, como se houvesse algo escondido.



Cortando cuidadosamente dá para ver do que se trata:






Isto é um "Thermal Cutoff" (dá para traduzir como "fusível térmico"). O objetivo dele é proteger o circuito contra incêndio, abrindo permanentemente o circuito caso a temperatura passe de um determinado valor. No caso, 115 graus centígrados.


Este é um Thermal Cutoff modelo A2-F, da AUPO.

Como resultado da ação dessa proteção, o aparelho nem sempre está inutilizado e às vezes pode ser consertado facilmente. Em geral você tem duas opções:
  • Substituir o fusível por outro equivalente, pelo menos da mesma temperatura nominal;
  • Curto-circuitar os terminais do fusível soldando um fio entre eles. Neste caso, da próxima vez que você cometer o erro de ligar a mesma fonte em 220V não vai haver nada para protegê-la.
Infelizmente, dada a carência do nosso comércio e o tempo/custo de conseguir pelo correio um fusível desses, muitas vezes optamos pelo segundo caminho.

Se você tiver sorte, a fonte estará consertada. Se não tiver, vai queimar de vez ao ser ligada, porque antes do fusível abrir o aquecimento danificou irremediávelmente o verniz que isola o enrolamento. Se você tiver ferramentas (teste lâmpada-série, amperímetro, termômetro, etc) pode perceber que não tem mais jeito antes da fumaça começar a sair. Do contrário, conecte a saída da fonte ao multímetro na escala de voltagem adequada, ligue a fonte em uma tomada protegida por fusível e interruptor (um filtro de linha, por exemplo) e fique de olhos e nariz de prontidão. Se subir um "cheirinho de ampere", desligue e condene.

De uma forma ou de outra jamais ligue a fonte no aparelho que ela alimentava antes de comprovar que está OK. Tenha em mente que é normal uma fonte linear apresentar em sua saída uma tensão um pouco mais alta que a nominal, quando está ligada apenas ao multímetro (não há carga).

A propósito, a fonte do exemplo acima não pôde ser consertada por esse método e tive que mandar re-enrolar. Aqui em Recife me cobraram R$25 para refazer o enrolamento já convertendo o primário para 220V, com garantia de seis meses. Mas já consegui recolocar em operação por este método vários carregadores de baterias da RAYOVAC.

O genial Direct Folders

Analisando os outros programas do desenvolvedor do Teracopy eu não me interessei por nenhum deles baseado apenas no que li em suas descrições, mas uma série de elogios interessantes que li no blog do desenvolvedor despertaram minha curiosidade pelo Direct Folders.

E acabei descobrindo que era justamente algo que eu esperava há muito tempo.

1) Imagine essa situação, que deve ser familiar para a boa parte dos meus leitores: Você está manipulando um DVD-Video qualquer no HDD (depois da gravação, authoring, RIP, edição, transcoding, o que seja...) , está com o Windows Explorer aberto na pasta onde está o filme e quer abrir o resultado em algum programa, como o PowerDVD. Isso em geral requer dois passos: executar o programa através dos menus e depois usar o mecanismo OPEN do programa para achar os arquivos que você quer abrir. O fato de que você estava agorinha na pasta onde está o filme não ajuda em nada você a achá-lo, usando os mecanismos padrão do Windows. Não adianta apontar para a janela do Explorer ao lado e dizer ao programa: "está aqui, ó!".

Nota: Eu não estou falando de abrir os VOBs, porque basta clicar duas vezes neles. Para executar um DVD-Video como se deve (menus, etc), pelo menos no PowerDVD 5, você precisa usar o comando "Open DVD file on hard disk drive" do programa.

Usando o DF: Ao abrir uma caixa de diálogo para escolha de arquivos, basta clicar duas vezes com o botão esquerdo em um espaço vazio dela para abrir o menu do Direct Folders. Por ele você tem acesso a todas as pastas por onde você andou recentemente com o Explorer e até uma lista de pastas favoritas criadas por você. Clique em um item e a caixa de diálogo vai até aquela pasta;


2) Ou imagine que você gosta de usar o Explorer no modo "detalhe", mas o programa nunca lembra disso e sempre abre suas caixas Open e Save no modo lista (ex: Notepad, MtkTool, etc, etc...) ? Nota: Isso não é exatamente culpa do programador, pois muitos ambientes de programação não oferecem um método simples de se determinar essas características.

Usando o DF: Pelo menu Configure... você pode definir um tipo de exibição global e também individual a ser forçado para cada aplicação. O DF simplesmente monitora o programa e quando este abre uma caixa de diálogo o DF envia uma mensagem padrão do Windows para definir o modo de exibição;

3) O programa insiste em ter uma pasta default e nunca lembrar a última pasta usada (vmware server 1.04)?

Usando o DF: Para cada programa, você pode definir facilmente uma pasta fixa ou que os diálogos sempre abram na última pasta usada pelo programa. Assim aquelas aplicações que sempre abrem o comando "open" onde você não quer podem ser "domadas".


O Direct Folders tem diversas outras facilidades. Só mesmo usando para entender.


Problemas até agora:

  • Não funciona muito bem se você estiver usando múltiplos monitores. O recurso de auto-ajuste do tamanho das caixas de diálogo pode fazer a caixa abrir em um monitor diferente de onde está o programa. Eu ainda não consegui determinar por que só acontece algumas vezes.

Aperfeiçoe o Windows Explorer com o Teracopy

Seguindo a dica dada por CCRider e outros neste outro post, estou usando há alguns dias a versão 2.0 beta 3 do Teracopy. Esse programa pode se instalar como "default handler" das operações com arquivos do Windows Explorer, o que significa que ele intercepta todas as operações de arquivos como "copiar e colar" ou "arrastar e soltar", com várias vantagens. Entre elas:

  • Oferece um log completo da operação. Que pode ser filtrado para exibir apenas as falhas e salvo em arquivo;
  • Oferece filas (queues). Como o Explorer não oferece filas, se você fizer duas operações seguidas com arquivos usando as mesmas origens ou destinos, uma operação atrapalha a outra, porque o Explorer tenta fazer todas ao mesmo tempo. O Teracopy automaticamente coloca as operações em espera se uma já estiver em andamento. Mas você pode também mandar executar ao mesmo tempo, se quiser;
  • Permite pausar operações;
  • Oferece a opção de ignorar arquivos problemáticos sem ter que cancelar a operação. Isso pode inclusive ser definido antes da primeira ocorrência;
  • Toca um aviso sonoro quando operações longas são completadas;
  • Calcula automaticamente o CRC32 dos arquivos manipulados;
  • Após terminar a operação, se você clicar em "test" o CRC32 dos arquivos no destino será conferido para confirmar a perfeição da cópia. Em caso de erro o programa sinaliza de três formas: "CRC mismatch" no log (importante para o caso de você se ausentar durante o processo), uma bolinha vermelha ao lado do arquivo imperfeito na lista de arquivos e o som de erro (familiarize-se com ele) ao terminar o processo;

Infelizmente, o programa ainda está longe da perfeição, pois já encontrei os seguintes problemas:
  • *Operações incompletas deixam arquivos incompletos no destino. O Explorer os apagaria automaticamente;
  • *Operações via rede são muito mais lentas do que as feitas usando o Explorer. Por sorte, o Teracopy tem um mecanismo para desligá-lo (ativar "scroll lock"), assim nas operações em drives de rede eu posso mudar facilmente para o mecanismo padrão do Explorer;
  • *A opção de integrar o Teracopy ao menu de contexto não deve ser usada, porque bagunça o menu. Tanto várias opções padrão somem quanto alguns programas que usam o menu de contexto podem não funcionar direito, como o Winrar;
  • Algumas operações de movimentação de arquivos parecem não funcionar direito, deixando de mover arquivos ou de apagá-los na origem. Mas ainda não tenho certeza de que seja culpa do Teracopy;
  • "Skip" e "cancel" podem demorar muito a responder quando o Teracopy se depara com um arquivo problemático em um CD/DVD;
  • Tentar copiar um CD inteiro dando CTRL-C no seu label pode causar falha no Teracopy ao dar CTRL-V no destino.
* Problemas confirmados por outras pessoas no blog do desenvolvedor.

Lembre-se que todos os meus testes foram com a versão 2.0 beta 3 em um único PC e sob Windows XP. O programador parece muito competente e o programa é muito promissor. Todos esses problemas podem ser resolvidos em um versão futura.

Sábado, 28 de Junho de 2008

Como rodar O Quinto Elemento (jogo) no Windows XP

O erro ao tentar rodar O Quinto Elemento em qualquer PC rodando Windows XP:

FifthElement Error

The driver of a PowerVR card 3D card has been detected, but the hardware couldn´t be initialized.

Please remove the file 3GL.DLL from your WINDOWS and WINDOWS\SYSTEM directory and try again.


Mas não existia o menor sinal do tal arquivo 3GL.DLL em qualquer parte no computador. E nenhuma das máquinas sequer passou a 100 metros de uma placa PowerVR em sua existência.

A solução é apresentada no final desta página. Simplesmente extraia as DLLs deste ZIP no seu diretório Windows. Eu não gosto desse tipo de coisa, por isso extraí no diretório do EXE do jogo, e também funcionou.

Sexta-feira, 27 de Junho de 2008

Extraí o BIOS original do FIC Conectado

Finalmente estou com o equipamento completo para leitura e gravação de chips de BIOS do tipo "Firmware Hub" (FWH - o tipo usado no FIC). E disponibilizei o BIOS original de um dos meus aparelhos no fórum.

Antes que alguém pergunte, a única utilidade para esse firmware que eu conheço é reverter o desbloqueio, caso necessário.

A propósito, o usuário andregc comprovou que é possível colocar 512MB de RAM no FIC e explica como configurar na mesma página do fórum, logo acima do meu post.

06/07/08: O usuário andregc "surtou", assumiu ser um leecher e apagou todos os seus posts do fórum.

Terça-feira, 24 de Junho de 2008

Logon Wallpaper Changer v0.1

Uma cliente tem um notebook onde o papel de parede está configurado com uma foto do marido e filhos e me perguntou durante uma visita como se configurava o que era exibido brevemente durante o logon, que ainda exibia a logomarca da Compaq. Realmente, o Windows não tem um mecanismo próprio para se determinar esse wallpaper e não conheço nenhum programa que faça isso. Fiz uma busca, mas não encontrei nenhum programa cuja descrição desse a entender que tinha esse recurso.

Esse papel de parede é o que aparece:

  • Durante o logon inteiro se você estiver com a tela de boas vindas (welcome screen) desligada;
  • Brevemente ao dar logon se a tela de boas vindas estiver ligada (após o logo do XP e antes da mensagem "O Windows está sendo iniciado", por exemplo);
  • Teclando CTRL-ALT-DEL duas vezes na tela de boas vindas (exibe a tela de logon clássica);
  • Sob a mensagem "O Windows está sendo encerrado", se a tela de boas vindas estiver desligada;

Você pode trocar isto:



Por algo assim:



Numa pesquisa rápida eu descobri que isso é definido no Registro em :
HKEY_USERS\.DEFAULT\Control Panel\Desktop\Wallpaper
HKEY_USERS\.DEFAULT\Control Panel\Desktop\TileWallpaper
HKEY_USERS\.DEFAULT\Control Panel\Desktop\WallpaperStyle


Como eu queria dar à cliente a opção de poder mudar o papel de parede à vontade, sem depender de mim, e também como exercício de programação, eu criei um pequeno utilitário que permite a um usuário qualquer com privilégio de Administrador (quase todo mundo) fazer essa configuração:




Apesar de simples, o programa ainda tem umas limitações:
  • Apesar de exibir se um papel de parede está definido como "lado a lado" ou "esticado" e poder gravar uma nova configuração, dá muito trabalho exibir isso. Assim a imagem vai sempre aparecer ajustada ao tamanho da figura do monitor, mesmo que na verdade ela vá aparecer de outra forma;
  • Não aceita imagens JPG (apesar do que aparece na imagem acima), porque o o Windows espera um BMP. Eu poderei fazer a conversão e aceitar imagens JPG em uma versão futura.
Como o que esse programa faz é bem besta mesmo, deve existir algum freeware da área de wallpapers ou mesmo de tweaking que faça isso, de forma até melhor. Por favor, quem conhecer um se manifeste nos comentários :)

O Philips DVP3254KX/78 por dentro

O leitor Mario Kuraoka me enviou (obrigado!) fotos internas do Philips DVP3254KX/78.





Boa notícia: É um Mediatek.

Má notícia: Usa uma CPU do tipo "L", como o Eletrovision EV597 e o Proview DVP801L. Ainda não se sabe como extrair o firmware de placas baseadas nessas CPUs, porque apesar das placas terem uma porta serial os programas de extração existentes não conseguem se comunicar. E para piorar, o chip flash do Philips é soldado como no Proview, ao contrário do Eletrovision, que é soquetado.

Segunda-feira, 23 de Junho de 2008

Fonte corrompida (estilo Krypton) no Windows 98

Eu estava no meio de um trabalho de instalação e teste de jogos no Windows 98SE e já tinha instalado uma dúzia de jogos diferentes quando me deparei com um problema estranho: onde deveria haver texto, havia algo que parecia saído de um episódio de smallville:




Vendo a imagem acima eu fiquei em dúvida, mas os exemplos abaixo deixaram claro que o problema era de fontes:





A imagem acima deveria exibir isto:



Já faz muuuito tempo que o Windows 98 deixou de ser o SO principal de meus clientes, por isso eu estou prá lá de enferrujado e levei mais tempo do que levaria antigamente para notar onde estava o problema.

Eu olhei as fontes instaladas em C:\windows\fonts e apenas encontrei estas:



E eu sabia que deveria encontrar várias outras. Pelo DOS eu podia ver que elas estavam lá. O que eu não percebi de cara e poderia ter me poupado bastante tempo é que apenas as fontes true type não estavam aparecendo.

Aí eu me danei a fazer coisas que não iam surtir efeito algum:
  • Usei o TweakiUI 95 para consertar a pasta de fontes. Sem efeito;
  • Instalei o IE5.5 Sp2 pedindo explicitamente pelo pacote de fontes. Nada mudou;
  • Apaguei c:\windows\ttfcache várias vezes durante o processo;
  • Copiei a pasta FONTS de outra instalação do 98. Sem efeito;
Quando, depois de umas duas horas de experiências, eu finalmente notei que eram as fontes true type que não apareciam, a resposta veio rápido.

Seguindo as instruções da MS, bastou executar fontreg (nada parece acontecer) e entrar uma vez na pasta de fontes para o problema se consertar quase sozinho. Mais simples do que o que está nas instruções.

Problema resolvido.

Esse problema ocorreu porque eu tentei aproveitar uma instalação do Windows 98 de um outro PC, apagando o arquivo system.dat e substituindo-o por system.1st (na raiz). Isso geralmente funciona bem, desde que o IE4 não esteja instalado na máquina. Mas estava. Como apesar dos vários erros consegui instalar o hardware e os jogos foram funcionando normalmente, eu só fui associar o que fiz ao problema muito depois.

FIFA98 - Imagem embaralhada ao iniciar a partida

Nota1: Neste post eu chamo de "FIFA98" o jogo FIFA98: Road To World Cup, que é o que se convencionou chamar de "FIFA98" (ou "FIFA RTWC 98"). Não confundir com o jogo chamado "World Cup 98", que também é publicado pela EA Sports e é chamado por alguns de "FIFA World Cup 98", mas é um bicho completamente distinto.

Nota2: Este é um relato longo, que só estou transcrevendo na íntegra para embasar minha conclusão. Se não quiser ler tudo, basta saltar para o resumo no fim do post.

Cenário do problema:

  • Compaq DeskPro com 128MB de RAM;
  • Geforce 4 MX4000 64MB DDR;
  • Windows 98SE;
  • Nvidia Forceware Unified 71.84 Win9x International
O problema apareceu primeiro depois que eu havia instalado uns 10 jogos na máquina e já estava com o DirectX 7 instalado, por isso decidi fazer uma instalação limpa do 98SE (que vem com o DirectX 6.1a) e a primeira coisa que instalei foi o FIFA98. Mesmo problema.

Você consegue iniciar o jogo normalmente, fazer todas as configurações e escolhas possíveis, mas sempre ao iniciar uma partida você tem som normal e dá para ouvir perfeitamente os comentários, mas com uma imagem distorcida como esta:



A solução é apertar o botão de reset, porque não encontrei jeito de sair do jogo pelo teclado e era impossível achar a saída com o mouse.

Eu devo ter perdido pelo menos uma hora pesquisando no Google e encontrei apenas uma pessoa com esse problema e nenhuma solução. Ou eu não soube usar as palavras certas, ou esse é um problema muito raro, ou toda informação sobre esse jogo está sendo apagada da Internet (encontrei indícios disso em mais de um lugar).

Guardei a instalação com o Win98 e instalei o Windows 95OSR2.5 para testar. O jogo instalou o DirectX5 e rodou como deveria. Nesse ponto eu comprovei que o jogo funcionava com meu hardware. Restaurei a instalação do Windows 98, desinstalei o DirectX usando o DirectX Uninstaller (não tenho o link) e Instalei o DirectX 5 que vem no CD do FIFA98.

O jogo funcionou como deveria.

Reiniciei o PC para me certificar. O jogo continuou funcionando e dxdiag.exe confirmava que estava instalado o DirectX 5.

Instalei o DirectX 7.0. O problema voltou exatamente da mesma forma. E o DirectX 8.1 não mudou nada.

Instalei o GALAHs 3D Patch. Não mudou nada.

Desinstalei o DirectX 8.1 usando o DirectX Buster e reinstalei o DirectX 5.

Novamente o jogo funcionou como deveria.

Instalei o DirectX 6.0. Imediatamente ao rodar o jogo, acusava o erro:

Displaywindow - DOES NOT WORK IN THIS DISPLAY MODE
(isdisplaymodex()=1)
FILE win\window.c LINE 115

Instalei o DirectX 6.1. O problema do DirectX 6.0 foi resolvido, mas o problema original de imagem embaralhada voltou.

Reiniciei o PC e Instalei o official v.13 patch, o jogo não rodou mais acusando problemas diversos. Fui checar com o dxdiag.exe e a aceleração 3D estava "não disponível".

Instalei o Directx 7.0a e reiniciei. Testei com dxdiag.exe e a aceleração estava ativada novamente.

Tentei rodar o jogo com o atalho "FIFA RTWC 98 (nVidia)" que o patch coloca na pasta do jogo. Foi um desastre completo. o jogo até roda, mas o resultado é muito pior, porque a tela deixa de ser desenhada corretamente desde o início e ao entrar no jogo a imagem fica no "modo wireframe". Tentei com o atalho convencional e o problema original estava de volta.

Instalei a última versão do Forceware para Win98 (81.98). Reiniciei o Windows e testei. Desta vez no lugar de uma imagem psicodélica o jogo me deu uma tela completamente escura (com som normal), mas pelo menos alguma coisa mudou.

Desinstalei o jogo, apaguei sua pasta e instalei de novo. Mesma tela escura.

Como a instalação de uma versão mais nova do driver provocou uma mudança, decidi testar versões mais velhas que tenho arquivadas. As versões 30.82 (14/09/2002) e 45.23 (14/09/2003) acusaram que eu sequer tinha hardware Nvidia no PC. A versão mais velha que consegui instalar foi a Detonator 53.04 (30/12/2003).

Reiniciei e testei: O jogo rodou!

Para comprovar, apaguei essa instalação do Win98, que já estava muito bagunçada, e restaurei um backup de uma instalação limpa, apenas com o driver 71.84 instalado. Instalei o driver 53.04 por cima e testei de novo. Funcionou. Instalei então o DirectX 7.0a (a versão mais recente do DirectX que planejo instalar nesse PC) e testei de novo.

Problema resolvido.

Resumo: Nesse hardware, o FIFA98 só roda com drivers atualizados se for mantido o DirectX 5 (inviável por causa dos outros jogos). Uma versão mais recente do DirectX não funciona com versões recentes do driver.

Moral da estória (algo que já sei há mais de uma década): Nem sempre ter o sistema atualizado é a solução para os seus problemas. Muito pelo contrário.

Espero que isso seja útil para mais alguém, porque me tomou um dia inteiro, das 8 da noite de ontem até as 5 da tarde de hoje (com uma noite de sono no meio). Eu sei que certamente meu cliente vai ficar satisfeito por poder ter todos os seus jogos saudosos rodando no mesmo PC. :)

Domingo, 22 de Junho de 2008

Direct3D não disponível (not available)

Eu estava testando a viabilidade de rodar os jogos de Tomb Raider sob Windows XP (a maioria deles é para Windows 9x). Nenhum deles rodou. Não me lembro do comportamento de todos, mas Tomb Raider 4 acusava um erro genérico em tomb4.exe e apenas uma das versões me deu uma pista (acho que foi Tomb Raider Legend), acusando o erro SYS_ERROR_D3D_CREATE_DEVICE.

Cenário:

  • MSI MS-7021 com 1.5GB de RAM;
  • ATI Radeon Saphire 9550 em modo dual monitor (1280x1024 + 1280x1024);
  • Windows XP Professional SP2 sem updates;
  • DirectX 9.0c;
Rodei a ferramenta de diagnóstico do DirectX (dxdiag.exe) e ela acusou que DirectDraw e Direct3D estavam ativados, mas ao tentar rodar os testes de Direct3D, também acusou erro. Vou chamar isso de "Problema 1".

Nesse ponto eu já sabia que o problema estava na máquina e não nos jogos.

Eu tentei diversas coisas, incluindo umas bem simplórias:
  • Instalar versões mais antigas ou mais novas do Catalyst, incluindo a 8.6;
  • Instalar o driver do chipset (Via 4-In-1);
  • Desligar e religar a aceleração de hardware;
  • Desligar o monitor secundário;
  • Mudar resolução;
Houve um ponto logo no início dos testes em que a coisa descambou de vez. Tanto DirectDraw quanto Direct3D passaram a acusar "não disponível" e o desenho de janelas no Windows ficou leeento demais. Vou chamar isso de "Problema 2". Eu "reverti" o driver usando o próprio mecanismo do XP para isso e o Problema 2 foi corrigido, embora o Problema 1 persistisse. Mas com a continuação de minhas tentativas o Problema 2 voltou e o vídeo ficou "esculhambado" de vez.

Felizmente, havia uma solução:
  • Rodei o Catalyst Uninstaller - Mesmo sendo uma versão de 2005, funcionou;
  • Ao reiniciar, o XP começou redetectando minha placa de vídeo como "standard", mas achou sozinho o CD original da Saphire no drive e fez a instalação do driver correto;
Após isso, imediatamente os problemas 1 e 2 sumiram (não precisei instalar ou reinstalar nada). E agora todas as versões de Tomb Raider de 1 a 7 estão rodando sob Windows XP nesse PC.

Coisas que não fiz, em nenhum momento:
  • Mexer no setup do BIOS;
  • Tentar instalar/reinstalar/desinstalar o DirectX.

Sábado, 21 de Junho de 2008

Rodando Need For Speed 2 e FIFA 98 no Windows XP

Na verdade, esses programas não tem problemas para rodar no XP. Mas se você não estiver usando Windows XP dificilmente vai ter memória suficiente instalada para se deparar com o problema.

Se ao rodar, der a seguinte mensagem de erro:

initmem - INSUFFICIENT MEMORY TO CONTINUE
FILE win\initmem.c LINE 242

(o número depois de LINE pode variar)

Reduza a quantidade de memória no PC (eu sei que a mensagem dá a entender o oposto). O jogo não roda se a soma de memória física + memória virtual (arquivo de paginação) resultar em mais de 2.3 ou 2.4GB. Você pode reduzir o tamanho do arquivo de paginação antes de rodar o jogo.

Meus testes (apenas com o NFS2):

PC1

  • 1.5GB + 1000MB = Erro
  • 1.5GB + 900MB = OK
PC2
  • 1GB + 1400MB = Erro
  • 1GB + 1300MB = OK

Sábado, 14 de Junho de 2008

Serviço ICS desligando sozinho após 9-10 minutos

Este problema aconteceu no meu servidor ICS (Internet Connection Sharing) que roda Windows 2000 SP4. Ontem eu cheguei em casa e percebi que o servidor 2K havia reiniciado. Achei que podia ter faltado energia na minha ausência, fiz o logon (deveria estar no automático, mas faz tempo que não está) e não dei muita atenção a isso. Mas um tempo depois eu percebi que não conseguia mais navegar. Olhei o servidor e havia um estranho e constante tráfego de upload, de apenas 5KB/s. Eu não estava usando nem o uTorrent nem o eMule e não entendia de onde vinha o tráfego. Fiz um rápido teste e constatei que não vinha do meu PC. Eu cheguei a pensar em malware, mas como o servidor não é usado para nada mais que ser servidor e sou a única pessoa a ter contato com ele, descartei a hipótese. "Minha irmã deve estar usando o e-mule", foi o que eu pensei na hora, mas estranhamente não havia atividade no switch.

O meu "sentido de aranha" deveria ter dado o sinal de alerta, mas não deu. E como eu estava com outro problema pendente, deixei esse para resolver depois.

Voltando ao problema de navegação, eu já sabia que não era um problema "normal" de rede porque eu monitorava o servidor normalmente (eu uso o VNC) e até o serviço DHCP estava funcionado. Então eu executei services.msc e constatei que o serviço "Compartilhamento de Conexões com a Internet" estava parado. Achei estranho, mas reiniciei o serviço, e voltei às pesquisas que estava fazendo.

Porém não passou muito tempo e a navegação parou de novo. Fui conferir e o mesmo serviço estava parado outra vez. Reiniciei-o e após algum tempo havia parado novamente. Reiniciei o servidor e o problema persistiu.

Executei eventvwr.msc e procurei por quaisquer erros ou alertas ocorrendo no momento do desligamento do ICS. Nada.

Aí eu passei a cronometrar. O serviço estava sendo interrompido a intervalos irregulares de entre 9 e 10 minutos. Fiz uma pesquisa no Google a respeito e encontrei outras pessoas com o mesmo problema, mas nenhuma solução ou mesmo uma dica relevante.

E o tráfego de 5KB/s de upload não parava nem por um momento.

Como o Windows 2000 não tem um Msconfig.exe, usei o Autoruns para procurar por possíveis intrusos. A quantidade de informação exibida por Autoruns intimida e acaba sendo fácil deixar algo passar despercebido, além do fato de que eu considerava uma invasão ao meu servidor algo pouco provável. Por isso se não fosse por um pequeno detalhe eu talvez não tivesse notado o intruso:




A presença da variável %WINDIR% na listagem chamou minha atenção. Não é indício de vírus mas é um erro de programação incomum. Mas foi a atenção que eu precisava para notar que o arquivo svchost.exe legítimo do Windows deveria estar em System32 e não em System.

Nota: O MSCONFIG não teria mostrado esse intruso, pois não olha em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\shell

No caso, o processo estava sendo executado assim:
Explorer.exe %WINDIR%\system\svchost.exe

Matei o processo com o Process Explorer (o Gerenciador de Tarefas do Windows não me mostraria qual dos vários SVCHOST.EXE era o ilegítimo, pois não mostra o caminho) e no ato o upload de 5KB/s parou. Removi o arquivo e reiniciei o servidor. O problema sumiu. Submeti o arquivo ao Avast, que não reportou nada. Submeti o arquivo então ao Serviço VirusTotal, que acusou apenas 25% (em 13/06) de positivos, principalmente de antivirus de pouca notoriedade. Mas os 25% já não deixam qualquer dúvida.

Procurei por outros indícios da invasão no servidor e encontrei um outro arquivo de apenas 58KB e nome aleatório na raiz de C:. Submeti o arquivo ao VirusTotal e o resultado foi de 31.25%.

Pelo que pude apurar, este segundo arquivo é apenas um "downloader" e entrou primeiro no meu PC. Ele fez o download de svchost.exe e o instalou no servidor.

Horas depois do vírus ter sido removido eu percebi uma coisa estranha: Eu não conseguia acessar os compartilhamentos do servidor. Fui verificar e dois dos três compartilhamentos de rede do servidor haviam sumido. Eu até posso entender porque um malware removeria os compartilhamentos (proteger-se da "competição" seria um motivo) mas não entendo por que apenas dois deles.

Pausa para fazer um mea culpa: A raiz de C: havia sido compartilhada por mim. Eu realmente não esperava nennhuma invasão desta máquina, já que havia desligado o netbios e compartilhamentos para a placa wireless e tomado outras precauções para "esconder" o PC.

Já vi que não foi suficiente. :/

E mais: o servidor não roda nem anti-virus (teria sido inútil) nem firewall de terceiros. Um firewall extra poderia ter denunciado o intruso, mas por causa de alguns problemas de desempenho da rede que tive ao usar firewall eu deixei o servidor sem nenhum :/

Casa de ferreiro...

Mas é o primeiro problema em seis meses de operação 24H.

O desligamento do serviço ICS faz sentido. O serviço responsável pelo firewall é o mesmo do ICS e você não pode desligar um sem desligar o outro. A linha de comando para isso é "net stop sharedaccess". A intenção do malware era desligar o firewall e no meu caso isso não passa despercebido porque impede todos os outros computadores da minha rede de acessar a internet.

O engraçado é que se o malware não estivesse desligando o serviço ICS e eu estivesse usando P2P, o tráfego de 5KB/s dele teria passado despercebido, porque a banda mínima oferecida por meu provedor é de 16KB/s, chegando a mais de 80KB/s dependendo do horário. O programador foi esperto ao limitar o tráfego. Como eu não estou usando P2P eu teria eventualmente percebido o tráfego estranho por causa do meu monitoramento com o NetMeter, mas poderia levar dias.

XP reiniciando sozinho pouco após exibir a tela de logon

Essa foi a primeira vez que vi algo parecido. Após chegar à tela de Boas Vindas (Welcome Screen) esperando pelo nome e senha do usuário percebia-se uma grande atividade do HDD (até aí, normal) e após um intervalo variável de tempo a tela de Boas Vindas era apagada, o wallpaper da Compaq aparecia por alguns segundos e o Windows reiniciava sozinho, sem dar qualquer mensagem. A cliente me disse que o notebook ficava em loop aparentemente permanente, mas se você tivesse paciência eventualmente conseguia entrar no Windows. Segundo o testemunho, uma vez levou duas horas e em outra levou um dia inteiro. Estava de um jeito que ela deixou o notebook ligado (e logado) por dias com medo de não conseguir entrar de novo no Windows e atrapalhar seu trabalho, já que ela não estava conseguindo sincronizar um horário de visita comigo.

Não importava se você digitava a senha ou não, ou mesmo se apertava CTRL-ALT-DEL duas vezes para exibir a tela de logon clássica. Após um intervalo variável de tempo o Windows geralmente (mas nem sempre) reiniciava sozinho e sem explicação. Às vezes dava para achar que algo que você havia feito (ou deixado de fazer) permitira o logon, mas era apenas coincidência, porque fazendo ou não de novo, do mesmo jeito, o Windows ainda reinciava.

Só tinha um jeito de entrar nesse Windows que funcionava em todas as tentativas: o Modo de Segurança.

Depois de desativar a reinicialização automática, pude ver que havia uma mensagem de erro:

STOP: c000021a {Erro fatal do sistema}
O processo do sistema Windows Logon Process foi finalizado de forma inesperada com status de 0xc0000005 (0x00000000 0x00000000)
O sistema foi desligado

Pesquisando com a ajuda do Google encontrei várias pessoas com o mesmo problema, mas nenhuma solução clara. Então eu estudei cuidadosamente esta página da Microsoft sobre o problema e cheguei até o arquivo Drwtsn32.log, que estava com 57MB. Como eu não estava com o Large Text File Viewer à mão e o arquivo era relativamente pequeno, abri no Wordpad mesmo. Demorou, mas com alguma paciência consegui encontrar o cabeçalho do último erro (os destaques em negrito são meus):

Exceção de aplicativo:
Aplicativo: \??\C:\WINDOWS\system32\winlogon.exe (pid=756)
Data e hora: 13/6/2008 às 00:05:26.937
Número da exceção: c0000005 (violação de acesso)

*----> Informação do sistema <----* Nome do computador: R4000 Nome de usuário: SYSTEM Identificação de sessão de terminal: 0 Número de processadores: 1 Tipo de processador: x86 Family 15 Model 31 Stepping 0 Versão do Windows: 5.1 Versão atual: 2600 Service Pack: 2 Tipo atual: Uniprocessor Free Empresa registrada: Proprietário registrado: Luciana *----> Lista de tarefas <----* 0 System Process 4 System 660 smss.exe 724 csrss.exe 756 winlogon.exe 772 avgrsx.exe 848 services.exe 860 lsass.exe 1000 Ati2evxx.exe 1028 svchost.exe 1036 logonui.exe 1160 svchost.exe 1200 svchost.exe 1268 svchost.exe 1380 svchost.exe 1632 GbpSv.exe
1760 drwtsn32.exe
A visão de Winlogon.exe e Gbpsv.exe (o famigerado G-Buster Browser Defense) no mesmo log de erro, mais a descrição dos possíveis motivos do erro dada pela MS me deram um estalo. Coloquei o HDD do cliente no meu desktop, dei boot por outro HDD e apaguei a pasta C:\Arquivos de Programas\Gbplugin (os arquivos desta pasta só podem ser apagados a partir de outra instalação do Windows).

Problema resolvido. De volta ao notebook, o Windows passou a funcionar como deveria.

Menu Autoplay com itens faltando ou totalmente vazio

O cliente me chamou para resolver um problema e acabei esbarrando em outro completamente distinto da reclamação. Quando eu colocava um de meus CDs era esse o menu Autoplay que aparecia:



Quando eu colocava o meu pendrive até apareciam várias opções, mas faltavam os "handlers" default "Abrir pasta para exibir arquivos" e "Nenhuma Ação". Na imagem abaixo, as opções quando o Autoplay está OK:



Eu tentei consertar isso usando as opções do próprio Windows, mas clicando com o botão direito no drive de CDROM - Propriedades - Execução Automática - Conteúdo Misto, era isto que aparecia, sem opção para Restaurar padrões:




Quando deveria estar pelo menos assim:



Eu tentei o Autoplay Repair Wizard, da própria Microsoft, mas apesar do programa dizer que encontrava um problema e que não podia resolvê-lo, eu não estava confiante de que fosse o meu. Tentei as opções de Autoplay do X-Setup, mas nada mudou. Então eu esbarrei em um usuário de fórum dizendo que tinha resolvido seu problema com o "Autoplay Repair". pelo nome me pareceu que ele estava falando do programa da Microsoft, mas a descrição do que ele fez não batia. Então eu procurei por "Autoplay Repair" e encontrei este programa. A exigência de instalar o .NET 2.0 na máquina do cliente só não me fez desistir dele porque o testemunho do usuário batia com meu problema e eu estava sem opções.

Mas imediatamente após executar o programa pela primeira vez percebi qual era o problema do cliente:




O tal Adobe Photoshop Album Starter Edition já está na minha lista de "badware" há algum tempo por variados motivos. De cara eu pensei: é ele!. Cliquei com o botão direito sobre o item e escolhi "Erase Completeley...".

Problema resolvido (requer reiniciar o Windows).

O problema é semelhante a este outro. A simples presença de um "handler" mal comportado no Registro impede vários outros handlers relacionados de aparecerem.

Sexta-feira, 13 de Junho de 2008

Ignorando arquivos que não querem ser copiados

Uma das "características" mais irritantes do Windows Explorer, desde o Windows 95 até o Windows Vista, é sua incapacidade de prosseguir uma cópia/movimentação de arquivos depois de encontrar um erro em um dos arquivos na origem. Se você estiver copiando 13 mil arquivos e o arquivo 12950 não puder ser lido, a cópia é abortada deixando você com a tarefa de identificar manualmente os 50 arquivos que não puderam ser copiados (uma tarefa muito cansativa quando esses 13 mil arquivos estão distribuídos por centenas de pastas) e tomar uma ação adequada.

O que eu gostaria que o Windows Explorer permitisse:

  • O "skip" do arquivo problemático;
  • O log automático do caminho completo para ele, para que eu não tenha que anotar. As janelas de diálogo do Windows sequer te dão a opção de fazer um copiar-e-colar;
Eu tenho problemas freqüentes com isso. Hoje eu precisei fazer um backup do HDD de um cliente e ao copiar a pasta Documents And Settings um número incomum de arquivos de propósito não muito claro acusavam Acesso Negado. Esses arquivos não eram importantes para o propósito de minha cópia, mas o Windows não me dava a opção de ignorá-los.

Eu parei um pouco hoje para tentar identificar um programa que me desse essa opção e baseado nesta lista testei sete:
  • FreeCommander v2007.10a - Freeware. Usa o mecanismo do Windows Explorer para copiar/mover, por isso sofre dos mesmos problemas;
  • XPlorer 0.50.113 Beta - Freeware - Usa o mecanismo do Windows Explorer para copiar/mover, por isso sofre dos mesmos problemas;
  • A43 v2.52 - Freeware. Usa o mecanismo do Windows Explorer para copiar/mover, por isso sofre dos mesmos problemas;
  • XYPlorer v7.20 - Trial 30 dias. Usa o mecanismo do Windows Explorer para copiar/mover, por isso sofre dos mesmos problemas;
  • Directory Opus v9.1.0.6 - Trial 30 dias - Permite fazer o skip, mas apesar de ter um mecanismo de log não faz (pelo menos não separadamente) o log dos erros;
  • Altap Salamander v2.51 - Shareware. Permite fazer o skip, mas não faz log algum;
  • Total Commander v7.03 - Shareware. Permite fazer o skip e o log;
O famoso Total Commander, que de tempos em tempos eu tento usar mas nunca me acostumo, me causou uma nova má primeira impressão desta vez por duas razões:
  • Por default esconde todos os arquivos ocultos e de sistema. Para você enxergá-los precisa ir em Configuration - Options - Display e marcar Show hidden/system files. Eu não entendo como uma ferramenta como o Total Commander considera que seus usuários por default são do tipo que não sabe o que está fazendo;
  • Não consegui acessar a pasta que eu queria usando um caminho UNC. Eu precisei mapear a unidade (eu não uso mapeamentos em minha rede) só para poder acessá-la com o programa. Se é possível usar digitar caminhos UNC, não é intuitivo;

Mas apesar disso, o Total Commander ganhou minha atenção porque entre suas várias opções de log (em Configuration - Options - Log File) existe a opção "log skipped files". Você só precisa tomar as seguintes providências:
  • Ative o uso do Log, pois não é default;
  • Desmarque "log sucessfull operations", pois do contrário você não vai conseguir encontrar os erros no meio da enxurrada de operações bem sucedidas;
Outras considerações:
  • Infelizmente o único programa que passou nos meus requerimentos (o Total Commander) não é gratuito;
  • Todos os meus testes foram muito breves. Eventualmente um dos programas reprovado por mim pode ter a opção que eu queria mas eu não vi. Porém acho isso difícil;
  • Nenhum dos programas com engine de cópia próprio testados dá a opção de ignorar uma pasta inteira. Assim se você esbarrar em uma pasta com uma centena de arquivos que você percebe que não são importantes, ou clica em "skip" uma centena de vezes ou dá um "skip all" e não fica sabendo de que outros arquivos fora desta pasta foram ignorados (se o programa não tiver um log dos erros);
  • Nenhum dos programas testados dá o caminho completo para o arquivo problemático, se este passar de um determinado comprimento. Directory Opus foi o pior de todos nesse quesito, pois só mostra o nome do arquivo, sem o caminho;

Usando o Total Commander eu fiz uma cópia satisfatória dos arquivos do cliente, com um log adequado do que não pôde ser copiado. Mas ainda estou aberto a outras sugestões, porque não gosto da interface e do preço do Total Commander.