/build/static/layout/Breadcrumb_cap_w.png

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.....

0 Comments   [ + ] Show comments

Answers (41)

Posted by: karshi 15 years ago
Purple Belt
0
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.

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
Senior Yellow Belt
0
Hi thanx for the prompt reply however could you let me know if I should include the .vbs script which you have sent me under custom actions execute differed in wise package studio
Posted by: karshi 15 years ago
Purple Belt
0
I sequenced it under "Normal execute Immediate/deferred" after "installfinalize"
Posted by: anonymous_9363 15 years ago
Red Belt
0
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.
Posted by: karshi 15 years ago
Purple Belt
0
i would be pleased to know the loopholes so that i can correct it in future.
However we did manual as well as package testing using this script and all is working fine till date.
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
Hi,


I used the script and but the Nova pdf printer does not install

:-(
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
Hi,

Someone suggested I create a blank msi and call the .exe and create something called a ISS file from the installshield .exe and then use this ISS file which will contain al custom settings and install the .exe silently.

I am not sure how to create an ISS file and go about this process.

Thanx...
Posted by: anonymous_9363 15 years ago
Red Belt
0
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
Purple Belt
0
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.
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
The problem is I cannot locate the nova pdf .exe anywhere in the original .exe installation folder
Posted by: anonymous_9363 15 years ago
Red Belt
0
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
Senior Yellow Belt
0
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
Posted by: anonymous_9363 15 years ago
Red Belt
0
You'll need to post the MSI for NovaPDF somewhere like senduit.com, as the default distro doesn't seem to be available in MSI form.I suspect that the folks at Statistica re-packaged it into MSI.
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
Hi...I don't have an msi for nova....The files I have mentioned above are all I have to work with and create and msi from the .exe i mentioned
Posted by: anonymous_9363 15 years ago
Red Belt
0
My mistake. You *did* say that already. OK, well, post *your* MSI to senduit.com and we'll take a look at that.
Posted by: Inabus 15 years ago
Second Degree Green Belt
0
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
Posted by: anonymous_9363 15 years ago
Red Belt
0
The thing is, I think, Paul, not all these PDF creation doo-hickies install as printers. Most do, but not all. That's why I asked for the MSI to be posted somewhere where we can d/l it and take a look.
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
Hi...The msi package which i have created from the .exe contains the license file which I am not permitted to post.
Can you suggest some other way...


Thanx
Posted by: anonymous_9363 15 years ago
Red Belt
0
Can you suggest some other way...You mean something REALLY radical like creating a copy of the MSI without the license file in it? No, I don't think I can.
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
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.......

Posted by: anonymous_9363 15 years ago
Red Belt
0
1. Remove the exclusions to the HKLM\System\*, HKLM\Software\*, and HKCU\Software\* paths
2. Included the global stole.dll file
1. How do you get ANY worthwhile packaging done with those branches excluded?!?!? Unbelievable...
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
Senior Yellow Belt
0
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. "
Posted by: anonymous_9363 15 years ago
Red Belt
0
Forget script. Use the ServiceControl table. http://msdn.microsoft.com/en-us/library/aa371634(VS.85).aspx
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
Hi Vbs..

I have never used this Service Control table before....tried to do it looking up the article but failed..need some tips from you on how to do it for the first time...


thanx..
Posted by: anonymous_9363 15 years ago
Red Belt
0
What are you using to author/edit the MSI? Both Wise and InstallShield provide a UI for controlling services.
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
Am using Wise Package Studio..need to know how to Stop and Start the Print Spooler through the Services UI in Installation Expert in Wise
Posted by: anonymous_9363 15 years ago
Red Belt
0
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㽚
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
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.
Posted by: anonymous_9363 15 years ago
Red Belt
0
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
Senior Yellow Belt
0
I removed the

HKCR\TypeLib\{GUID} registry key and the

HKCR\Interface\{GUID} registry key

and that brought down the registry entries in HKCR from around 6000 to 649

VBS...Any more suggestions on what else to remove from HKCR
Posted by: anonymous_9363 15 years ago
Red Belt
0
I removed the
HKCR\TypeLib\{GUID} registry key and the
HKCR\Interface\{GUID} registry key
And why did you do that, exactly? Where, in any of my posts, did I suggest that as a course of action? Now you (probably) have a broken installation package. I hope you have a back-up...
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
Oops [&:] ..I saw in some posts that it was safe to delete the

HKCR\Interface\ folder

was not sure of the other one...HKCR\TypeLib\{GUID}

I have a backup...VBS which ones do you suggest to delete...
Posted by: anonymous_9363 15 years ago
Red Belt
0
VBS which ones do you suggest to delete...None! If your distro guys want them deleted, have them make it work after deployment. Clearly, they have no idea what they're doing.
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
I wish what you said was true...but these guys have 8-10 years of packaging experience before they moved to distibution ....I can no way argue with them...and they will not accept the package [:(]...is there no other alternative..the current registry entries show 5938
Posted by: anonymous_9363 15 years ago
Red Belt
0
Fine. Let them sort it out, then. I'm done.

It would be interesting, though, to know exactly what they're objecting to. Thinking around the subject, it could be that they're objecting to entries in HKCR which ought to be in the advertising tables (e.g. Classes, AppID) instead. Could that be it?
Posted by: AngelD 15 years ago
Red Belt
0
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.
Posted by: TP24667 15 years ago
Senior Yellow Belt
0
I was not allowed to get in touch with the distribution team to ask these questions...am stuck now..any ideas from your side would be appreciated Angel...thanx
Posted by: anonymous_9363 15 years ago
Red Belt
0
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
Red Belt
0
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 [;)]
Posted by: anonymous_9363 15 years ago
Red Belt
0
So, a lot of HKCR registry entries will be associated with the legacy ISScript engine during capture which should be removed. These - along with the relevant files - should, of course, be amongst the very first things a packager should add to the list of things to exclude from a capture.
Posted by: KevinViolette 12 years ago
5th Degree Black Belt
0

You can install NovaPDF seperately.  Here`s the link to there support page.  I had the same issue with another software and this was my solution.  Worked like a charm ! 

http://www.novapdf.com/kb/how-to-install-or-uninstall-novapdf-silently-133.html 

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