2

C#.NET で Excel アドインを作成しました。ユーザーがExcelワークブックを開いてワークシートに印刷すると、Excelが印刷を行います。Excel によって発生する通知は 1 つだけです。それは AppEvents.Workbbok_BeforePrint() イベントです。その後、ページが印刷される前に、各ページに対して生成されるイベントはありません。

Excel側から通知を受け取る方法を分析しました。しかし、1つを見つけることができませんでした。次に、プリンター/印刷スプーラーから通知を受け取るオプションを試しました。印刷されるすべてのページの通知を受け取るように、プリンター/印刷スプーラーから通知を取得するにはどうすればよいですか。

これで私を助けてください。

ありがとう、よろしく、 Sundareswaran Senthilvel

4

1 に答える 1

0

これは、特に印刷ジョブに多くのページがない場合は困難です。それはおそらくそれが価値があるよりも多くの仕事です。:)

ただし、WinAPI関数のEnumJobsGetJobを使用して実行できます。

OpenPrinterを呼び出して、プリンターハンドルを取得します。

レベル2でGetPrinterを呼び出して、ジョブの数を確認します。

EnumJobsを呼び出します。Excelから印刷ジョブが見つかるまで、JOB_INFO_1、JOB_INFO_2、またはJOB_INFO_3を調べます(要求した情報に応じて、上記の他のページのこれらの構造へのリンクとその内容に応じて)。

そのJobIDを使用してGetJobを呼び出し、印刷操作の現在の状況に関する情報を取得します。

于 2011-07-22T16:50:09.290 に答える