アプリケーションをMSPostscriptドライバーと一緒にインストールするMSIパッケージを作成しました(InstallShield-ISを使用)。私の質問は主に、私の全体的なインストールプロセスのポストスクリプトドライバーのインストール部分に焦点を当てています。MS Postscriptドライバーをインストールする正しいタイミングでコマンドファイル(.cmd)を実行するISカスタムアクションを作成しました。コマンドファイルには、次の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はこのドライバーソフトウェアの発行元を確認できません。「とにかくこのドライバソフトウェアをインストールする」オプションを選択すると、プロセス全体が機能します。私はこれを調査しましたが、PrintUIEntryメソッドに「runquiet」スイッチを追加しても警告を回避する方法はないようです。明らかに、セキュリティボックスを回避するためにドライバーに署名する必要がありますが、どこで?ここにはバイナリコードはありません。私のインストールでは、Postscriptドライバーのインストールを(ntprint.inf経由で)Microsoftに委任するだけのカスタムINFファイルを使用しています。PostscriptドライバーはすでにOS上にあります。PPDファイルのみを提供しています。私の主な質問は、正確に何に署名する必要がありますか?ドライバーの署名に慣れていないので、どうすればこれを行うことができますか?
私はこれをWindows2008R2x64で実行しています。
これが私のINFafprint.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"
助けてくれてありがとう