プリンターの印刷ジョブを確認すると、N/Aとなっている印刷ジョブが存在します。
実際には0ページなのですが、必要があって保留状態でスプールに蓄積しています。
これを、VBのPrintSystemJobInfoを使ってキャンセルできないかと考えたのですが
指定のプリンターにある0ページの印刷ジョブをどうやってキャンセルしていいかわかりません。
Public Property JobSize As Integer
'使用
Dim instance As PrintSystemJobInfo
Dim value As Integer
value = instance.JobSize
if value = 0 then
instance.cancel
end if
とやればできそうなのですが、プリンタ内にある全てのジョブで
やるには、どのようにループさせればいいのでしょうか?
No.1ベストアンサー
- 回答日時:
'デフォルトプリンタ(物理)のケーブルを抜いておき、
'デフォルトプリンタに、他のアプリケーションからいくつかプリンタジョブを登録した。
'これらのプリンタジョブは枚数が異なるので、2枚以上のジョブが消えるか試してみたらうまくいったようだ。
'注意事項。
'個人的には「MS謹製の.NET FrameworkをWindowsでしか動作させない」という発想で最初から割り切るのが好きでないので、Monoでも試そうとしたのだが、System.Printing名前空間のライブラリが添付されていないようで断念せざるを得なかった。
'アプリケーション配布時は実行環境が.NET 3.0以降専用ライブラリを使用していることをエンドユーザに報告する。
'JobSizeってバイトのサイズみたいだけど、NumberOfPagesじゃなくていいの?
'PrinterServerクラスのコンストラクタにNothingを渡すと、ローカルにつながっているプリンタが前提となる、とドキュメントにあるのだが、実際にNew PrinterServer(Nothing)と渡すと、PrintServer(PrintSystemDesiredAccess)もあるのでオーバーロードの解決ができなくなるので、わざわざ文字列型変数にうけているが、何とかならんものかなあ?
Option Explicit On
Option Strict On
Imports System.Drawing.Printing
Imports System.Printing
Public Class Application
Public Shared Sub Main()
Dim x As String = Nothing
Dim ps As PrintServer = New PrintServer(x)
Dim pq As PrintQueue = ps.GetPrintQueue(new PrinterSettings().PrinterName)
'IEnumerableなのでFor Eachで使えるが、もちろん、そうしなければならないということもない。
'Indexで指定するなら、Listのコンストラクタに渡すべきなんだろうか。
For Each job As PrintSystemJobInfo in pq.GetPrintJobInfoCollection()
If job.NumberOfPages > 1 Then '条件はお好みでどうぞ。
job.Cancel()
End If
Next
End Sub
End Class
この回答への補足
himajin100000さん
さっそくのご回答有難うございます。
因みに、サーバに印刷ジョブがあり、クライアント側から処理したいのですが
Dim x As String = "\\192.168.0.1"
若しくは
Dim x As String = "PrintSVR"
とやってみたのですが、
PrintQueue オブジェクトのプロパティを作成中に例外が発生しました。
Win32 エラー: プリンター名が無効です。
となりました。この場合、xには何を記述すればいいでしょうか?
ご教授くださいますようお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- プリンタ・スキャナー 削除済みのプリンターの印刷ジョブが消えない 3 2023/01/24 11:23
- プリンタ・スキャナー 印刷開始までに時間がかかります 5 2022/05/13 13:17
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
- プリンタ・スキャナー 2台のプリンターでそれぞれ異なる様式の帳票を印刷したい。 2 2022/09/06 10:07
- Visual Basic(VBA) 【VBA】印刷マクロのループ処理が反映されません 3 2022/08/09 02:15
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- プリンタ・スキャナー エプソンのプリンタEP-879AWを使っていますが印刷文字がぼやけます。 家電量販店で写真印刷がメイ 4 2022/03/26 23:20
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
これが怖いの自分だけ?というものありますか?
人によって怖いもの(恐怖症)ありませんか? 怖いものには、怖くなったきっかけやエピソードがあって聞いてみるとそんな感覚もあるのかと新しい発見があって面白いです。
-
プリン+醤油=ウニみたいな組み合わせメニューを教えて!
プリンと醤油を一緒に食べると「ウニ」の味がする! というような意外な組み合わせから、新しい味になる食べ物って色々ありますよね。 あなたがこれまでに試した「組み合わせメニュー」を教えてください。
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
【Vb.net】プリンタジョブの取得
Visual Basic(VBA)
-
プログラムからプリンタジョブの削除がしたい
Visual Basic(VBA)
-
プリンタの印刷ジョブを削除したい。
Visual Basic(VBA)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/2】 国民的アニメ『サザエさん』が打ち切りになった理由を教えてください
- ・ちょっと先の未来クイズ第5問
- ・【お題】ヒーローの謝罪会見
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
印刷ダイアログを表示させない方法
-
両面印刷設定方法について
-
VB2005 ReportViwer で印刷したい
-
プリンタの印刷ジョブを削除し...
-
印刷ダイアログを表示させたくない
-
IEからの画像(jpeg)印刷について
-
VBAで不特定枚数印刷をしたいで...
-
スプレッド(Spread 6) で縮小...
-
逆方向印刷をしたい。(VB6)
-
プリンタドライバの用紙サイズ...
-
作成したフォーム(画面)をA4用...
-
2回以上PDFをコピーや印刷がで...
-
VBAで印刷スプール終了の判定を...
-
印字に適した開発環境や言語
-
~の文字化けについて
-
VBSでExcelファイル印刷時のプ...
-
VBでの印刷について
-
画面サイズ以上のフォームの印刷
-
PHPでPDFファイルの直接印刷
-
ACCESSで設定した帳票の用紙サ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷ダイアログを表示させない方法
-
プリンターを指定して印刷するには
-
印刷要求順番と印刷出力順番が...
-
vbaでPDFファイルが印刷されない
-
EXCELファイルの複数ダウンロー...
-
印刷ダイアログを表示させたくない
-
VBAで印刷の成功判定
-
ACCESSで設定した帳票の用紙サ...
-
VBAで印刷スプール終了の判定を...
-
VB6上から印刷ダイアログを表示...
-
A4の2枚をA3の1枚にする編集方法?
-
VB.NET+ActiveReports で印刷...
-
ActiveReportsを使って[印刷ダ...
-
VBscriptでPDFファイルを直接印...
-
2回以上PDFをコピーや印刷がで...
-
両面印刷設定方法について
-
オートメーションエラー(214741...
-
イベントプロシージャ 印刷が...
-
VBSでExcelファイル印刷時のプ...
-
VB2008で0ページの印刷ジョブを...
おすすめ情報