ユーザーがアプリケーションから印刷したとき、プリンタイベントのどこからでもファイルのファイル名を検出する方法はありますか?私はどのファイルが印刷されているかを判断できるWindows APIを探しています。印刷時にファイル名を取得
1
A
答えて
2
プリントジブは名前で開きますが、通常これはファイル名を意味するものではありません。プリントキューに表示される名前はプリンタドライバに直接問い合わせることでアクセスできます。
1
プリンタドライバには、ファイル名を見つけるための外部APIはありません。私はあなたが送信されているジョブの印刷キューを監視するアプリの種類のsystrayエージェントの種類を作成することを見ていると仮定します。もしそうなら -
- あなたは
- 印刷ジョブステータスの印刷キューを監視することができますマイクロソフトツールのhttp://support.microsoft.com/kb/196805を参照してくださいには、Windowsは、プリンタの変更通知をサポートする方法について説明したhttp://msdn.microsoft.com/en-us/library/ff562742%28v=vs.85%29.aspxを参照してください。これを登録してプリントキューへのハンドルを取得するアプリケーションを作成することができます。ハンドルを取得すると、GetPrinterおよびGetJob APIを呼び出して、JOB_INFO_2構造体にアクセスできます。 JOB_INFO_2構造体のpDocumentNameはファイルの名前です
希望します。もしそうなら、+1を投票してください:)
1
いいえ、少なくとも信頼性はありません。ファイル名はまったくないかもしれないことに留意してください。たとえば、メモ帳のようなアプリケーションを開いて、何かを入力して印刷することができます。どのファイルを印刷していますか?なし。
上記のシナリオでは、ほとんどのアプリケーションは「タイトルなし」のような何らかのデフォルトのファイル名を提供しますが、印刷ジョブの名前を解析することによってその名前を見つけることができます。たとえば、GetJob
を呼び出すと、構造体のpDocument
メンバには印刷ジョブの名前へのポインタが含まれ、その名前にはファイル名が含まれることがよくあります。
ただし、すべてのアプリケーションでフォーマットが異なりますが、一部のアプリケーションではそれをまったく提供しません。その答えは、おそらく75%の時間のファイル名を多くの努力で見つけることができますが、単純に100%の解決策はありません。
関連する問題
- 1. Javascript印刷機能 - ファイル名
- 2. stdoutとファイルに同時に印刷
- 3. ファイルに印刷
- 4. ロケール名の印刷
- 5. 印刷時限スレッド
- 6. 印刷時のエラー
- 7. 実行コンテキストの取得/印刷
- 8. Leiningenのテスト名を印刷
- 9. 一時ファイル名の取得方法は?
- 10. XPSファイルに印刷してからプリンタに印刷する
- 11. PDFファイルの印刷
- 12. 印刷Resources.resxファイル値
- 13. テーブル名を取得し、それぞれの最初の行を印刷
- 14. すぐに構造体名を印刷
- 15. 印刷ページ生成時間
- 16. PHP印刷時間前
- 17. 印刷時にフォントサイズを調整する
- 18. Java Web App - 印刷時に印刷ダイアログを非表示にする
- 19. Watirからファイルを印刷
- 20. プログラムでExcelファイルを印刷
- 21. listviewからメッセージを取得し、edittextに印刷する
- 22. 印刷時に表が壊れる
- 23. 印刷時にテキストが移動する
- 24. フィボナッチシリーズ印刷時にiPythonがクラッシュする
- 25. 現在のファイル名をC++で拡張子で印刷する
- 26. ObjCでファイル名を印刷するのが難しい
- 27. PHPスクリプトでファイル名を印刷できますか?
- 28. Visual Studio 2005で各ファイルのコンパイル時間を印刷するC++
- 29. 一時印刷ファイルのプロパティを設定する
- 30. ファイルにページを印刷するAttachmateデータスクレイピングマクロ
あなたのリンク#1は死んでいますが、私はいくつかのマイクロソフトのプリントキューモニターのためにGoogleを見ましたが、私はこれを見つけました:http://technet.microsoft.com/en-us/library/cc784766%28v=ws.10%29。 aspx これは間違いありませんか? –