Xp Security and VB6 Applications

  • Thread starter Thread starter Carl
  • Start date Start date
C

Carl

I'm trying to install a Vb6 application on an Xp Pro laptop and I'm getting
an error concerning the file sysinfo.ocx, which the app is trying to copy to
windows\system32 folder. If I manually copy sysinfo.ocx to the system32
folder, the install program works fine. Does anybody have any idea what
this is? It seems to be a security problem. The system had the latest
McAfee Viruscan on it as well..
 
Hi Carl,

What is the exact error message? Are you working within and admin account?

--
Best of Luck,

Rick Rogers, aka "Nutcase" - Microsoft MVP

Associate Expert - WindowsXP Expert Zone

Windows help - www.rickrogers.org
 
As sysinfo.ocx is a control for getting computer system information so
it's hapenning.

regards,
ssg MS-MVP
 
Carl said:
I'm trying to install a Vb6 application on an Xp Pro laptop and I'm
getting an error concerning the file sysinfo.ocx, which the app is
trying to copy to windows\system32 folder. If I manually copy
sysinfo.ocx to the system32 folder, the install program works fine.
Does anybody have any idea what this is?

See if this problem occurs when installing as administrator. If this
is the case, the program's setup routine might be buggy.
It seems to be a security problem. The system had the latest McAfee
Viruscan on it as well..

Disable the anti-virus and try again in order to find out.
 
Carl said:
I'm trying to install a Vb6 application on an Xp Pro laptop and I'm
getting an error concerning the file sysinfo.ocx, which the app is
trying to copy to windows\system32 folder. If I manually copy
sysinfo.ocx to the system32 folder, the install program works fine.

Addendum: Copying that file isn't enough. That particular file has to
be registered. Since the setup routine doesn't work, you should register
that file manually.

Start > Run: REGSVR32 C:\Windows\System32\sysinfo.ocx (adapt path)
 
I don't have the exact error message since I'm home and I don't have Xp, but
the message read, if I can paraphrase, "Component Sysinfo.ocx or one of it's
dependencies has failed to register or a file is missing". All the files
are there and as I mentioned, if you manually copy sysinfo.ocx, everything
is ok and the app installs and runs fine. "Rock" has a good idea to
manually register sysinfo. I'm going to see if I can get that done. Thanks
for your help. If you think of anything else, please let me know. -Carl
 
This sounds like the problem. The error message read "Component sysinfo.ocx
or one of it's dependencies failed to register or a file is missing". I'm
going to see if I get get this done. Thanks for your help. If you think of
anything else, please let me know. -Carl
 
Carl said:
This sounds like the problem. The error message read "Component
sysinfo.ocx or one of it's dependencies failed to register or a file
is missing". I'm going to see if I get get this done.

Again, make sure that you have administrator privileges. If that error
still occurs, check with the "Dependency Walker" what module is causing
this problem. www.dependencywalker.com
Thanks for your help.

You're certainly welcome.
 
I'm not sure what the "Dependency Walker" is but I'm pretty sure the the
problem is sysinfo.ocx simply because if I manually put sysinfo.ocx where
the install program is trying to copy it, the problem is solved. Tanks for
your help. -Carl
 
I am trying to install as administrator, and I tried disabling the Virus
protection. No help. It still gave the error message. It seems to be a
problem registering the file in the registry because a manual copy solves
the problem. This is on a laptop and it was mentioned that security is more
stringent on laptops. -Carl
 
Carl said:
I'm not sure what the "Dependency Walker" is but I'm pretty sure the
the problem is sysinfo.ocx simply because if I manually put
sysinfo.ocx where the install program is trying to copy it, the
problem is solved.

Did you follow the instructions and have you tried to register the file
"sysinfo.ocx" manually? It doesn't make any sense to reply to my posts
before you haven't done this already. What result (message)?
 
I don't have the computer here so I can't try it. I have a work around,
which is copying the file manually. Your suggestion of registering the file
manually may work, but that is also a "work around" I can't tell my client
to do a workaround without knowing why it happened. The problem to me seems
to be a security issue with Xp. There must be a way that the administrator
can overcome this problem properly, without a work around. That's what I'm
lookin for. The reason for this. I can get it to work. I have to know
why. -Carl
 
