匿名質問者

VBからのLPR印刷


LPR印刷行うバッチを作成しましたが、
VBから起動して印刷されません。

コマンドから起動すれば正常に印刷されます。
バッチファイルを起動した場合も印刷されます。

VBソース
Shell ("lpr.bat")

ファイルの内容(ファイル名:

lpr.bat(実行ファイルと同フォルダに配置))
C:\Windows\System32\lpr.exe -S xxx.xxx.xxx.xxx -P printer -ol c:\test.html
※サーバ指定は自分のローカルマシーンを指定しております。

実行時にプロンプトを表示させたままにすると、
「'C:\Windows\System32\lpr.exe'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていません。」
となります。

VBからlprを起動し、印刷したいのですが、何か方法はありませんでしょうか?

OS:Windows 7 Professional(64bit)
開発環境:sharpdevelop4.3

知識不足で申し訳ないですが、宜しくお願い致します。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2014/01/27 17:48:54

ベストアンサー

匿名回答1号 No.1

64bit 版の Windows では、以下のディレクトリが存在します。

  • C:\Windows\System32 … 64bit アプリ用
  • C:\Windows\SysWOW64 … 32bit アプリ用。32bit アプリからは「C:\Windows\System32」として認識される。

恐らく「lpr.exe」が 64bit 版アプリな為、32bit 版の VB のプログラムから「C:\Windows\System32\lpr.exe」 を呼び出したつもりでいても、実際は「C:\Windows\SysWOW64\lpr.exe」を探しに行き、「見つからない」というエラーになっているのだと推測されます。

<参考情報>
■ x64版Windows上でバッチファイルをx86起動する方法 - Kerosoft : Modus Operandi
http://mo.kerosoft.com/0153

匿名回答1号

32bit アプリから C:\Windows 配下の 64bit アプリを呼び出す場合は、

C:\Windows\sysnative\lpr.exe

を指定することで、呼び出せるようです。

<参考情報>
■ 64bit Windows 上で 32bit アプリケーションから 64bit アプリケーションを実行する方法 - 日記のような何か
http://d.hatena.ne.jp/learn/20110424/p1

2014/01/26 18:14:48

その他の回答0件)

匿名回答1号 No.1

ここでベストアンサー

64bit 版の Windows では、以下のディレクトリが存在します。

  • C:\Windows\System32 … 64bit アプリ用
  • C:\Windows\SysWOW64 … 32bit アプリ用。32bit アプリからは「C:\Windows\System32」として認識される。

恐らく「lpr.exe」が 64bit 版アプリな為、32bit 版の VB のプログラムから「C:\Windows\System32\lpr.exe」 を呼び出したつもりでいても、実際は「C:\Windows\SysWOW64\lpr.exe」を探しに行き、「見つからない」というエラーになっているのだと推測されます。

<参考情報>
■ x64版Windows上でバッチファイルをx86起動する方法 - Kerosoft : Modus Operandi
http://mo.kerosoft.com/0153

匿名回答1号

32bit アプリから C:\Windows 配下の 64bit アプリを呼び出す場合は、

C:\Windows\sysnative\lpr.exe

を指定することで、呼び出せるようです。

<参考情報>
■ 64bit Windows 上で 32bit アプリケーションから 64bit アプリケーションを実行する方法 - 日記のような何か
http://d.hatena.ne.jp/learn/20110424/p1

2014/01/26 18:14:48
匿名質問者

質問者から

匿名質問者2014/01/29 10:07:00

ありがとうございます。

うまく出力することができました。

エスケープシーケンスが使えずに、

無理やりレイアウト調整していたので、

本当に助かりました。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません