-->

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 :)

[16/07/08] O Tweak UI faz isso, mas não é tão prático quanto o meu programa.

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.