2

ファイルの送信先となる仮想プリンターを作成する、GhostScript を実装する Java で作成したプログラムのインストーラーを作成しようとしています。次に、私のプログラムはファイルを読み取り、それに応じて管理します。ただし、RedMon リダイレクト ポート (RPT1:) を手動で構成し、.jar ファイルを引数として取り、そのポートを使用して新しいプリンターを手動で作成する必要がありました。

プリンターのポートで構成された引数:

プリンターのポートで構成された引数

次のように、NSIS(インストーラーの作成に使用しているプログラム)を介して新しいプリンターを作成できました。

Exec 'cscript "C:\Windows\System32\Printing_Admin_Scripts\pt-BR\prnport.vbs" ^ -a -r RPT1:'
ExecWait 'rundll32 printui.dll,PrintUIEntry /if /f "$INSTDIR\ghostpdf.inf"^ /r "RPT1:" /m "Ghostscript PDF" /b "Impressora SPE" /u /Y'

ポートを構成するために、コマンドを使用して同じことを行う方法はありますか? 可能であれば、自分のプログラム用に別のポートを作成したいと思います (現在、デフォルトの RedMon ポートを使用しています) が、インストール時に Java 引数も渡すので、エンド ユーザーはこれらを手動で含める必要がありません。引数。私はあらゆる場所を見てきましたが、見つけたすべてのガイドと記事は手動で行われていました.

助けてくれてありがとう!

4

1 に答える 1

2

少し掘り下げましたが、最終的に RedMon を使用して新しいプリンター ポートをセットアップするために必要なコマンドを見つけたので、ここで共有することにしました。

rundll32 "REDMONPATH\redmon32.dll", RedMonConfigurePort Port="PORT:" Command="JAVA" Arguments="-jar ""JAR"" ""C:\Program Files (x86)\gs\gs9.21\bin\gswin32c -I\""C:\Program Files (x86)\gs\gs9.21\lib\"" -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sPAPERSIZE=a4 -r300"""

REDMONPATH は RedMon インストール フォルダーへのパス、PORT はポートの名前、JAVA は java.exe へのパス、JAR は .jar ファイルへのパスです。二重引用符を保持してください。これは、コマンドを介して引用符を渡す方法です。ただし、このコマンドは RedMon インストール フォルダーで実行する必要があります。また、管理者として実行する必要があります。そうしないと、エラーが発生し、何か間違ったことをしたと誤って想定する可能性があります。私の場合、NSIS を使用して、これは完全なコマンド ラインです。

ExecWait 'rundll32 "$INSTDIR\redmon\redmon32.dll", RedMonConfigurePort Port="SPE:" Command="C:\Program Files (x86)\Java\jre1.8.0_144\bin\java.exe" Arguments="-jar ""C:\Program Files (x86)\Impressora SPE\ImpressoraSPE.jar"" \""C:\Program Files (x86)\gs\gs9.21\bin\gswin32c -l \""C:\Program Files (x86)\gs\gs9.21\lib\"" -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -sPAPERSIZE=a4 -r300"""'

その後、通常どおり新しいポートを使用して新しいプリンターをインストールできます。

ExecWait 'rundll32 printui.dll,PrintUIEntry /if /f "$INSTDIR\ghostpdf.inf" /r "PORT:" /m "Ghostscript PDF" /b "PRINTER_NAME" /u /Y'`

これを NSIS ではなくコマンド プロンプトから実行しようとしている場合は、「ExecWait」ビットとコマンドを囲む一重引用符を削除するだけです。また、「$INSTDIR\something」を対応するフル パスに置き換えます。

私が個人的にかなり苦労したことを見て、他の誰かがこの主題についてさらに助けが必要な場合は、ここで遠慮なく彼らに尋ねてください。私は助けるために最善を尽くします!

編集:絶え間ない編集についてお詫び申し上げます。異なるバージョンの Windows でこれらをテストするときに、ほとんどの人に役立つ指示を残すようにしてください。

于 2017-08-17T12:47:00.880 に答える