hey guys I have a program that says the component mswinsck.ocx cant be found or is not registering.
But the file is included in my setup,
Is there a way to fix that?
Thanks!
Printable View
hey guys I have a program that says the component mswinsck.ocx cant be found or is not registering.
But the file is included in my setup,
Is there a way to fix that?
Thanks!
What packager did you use?
Inno setup compiler
Are you able to visually verify that the file did, in fact, get installed?
Well to be honest, when the installer installs files and it shows what files are being installed I do not see the file mentioned.
But it is listed in the list of files I want the installer to install.
EX: this is my list
; (Note: Scroll to the right to see the full lines!)
Source: "C:\Documents and Settings\Owner\Desktop\Get_hardwa158533582003\Package\Support\stdole2.tlb"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regtypelib
Source: "C:\Documents and Settings\Owner\Desktop\Get_hardwa158533582003\Package\Support\msvbvm60.dll"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regserver
Source: "C:\Documents and Settings\Owner\Desktop\Get_hardwa158533582003\Package\Support\oleaut32.dll"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regserver
Source: "C:\Documents and Settings\Owner\Desktop\Get_hardwa158533582003\Package\Support\olepro32.dll"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regserver
Source: "C:\Documents and Settings\Owner\Desktop\Get_hardwa158533582003\Package\Support\asycfilt.dll"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile
Source: "C:\Documents and Settings\Owner\Desktop\Get_hardwa158533582003\Package\Support\comcat.dll"; DestDir: "{sys}"; OnlyBelowVersion: 0,6; Flags: restartreplace uninsneveruninstall sharedfile regserver
; end VB system files
Source: "C:\Documents and Settings\Owner\Desktop\MHX Antivirus FREE 3.3\MHXAntivirus33FREE.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\MHX Antivirus FREE 3.3\COMCT232.OCX"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\MHX Antivirus FREE 3.3\COMCTL32.OCX"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\MHX Antivirus FREE 3.3\MSCOMCT2.OCX"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\MHX Antivirus FREE 3.3\MSCOMCTL.OCX"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\MHX Antivirus FREE 3.3\MSWINSCK.OCX"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\MHX Antivirus FREE 3.3\RICHTX32.OCX"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Documents and Settings\Owner\Desktop\MHX Antivirus FREE 3.3\SYSINFO.OCX"; DestDir: "{app}"; Flags: ignoreversion
I just checked the installed files, and mswinsck.ocx is there in the installed directory
But how can the prog not see that?
PS: the comp i installed on is using vista.
PS2: IT works on the comp with windows XP
I just tried running the prog by running as admin and it does work then.
But is there a way to get it to automatically do that?
Just looking at your packager script gives me chills. It seems to imply that several components will install into the application directory without doing a version check. The components in question are meant to be versioned, use-counted, and shared. If your install does what's implied here you risk breaking other applications.
But ignoring that I'd have two questions:
- Does running your installer prompt for elevation (i.e. does it run elevated)?
- If your application requires elevation, why?
I guess I'm saying I don't understand your question here:
What are you trying to run as admin? The installer or the resulting installed program?Quote:
I just tried running the prog by running as admin and it does work then.
But is there a way to get it to automatically do that?
An Inno created installer package is normally sniffed by Vista and determined to be a legacy installer just like a PDW Setup package, resulting in an elevation prompt. If this isn't happening there must be a reason. Are you renaming the EXE to something other than install.exe, setup.exe, etc?
Also consider that Vista's legacy installer appcompat heuristics are globally shut off via Group Policy in some managed corporate desktop deployments... and some anti-malware kits shut it off too. Then the installing user must explicitly request elevation for legacy installers that require admin rights to work properly.
The answer of course is to update application packages to proper MSIs, though Inno fans don't care for this option. Perhaps someone can offer another work-around.
If your application must run elevated we have a different issue. Here the answer is probably to use an elevation manifest. Of course doing this tells Vista "I am a Vista-aware application" and bypasses other appcompat shims, so you really want to be sure you address other Vista issues first. Things like protected filesystem and directory locations are probably the most prominent.
Some of this is described in Categories of Legacy Applications and Tweaking Legacy Installers. Windows Vista Developer Story and other resources that Microsoft published over the past 3 years go into more detail. Most of those can be found by foraging at Windows Vista Developer Center.
I don't what elevated means, but when the installer starts on vista it asks for permission to continue.
If thats not what it means it prob does not run as elevated.
I ran the installer as admin.
I would make an msi, but does Inno setup do that? Or would I have to get something else.
I think getting the installer to check for older versions of the program and remove them would be a great idea, but again I do not know if or how Inno setup does that.
Yes your installer is being detected and elevation is being requested. So the installation should be going fine.
I don't think the Inno products make MSIs, but I don't know if they version COM components either. My guess is they call DLLSelfRegister like running regsvr32 does, but they might be more sophisticated than that. I'm not an Inno guy.
Maybe someone who uses those products will offer a suggestion.
So:
... then seems to suggest running the installed program elevated seems to work. Very strange.Quote:
I just tried running the prog by running as admin and it does work then.
But is there a way to get it to automatically do that?
You may have to look in the registry and see how MSWINSCK.OCX is registered. Try looking under the key:
HKEY_CLASSES_ROOT\CLSID\{248DD896-BB45-11CF-9ABC-0080C7E7B78D}\InprocServer32
If elevating the permissions when you run the app works then perhaps you have other features or code that is accessing the protected areas of Vista which require elevation. you could either use the manifest file to request elevation by the user to input or rewrite your code to not access those admin adears of Vista