我创建了一个MSI包(使用InstallShield-IS),它将我的应用程序与MS Postscript驱动程序一起安装。我的问题主要集中在我整个安装过程的postscript驱动程序安装部分。我已经创建了一个IS自定义操作来在安装MS Postscript驱动程序的正确时间运行命令文件(.cmd)。命令文件包含以下rundll32行:
rundll32 printui.dll, PrintUIEntry /ia /m "AppX PS" /h "x64" /v "Type 3 - User Mode" /f "c:\(install)\afprint.inf" /F "%windir%\inf\ntprint.inf"
。
以上作品非常接受我被需要用户输入的Microsoft警告框所困扰的事实。该框包含标题:Windows无法验证此驱动程序软件的发布者。我可以选择“无论如何安装此驱动程序软件”选项,整个过程确实有效。我做了研究,即使我将“run quiet”开关添加到PrintUIEntry方法,也似乎没有办法避免警告。显然,我需要签署我的驱动程序,以避免安全框,但在哪里?我这里没有二进制代码。我的安装使用一个自定义INF文件,只需委托给Microsoft(通过ntprint.inf)进行Postscript驱动安装。 Postscript驱动程序已经在操作系统上。我只提供PPD文件。我需要签署的是我的主要问题?我怎么能这样做,因为我不熟悉驾驶员签名?
我在Windows 2008 R2 x64上运行它。
这是我的INF afprint.inf的副本(它很小):
[Version]
Signature="$Windows NT$"
Provider=%AF%
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
Class=Printer
DriverVer=05/17/2007,1.0.0.1
[Manufacturer]
%AF%=Arbfile,NTamd64
[Arbfile]
"AppX PS" = AFCLIENT,,
[Arbfile.NTamd64]
"AppX PS" = AFCLIENT,,
[OEM URLS]
"Arbfile" = "http://www.arbfile.org"
[AFCLIENT]
CopyFiles=@AFCLIENT.PPD
DataFile=AFCLIENT.PPD
DataSection=PSCRIPT_DATA
Include=NTPRINT.INF
Needs=PSCRIPT.OEM,PSCRIPT_DATA
[DestinationDirs]
DefaultDestDir=66000
[Strings]
AF="Arbfile"
感谢您的帮助
答案 0 :(得分:0)
在[Version]
文件的inf
部分添加CatalogFile指令,使用inf2cat
生成cat
文件,然后使用signtool
}签署cat
文件。
如果您使用由Microsoft交叉签名的证书,则不会显示安装程序安全警告。
您可以在WDK中找到inf2cat
和signtool
。