特定のWindows印刷ジョブのスプールデータをディスク上の任意の場所にコピーしたいとします。スプールファイルプーリングが有効になっていても、特定のIDを持つジョブのスプールファイルを見つけるにはどうすればよいですか?
Print Spooler APIからの印刷ジョブのジョブIDがあります。私はこの仕事がスプールを終了したことを知っています。私は、私がする必要があることを完了するための時間が来る前に、仕事が削除されないことを知っています。
ファイルプールが無効になっている場合、「xxxxx.spl」という形式のファイルのスプールディレクトリを調べることでこれを行うことができます。ここで、xxxxxは0埋め込みジョブIDです。
ファイルプーリングが有効になっている場合はどうすればよいですか?
ジョブIDを取得してスプールデータのストリームを返したメソッドがあったとしても喜んでいますが、現時点ではそうは思われません。 「PrinterName、Job xxxx」とReadPrinterをhereと書いたようなOpenPrinter
を使用しても同様のことが起こる可能性がありますが、これまでのところ私はhaven't been able to get it to workであり、データをメモリにロードするように見えます大きなスプールファイルで動作します(> 1 GBは普通ではありません)。
私の2番目の好みは、ファイルプーリングの設定に関係なく、IDを渡してディスク上のスプールデータを持つファイルの場所を取得する方法です。
私の3番目の設定は、プールされたファイル( "FPyyyyy.spl")をそれが対象とするジョブIDにマップする方法です。
これらのいずれかが実行可能か、誰かがこの問題を解決する方法についてより良いアイデアを持っていますか? 私たちは、顧客がプリンタごとにレジストリを編集してスプールファイルのプーリングを無効にすることを義務付けていますが、回避することをお勧めします。この。
こんにちは、「あなたがする必要があることを完了するための時間が来る前に、仕事が削除されないことを知っていますか?どのようにスプールファイルを保持できますか? – Kira