I found the answer and I'd like to share it with all of you and to "Detlev
Dreyer" thank you and you were right. After your last message I got on the
phone to a friend and we generated the error on his laptop running Xp pro.
The problem turned out to be more than just windows Xp and not a
security problem as I first thought. When I tried to manually register
sysinfo.ocx;
Start > Run: REGSVR32 C:\Windows\System32\sysinfo.ocx
I received a file not found error. As it turned out, this error was
generated because I was trying to register a file that wasn't present. Copy
sysinfo.ocx to the windows system32 folder and I could manually register and
the program would install.
With this in mind I looked a one of the install programs generated by
the Vb6 Package and Deployment Wizard named setup.lst. This file is a text
file that supplies the filenames, install locations, and registration
information for the install program setup.exe. In setup.lst there are to
groups of data with this information, one labeled [Bootstrap Files] and one
labeled [Setup1 Files]. In the [Bootstrap Files] section, comcat.dll was
listed but not sysinfo.ocx. Sysinfo.ocx wasn't list until the second set of
files labeled [Setup1 Files]. Comcat.dll is file that sysinfo.ocx is
dependent on. The fix I can except is to simple move the file reference to
sysinfo.ocx from the [Setup1 Files] section to the [Bootstrap Files]
section. This solves the problem.
I suspect that the problem was that comcat.dll was trying to be copied
and registered before the file dependant on it. Strange one. Once we
understood the problem, I was able to generate the error on a win98 system
simply by deleting sysinfo.ocx from my system folder.
This is a difficult problem for a developed to see and troubleshoot
because installing vb6 0n your machine installs sysinfo.ocx. You won't see
the problem. Thanks to everyone for there help. -Carl
 
I found the answer and I'd like to share it with all of you and to "Detlev
Dreyer" thank you and you were right. After your last message I got on the
phone to a friend and we generated the error on his laptop running Xp pro.
The problem turned out to be more than just windows Xp and not a
security problem as I first thought. When I tried to manually register
sysinfo.ocx;
Start > Run: REGSVR32 C:\Windows\System32\sysinfo.ocx
I received a file not found error. As it turned out, this error was
generated because I was trying to register a file that wasn't present. Copy
sysinfo.ocx to the windows system32 folder and I could manually register and
the program would install.
With this in mind I looked a one of the install programs generated by
the Vb6 Package and Deployment Wizard named setup.lst. This file is a text
file that supplies the filenames, install locations, and registration
information for the install program setup.exe. In setup.lst there are to
groups of data with this information, one labeled [Bootstrap Files] and one
labeled [Setup1 Files]. In the [Bootstrap Files] section, comcat.dll was
listed but not sysinfo.ocx. Sysinfo.ocx wasn't list until the second set of
files labeled [Setup1 Files]. Comcat.dll is file that sysinfo.ocx is
dependent on. The fix I can except is to simple move the file reference to
sysinfo.ocx from the [Setup1 Files] section to the [Bootstrap Files]
section. This solves the problem.
I suspect that the problem was that comcat.dll was trying to be copied
and registered before the file dependant on it. Strange one. Once we
understood the problem, I was able to generate the error on a win98 system
simply by deleting sysinfo.ocx from my system folder.
This is a difficult problem for a developed to see and troubleshoot
because installing vb6 0n your machine installs sysinfo.ocx. You won't see
the problem. Thanks to everyone for there help. -Carl

I don't think that is your problem

[Bootstrap Files] are installed by Setup.exe which is a 'C' program

[Setup1 Files] are installed by Setup1.exe which is a VB program
- you have the source for Setup1.exe

There is a bug in Setup1.exe
- something to do with version numbers and dates

My guess is that you have been messing with the source of Setup1.exe
and are using (or trying to use) something in Sysinfo.ocx

In which case your fix of tinkering with Setup.lst would work
- but for the wrong reason
I might be wrong ... but it is worth checking
 
I have confirmed that the "workaround" works. I did examine setup1.exe, but
I did not change it. The change is made to setup.lst and the changes are
made in a text editor.
I can now generate the problem on my main machine here at home running
win98. Simply delete sysinfo.ocx from your windows system folder and try to
install a vb6 application that uses sysinfo.ocx. (sysinfo.ocx provides
system data to vb6 programs. For example, if you need to read the time or
date from the users computer, sysinfo.ocx would be the interface between
your program and windows and would therefore need to loaded when your ap was
installed). Deleting sysinfo.ocx simply causes the error because
comcat.dll(a file sysinfo.ocx is dependant on) is trying the be registered
and sysinfo.ocx has not been installed.
Our "workaround" involves moving the call for sysinfo.ocx in the setup
routine (which is determined by the text file setup.lst) from the section
labeled [Setup1 Files] in setup1.lst which as you say is copied with a vb6
program, to the [Bootstrap Files] section where comcat.dll is installed.
The [Bootstrap Files] section may be installed with a c program, but what I
do is simply add one file to the list being installed with the c routine and
remove the same file from the section be installed by a vb6 program. I'm
not at all changing the programs installing the application.
One thing I haven't mentioned is that in setup1.lst, the [Bootstrap
Files] and [Setup1 Files] sections contain a list on variable declarations,
eg,

