Pdf Printer does not install when msi is installed
Hi,
I have an application in the .exe form which was made using Installshield.When I install the application(.exe) it also installs a pdf printer called Nova Pdf (a third party tool).This Nova Pdf helps users to print pdf's from within the application.
I perform a setup capture of the .exe using Wise Package Studio and make a .wsi which after compiling I form an msi.
The issue is when I install this .msi the Nova Pdf printer does not get installed and does not reflect under Printers and Faxes.What can I do to resolve this issue.
Thanx.....
I have an application in the .exe form which was made using Installshield.When I install the application(.exe) it also installs a pdf printer called Nova Pdf (a third party tool).This Nova Pdf helps users to print pdf's from within the application.
I perform a setup capture of the .exe using Wise Package Studio and make a .wsi which after compiling I form an msi.
The issue is when I install this .msi the Nova Pdf printer does not get installed and does not reflect under Printers and Faxes.What can I do to resolve this issue.
Thanx.....
0 Comments
[ + ] Show comments
Answers (41)
Please log in to answer
Posted by:
karshi
15 years ago
i faced similar issue while creating an MSI for cutePDF.
however stopping and restarting the spooler service resolved the issue.
You can try this script.
hope it helps!
however stopping and restarting the spooler service resolved the issue.
You can try this script.
Script to change the startup type of Automatic Updates and Background Intelligent Transfer Service
'Variable to specify computer name. To run on a remote machine, change the . to IP Address
On Error Resume Next
strComputer = "."
'Create a WMI object for the specified computer
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
'Query the Win32_Service namespace and search for the service name Alerter. Change to appropriate service name when necessary
Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service WHERE DisplayName='Print Spooler'")
'******************************************************************
'Iterate thru the Win32_Service namespace to find the BITS and AU services
For each objService in colServiceList
'Check for StartMode
'if not Automatic then change to Automatic
dim intSleep
'Change the startup type to Disabled. You can also set it to either Manual or Automatic
If objService.DisplayName="Print Spooler" Then
'If objService.StartMode="Auto" Then
objService.StopService()
objService.ChangeStartMode("Disabled")
'msgbox "stopped"
intSleep = 15000
End if
'End if
If objService.DisplayName="Print Spooler" Then
'If objService.StartMode="Auto" Then
objService.ChangeStartMode("Automatic")
objService.StartService()
'End if
End If
Next
hope it helps!
Posted by:
TP24667
15 years ago
Posted by:
karshi
15 years ago
Posted by:
anonymous_9363
15 years ago
Before you use it, I'd be adding a ton of error-trapping in there. (no offence, BTW, but this is a common fault with scripts I see)
For starters, the script assumes that the service stopped. What if it didn't? As it is, the script will blunder on and the install will fail if the service is still running.
For starters, the script assumes that the service stopped. What if it didn't? As it is, the script will blunder on and the install will fail if the service is still running.
Posted by:
karshi
15 years ago
Posted by:
TP24667
15 years ago
Posted by:
TP24667
15 years ago
Posted by:
anonymous_9363
15 years ago
However we did manual as well as package testing using this script and all is working fine till date.The key phrase there is "till date" (you meant "to date", of course). It works because the systems you're testing on are (hopefully) perfect. What happens when the local permissions are in error and even an admin user can't stop the service? It happens (and more often than you might think!)
What I'm trying to do is educate people to program defensively. Scripts should check EVERYTHING and that includes object creation (yes, including things like creating the FileSystemObject object). Each file copy operation needs a check to see if the file was successfully copied, etc, etc. Assume NOTHING! At some point, something WILL go wrong and your scripts should cater for that.
Posted by:
RJ
15 years ago
got a suggestion for u.
Attimes wen the printer driver capture takes place drivers don't actually get captured.
U can use the MSi whihc had been captured and define a custom action to run after install finalise..which launches the exe for printer.the printer shall b setup.
Also define sa similar custom action at the time fo uninstall.
I hope that should do for the application.
Attimes wen the printer driver capture takes place drivers don't actually get captured.
U can use the MSi whihc had been captured and define a custom action to run after install finalise..which launches the exe for printer.the printer shall b setup.
Also define sa similar custom action at the time fo uninstall.
I hope that should do for the application.
Posted by:
TP24667
15 years ago
Posted by:
anonymous_9363
15 years ago
I used the script and but the Nova pdf printer does not installThe script isn't designed to install the printer but to get it to appear in the list of available printers, after the driver has been installed.
I don't know this app at all but I suspect that - like most drivers - it's driven by an INF file. If it is, refer to the 'sticky' post at the top of the forum page which refers to driver installation.
Posted by:
TP24667
15 years ago
The application is called Statistica and the pdf printer is a third party tool called Nova pdf.
The following are the files available in the .exe folder:
AUTORUN.bmp
Autorun.exe
AUTORUN.INF
AUTORUN.INI
AUTORUNH.bmp
data1.cab
data1.hdr
data2.cab
engine32.cab
layout.bin
setup.bmp
setup.exe
setup.ibt
setup.ini
setup.inx
setup.isn
setup.iss
XXNET
New Folder
The New Folder contains 2 files
.tmp and .lic files both contain license flexlm information
The following are the files available in the .exe folder:
AUTORUN.bmp
Autorun.exe
AUTORUN.INF
AUTORUN.INI
AUTORUNH.bmp
data1.cab
data1.hdr
data2.cab
engine32.cab
layout.bin
setup.bmp
setup.exe
setup.ibt
setup.ini
setup.inx
setup.isn
setup.iss
XXNET
New Folder
The New Folder contains 2 files
.tmp and .lic files both contain license flexlm information
Posted by:
anonymous_9363
15 years ago
Posted by:
TP24667
15 years ago
Posted by:
anonymous_9363
15 years ago
Posted by:
Inabus
15 years ago
There shouldnt be a need to start and stop spooler services when installing printers and you should NEVER snapshot a printer installation as the printer is installed in sequance from a registry perspective so you run the risk of breaking an already installed printer.
Use PRINTUI.DLL to install your printer, run it via a custom action once you have dropped the files to the machine.
Below is an example, but use google to find more:
rundll32 printui.dll,PrintUIEntry /if /b "HP4510-DH" /f "\\servername\apps\drivers\JP Drivers\HP4510\XP\hpc4015c.inf" /r "lpt1:" /m "HP LaserJet P4010_P4510 Series PCL 6"
P
Use PRINTUI.DLL to install your printer, run it via a custom action once you have dropped the files to the machine.
Below is an example, but use google to find more:
rundll32 printui.dll,PrintUIEntry /if /b "HP4510-DH" /f "\\servername\apps\drivers\JP Drivers\HP4510\XP\hpc4015c.inf" /r "lpt1:" /m "HP LaserJet P4010_P4510 Series PCL 6"
P
Posted by:
anonymous_9363
15 years ago
Posted by:
TP24667
15 years ago
Posted by:
anonymous_9363
15 years ago
Posted by:
TP24667
15 years ago
Hi guyz....
I managed to solve this...what I did
1. Remove the exclusions to the HKLM\System\*, HKLM\Software\*, and HKCU\Software\* paths
2. Included the global stole.dll file
And voila....
The pdf printer gets installed...
NB: While installing the msi the print spooler service must be turned off.And after installing the service must be turned on. I did this manually so I would have to add a script in the package in setup that does thsi automatically
Thanx for all the support guys.......
I managed to solve this...what I did
1. Remove the exclusions to the HKLM\System\*, HKLM\Software\*, and HKCU\Software\* paths
2. Included the global stole.dll file
And voila....
The pdf printer gets installed...
NB: While installing the msi the print spooler service must be turned off.And after installing the service must be turned on. I did this manually so I would have to add a script in the package in setup that does thsi automatically
Thanx for all the support guys.......
Posted by:
anonymous_9363
15 years ago
1. How do you get ANY worthwhile packaging done with those branches excluded?!?!? Unbelievable...1. Remove the exclusions to the HKLM\System\*, HKLM\Software\*, and HKCU\Software\* paths
2. Included the global stole.dll file
2. If your package is installing that file, it'll get overwritten by Windows File Protection, won't it?
Posted by:
TP24667
15 years ago
Hi,
VBScab you are right the.....the stole.dll is not required.The only thing that is required is to remove the exclusions to the HKLM\System\*, HKLM\Software\*, and HKCU\Software\* paths
However I am not able to get the script right to stop and start the print spooler service...need help on that please!!
I am uncertain to use the script given above because as you mentioned
Quote:
"For starters, the script assumes that the service stopped. What if it didn't? As it is, the script will blunder on and the install will fail if the service is still running. "
VBScab you are right the.....the stole.dll is not required.The only thing that is required is to r
Posted by:
anonymous_9363
15 years ago
Forget script. Use the ServiceControl table. http://msdn.microsoft.com/en-us/library/aa371634(VS.85).aspx
Posted by:
TP24667
15 years ago
Posted by:
anonymous_9363
15 years ago
Posted by:
TP24667
15 years ago
Posted by:
anonymous_9363
15 years ago
Ugggh...I forgot WPS's UI is too stupid to allow editing of an existing service...sorry.
However, as usual, AppDeploy already has the information you need. Had you used the 'Search' link at the top of each page, you would have come across this thread http://itninja.com/question/altiris-aquires-wise-solutions89&mpage=1&key=servicecontrol㽚
However, as usual, AppDeploy already has the information you need. Had you used the 'Search' link at the top of each page, you would have come across this thread http://itninja.com/question/altiris-aquires-wise-solutions89&mpage=1&key=servicecontrol㽚
Posted by:
TP24667
15 years ago
The link you sent worked like a charm VBS....Thanx :-)
There is one final glitch to the package...since I performed a setup capture and made an msi from the exe.
HKCR has lot of entries.The distribution team says they are unwanted.
I don't know which to delete because if I randomly delete entries which look like repated entries under HKCR
I fear the users might lose some functionality of the program.
Why the Distribution team does not want entries under HLCR?
My best guess is if an msi package with HKCR installs on a user's machine it installs/overwrites the registry with all those HKCR entries on the user's machine.If the msi package is uninstalled.it would remove all those HKCR entries and the Distribution team probably fears that would/could cause issues.
There is one final glitch to the package...since I performed a setup capture and made an msi from the exe.
HKCR has lot of entries.The distribution team says they are unwanted.
I don't know which to delete because if I randomly delete entries which look like repated entries under HKCR
I fear the users might lose some functionality of the program.
Why the Distribution team does not want entries under HLCR?
My best guess is if an msi package with HKCR installs on a user's machine it installs/overwrites the registry with all those HKCR entries on the user's machine.If the msi package is uninstalled.it would remove all those HKCR entries and the Distribution team probably fears that would/could cause issues.
Posted by:
anonymous_9363
15 years ago
Why the Distribution team does not want entries under HLCR?Who knows? They probably do (one would hope!)
Remember that HKCR is an amalgam of HKLM\SOFTWARE\Classes and HKCU\SOFTWARE\Classes. It may be that they're objecting to stuff in HKLM but, if they're discreet to the app, I can't honestly see what their objection could be.
Posted by:
TP24667
15 years ago
Posted by:
anonymous_9363
15 years ago
Posted by:
TP24667
15 years ago
Posted by:
anonymous_9363
15 years ago
Posted by:
TP24667
15 years ago
Posted by:
anonymous_9363
15 years ago
Posted by:
AngelD
15 years ago
TP24667,
I guess you should ask the "team" how they want the COM-component (ex. DLL, OCX, EXE) registration information to be written during install; which can be handled in three different ways:
1. Self-registration through either the SelfReg table or custom action; this option is NOT recommended.
2. Purely through the Registry table.
3. Through the COM-advertise related tables (ex. Class, TypeLib, ProgId and some small portion in the Registry table)
If they want support for self-healing during COM-component(s) API calls then methoed 3 would be preferred.
I guess you should ask the "team" how they want the COM-component (ex. DLL, OCX, EXE) registration information to be written during install; which can be handled in three different ways:
1. Self-registration through either the SelfReg table or custom action; this option is NOT recommended.
2. Purely through the Registry table.
3. Through the COM-advertise related tables (ex. Class, TypeLib, ProgId and some small portion in the Registry table)
If they want support for self-healing during COM-component(s) API calls then methoed 3 would be preferred.
Posted by:
TP24667
15 years ago
Posted by:
anonymous_9363
15 years ago
I was not allowed to get in touch with the distribution team to ask these questions...LOL...what sort of company is it that you're working for?!? Holy cow!
Look, you have a working solution which, provided you have followed the recommendations here, conforms to best practise. There is NO other solution so, if this was me, I'd forward the whole thing to the packaging team lead/manager, along with unanswered emails (if any), records of telephone call attempts, the instruction from whoever to NOT contact the distribution team - basically all the documented evidence - and have him sort it out. Your job is done.
Posted by:
AngelD
15 years ago
I read through the thread again and you've captured a installshield legacy setup.
So, a lot of HKCR registry entries will be associated with the legacy ISScript engine during capture which should be removed.
The best would be if you could make the MSI or WSI available for us to have a look so we could tell you what to include and to exclude from the Registry table and do your job [;)]
So, a lot of HKCR registry entries will be associated with the legacy ISScript engine during capture which should be removed.
The best would be if you could make the MSI or WSI available for us to have a look so we could tell you what to include and to exclude from the Registry table and do your job [;)]
Posted by:
anonymous_9363
15 years ago
Posted by:
KevinViolette
12 years ago
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.