ERRO: COMPONENT COMDLG32.OCX OR ONE OF IT

GANDA.NICK 09/02/2017 12:12:00
#471496
Ola a todos..

Tenho um cliente que não consegue rodar meu programa, o erro é o seguinte:

component comdlg32.ocx or one of its dependencies not correctly registered a file missing or invalid

Os outros clientes conseguem rodar o programa....


no inno setup:
[Files]
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\VB6STKIT.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall ; CopyMode: alwaysskipifsameorolder
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\COMCAT.DLL; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver ; CopyMode: alwaysskipifsameorolder
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\stdole2.tlb; DestDir: {sys}; Flags: uninsneveruninstall sharedfile onlyifdoesntexist ; CopyMode: alwaysskipifsameorolder
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\asycfilt.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall ; CopyMode: alwaysskipifsameorolder
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\olepro32.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver ; CopyMode: alwaysskipifsameorolder
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\oleaut32.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver ; CopyMode: alwaysskipifsameorolder
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\scrrun.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver ; CopyMode: alwaysskipifsameorolder
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\msvbvm60.dll; DestDir: {sys}; Flags: restartreplace uninsneveruninstall regserver ; CopyMode: alwaysskipifsameorolder
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\MSCOMCTL.OCX; DestDir: {sys}; Flags: restartreplace regserver sharedfile ; CopyMode: alwaysskipifsameorolder
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\COMDLG32.OCX; DestDir: {sys}; Flags: restartreplace uninsneveruninstall sharedfile regtypelib
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\MSFLXGRD.OCX; DestDir: {sys}; Flags: restartreplace regserver sharedfile ; CopyMode: alwaysskipifsameorolder
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\msado20.tlb; DestDir: {sys}; Flags: ignoreversion
Source: C:\Users\User\Documents\VikSoft\Winning Poker HUD\package\pack2\Support\WPH.exe; DestDir: {app}; Flags: ; CopyMode: alwaysskipifsameorolder



Já disse ao cliente para tentar fazer o registo manual atraves do regsvr32 e também não resultou....
Disse-lhe o seguinte:
Citação:

on win64 do:
run c:\windows\system32\cmd.exe as admin
type on console:
regsvr32 c:\windows\syswow64\comdlg.ocx

on win32 do:
run c:\windows\system32\cmd.exe as admin
type on console:
regsvr32 comdlg.ocx



A resposta dele:
Citação:

Thank you for your help, I indeed re-registered the comdlg32.ocx file on Windows 7 & 10 64 bit installations, the same error keeps coming up when I try to boot your program.




Alguem sabe como posso resolver este problema..
Se eu o mandar instalar o:
Service Pack 6 for Visual Basic 6.0: Run-Time Redistribution Pack (vbrun60sp6.exe)
Será que vai funcionar?

Obrigado desde já!
MARCELO.TREZE 09/02/2017 13:54:34
#471499
desativou o uac?

GANDA.NICK 09/02/2017 18:22:01
#471508
não sei... mas rodou a linha de comandos como administrador.... não é a mesma coisa?
KERPLUNK 10/02/2017 00:57:38
#471522
Resposta escolhida
Citação:

:
não sei... mas rodou a linha de comandos como administrador.... não é a mesma coisa?


Ah, não é mesmo. O UAC(Controle de contas de usuários, em tradução livre), basicamente funciona assim: Quando você loga como administrador, você recebe dois tokens, um de administrador e um de usuário normal. Então você tem acesso à rotinas exclusivas de administrador, caso assim o queira. Rodando um command prompt como administrador, você consegue executar funcionalidades exclusivas de administrador, como registrar um componente ActiveX que é o seu caso, mas isso não quer dizer que o componente registrado ficará disponível para todos os outros usuários, incluindo o administrador. Você precisa modificar premissas de usuários para liberar o recurso para outros usuários e administradores. Isso é mais complicado do que possa parecer, mesmo para um usuário experiente. Então a melhor alternativa é desativar o controle de contas de usuários(UAC) para que todos os recursos sejam sempre vistos para qualquer usuário como se esses tivessem direitos de administrador. Mas veja bem, o UAC, é uma camada extra de proteção, ele evita que muita [Ô]porcaria[Ô] se instale sem sua permissão, por isso, desativá-lo é um risco. E esse é um bom motivo para converter sua aplicação para .NET onde esse problema não existiria, visto que o .NET framework pode ser instalado para todos os usuários desfrutarem de suas vantagens.
GANDA.NICK 10/02/2017 12:05:40
#471533
Obrigado pelos respostas!!

Citação:

E esse é um bom motivo para converter sua aplicação para .NET onde esse problema não existiria


De momento isso não será possivel...



Citação:

Então a melhor alternativa é desativar o controle de contas de usuários(UAC) para que todos os recursos sejam sempre vistos para qualquer usuário como se esses tivessem direitos de administrador.


Então será essa a solução??


Caso mesmo assim não funcione (com o UAC desativado), mandar instalar o Service Pack 6 for Visual Basic 6.0: Run-Time Redistribution Pack (vbrun60sp6.exe) resolve o problema?

Obrigado!
KERPLUNK 10/02/2017 18:56:42
#471555
Não tem como saber com certeza se resolverá o problema, mas não custa tentar. Mas insisto. No tempo que você está perdendo tentando resolver um problema que não deveria existir, você com certeza já teria encaminhado uma boa parte do projeto em .NET
Tópico encerrado , respostas não são mais permitidas