File8 =
@sysinfo.ocx,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/24/98$(DLLSelfRegi
ster),$(Shared),6/24/98 12:00:00 AM,67376,6.0

In our fix, when file are added or removed from one section to another, we
change the numbering scheme in the new lists, making sure it is contiguous,
numbering one through the last file in sequence.
I have confirmed that this fix works but it is not the ideal solution.
The ideal solution would be to modify the program that creates the
setup1.lst file, which I don't believe is setup1.exe but the vb6 Package and
Deployment Wizard, and I don't have the source code to examine. The problem
as I see it now is that comcat.dll was trying to be registered and since it
is a dependant file of sysinfo.ocx, windows looked for sysinfo.ocx, couldn't
find it, and generated the error.
Although this is not the ideal solution, it is an acceptable solution to
me since my customers will not have to deal with it. I can make the changes
on my end and they'll never see it, hopefully.
Again thanks to everyone for your help. -Carl.


J French said:
I found the answer and I'd like to share it with all of you and to "Detlev
Dreyer" thank you and you were right. After your last message I got on the
phone to a friend and we generated the error on his laptop running Xp pro.
The problem turned out to be more than just windows Xp and not a
security problem as I first thought. When I tried to manually register
sysinfo.ocx;
Start > Run: REGSVR32 C:\Windows\System32\sysinfo.ocx
I received a file not found error. As it turned out, this error was
generated because I was trying to register a file that wasn't present. Copy
sysinfo.ocx to the windows system32 folder and I could manually register and
the program would install.
With this in mind I looked a one of the install programs generated by
the Vb6 Package and Deployment Wizard named setup.lst. This file is a text
file that supplies the filenames, install locations, and registration
information for the install program setup.exe. In setup.lst there are to
groups of data with this information, one labeled [Bootstrap Files] and one
labeled [Setup1 Files]. In the [Bootstrap Files] section, comcat.dll was
listed but not sysinfo.ocx. Sysinfo.ocx wasn't list until the second set of
files labeled [Setup1 Files]. Comcat.dll is file that sysinfo.ocx is
dependent on. The fix I can except is to simple move the file reference to
sysinfo.ocx from the [Setup1 Files] section to the [Bootstrap Files]
section. This solves the problem.
I suspect that the problem was that comcat.dll was trying to be copied
and registered before the file dependant on it. Strange one. Once we
understood the problem, I was able to generate the error on a win98 system
simply by deleting sysinfo.ocx from my system folder.
This is a difficult problem for a developed to see and troubleshoot
because installing vb6 0n your machine installs sysinfo.ocx. You won't see
the problem. Thanks to everyone for there help. -Carl

I don't think that is your problem

[Bootstrap Files] are installed by Setup.exe which is a 'C' program

[Setup1 Files] are installed by Setup1.exe which is a VB program
- you have the source for Setup1.exe

There is a bug in Setup1.exe
- something to do with version numbers and dates

My guess is that you have been messing with the source of Setup1.exe
and are using (or trying to use) something in Sysinfo.ocx

In which case your fix of tinkering with Setup.lst would work
- but for the wrong reason
I might be wrong ... but it is worth checking
 
I'm not sure if I made it clear why I think the "workaround" works!
I think the error was generated because comcat.dll was be installed and
registered in the [Bootstrap Files] section. When the setup program tryed
to register it, it look for the file dependant on it, sysinfo.ocx, couldn't
find it because it isn't installed until later, and windows then generated
the error. The fix installs both sysinfo.ocx and comcat.dll in the both
section. As a result, when comcat.dll is being registered, sysinfo.ocx is
now installed, and the error is avoided. -Carl


Carl said:
I have confirmed that the "workaround" works. I did examine setup1.exe, but
I did not change it. The change is made to setup.lst and the changes are
made in a text editor.
I can now generate the problem on my main machine here at home running
win98. Simply delete sysinfo.ocx from your windows system folder and try to
install a vb6 application that uses sysinfo.ocx. (sysinfo.ocx provides
system data to vb6 programs. For example, if you need to read the time or
date from the users computer, sysinfo.ocx would be the interface between
your program and windows and would therefore need to loaded when your ap was
installed). Deleting sysinfo.ocx simply causes the error because
comcat.dll(a file sysinfo.ocx is dependant on) is trying the be registered
and sysinfo.ocx has not been installed.
Our "workaround" involves moving the call for sysinfo.ocx in the setup
routine (which is determined by the text file setup.lst) from the section
labeled [Setup1 Files] in setup1.lst which as you say is copied with a vb6
program, to the [Bootstrap Files] section where comcat.dll is installed.
The [Bootstrap Files] section may be installed with a c program, but what I
do is simply add one file to the list being installed with the c routine and
remove the same file from the section be installed by a vb6 program. I'm
not at all changing the programs installing the application.
One thing I haven't mentioned is that in setup1.lst, the [Bootstrap
Files] and [Setup1 Files] sections contain a list on variable declarations,
eg,

File8 =
@sysinfo.ocx,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/24/98$(DLLSelfRegi
ster),$(Shared),6/24/98 12:00:00 AM,67376,6.0

In our fix, when file are added or removed from one section to another, we
change the numbering scheme in the new lists, making sure it is contiguous,
numbering one through the last file in sequence.
I have confirmed that this fix works but it is not the ideal solution.
The ideal solution would be to modify the program that creates the
setup1.lst file, which I don't believe is setup1.exe but the vb6 Package and
Deployment Wizard, and I don't have the source code to examine. The problem
as I see it now is that comcat.dll was trying to be registered and since it
is a dependant file of sysinfo.ocx, windows looked for sysinfo.ocx, couldn't
find it, and generated the error.
Although this is not the ideal solution, it is an acceptable solution to
me since my customers will not have to deal with it. I can make the changes
on my end and they'll never see it, hopefully.
Again thanks to everyone for your help. -Carl.


register
and
the program would install.
With this in mind I looked a one of the install programs generated by
the Vb6 Package and Deployment Wizard named setup.lst. This file is a text
file that supplies the filenames, install locations, and registration
information for the install program setup.exe. In setup.lst there are to
groups of data with this information, one labeled [Bootstrap Files]
and
one
labeled [Setup1 Files]. In the [Bootstrap Files] section, comcat.dll was
listed but not sysinfo.ocx. Sysinfo.ocx wasn't list until the second
set
of
files labeled [Setup1 Files]. Comcat.dll is file that sysinfo.ocx is
dependent on. The fix I can except is to simple move the file
reference
to
sysinfo.ocx from the [Setup1 Files] section to the [Bootstrap Files]
section. This solves the problem.
I suspect that the problem was that comcat.dll was trying to be copied
and registered before the file dependant on it. Strange one. Once we
understood the problem, I was able to generate the error on a win98 system
simply by deleting sysinfo.ocx from my system folder.
This is a difficult problem for a developed to see and troubleshoot
because installing vb6 0n your machine installs sysinfo.ocx. You won't see
the problem. Thanks to everyone for there help. -Carl

I don't think that is your problem

[Bootstrap Files] are installed by Setup.exe which is a 'C' program

[Setup1 Files] are installed by Setup1.exe which is a VB program
- you have the source for Setup1.exe

There is a bug in Setup1.exe
- something to do with version numbers and dates

My guess is that you have been messing with the source of Setup1.exe
and are using (or trying to use) something in Sysinfo.ocx

In which case your fix of tinkering with Setup.lst would work
- but for the wrong reason
I might be wrong ... but it is worth checking
 
The moral of this story is: don't use the VS package and deployment wizard.
Get InnoSetup. It's brilliant and free!
 
I have confirmed that the "workaround" works. I did examine setup1.exe, but
I did not change it. The change is made to setup.lst and the changes are
made in a text editor.

I am amazed that Comcat.dll needs SysInfo.ocx to work

It is unusual for a 'real' DLL to need an OCX

However, if you have not been messing with Setup1 (and nobody else
has) then, I guess you have found a genuine problem
 
Or, download the sdk and use the windows installer 2 or 3 or use the NET
2003 setup wizard. And of course, ORCA.
Jamie
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top