- PR -

ASP.NETでデフォルトプリンタを切り替えたい

1
投稿者投稿内容
わだまん
会議室デビュー日: 2002/11/07
投稿数: 17
投稿日時: 2006-03-08 14:02
Webアプリケーションを作成しています。
そのアプリケーションでは、デフォルトプリンタに対して印刷を実行するため、
デフォルトプリンタを切り替えて出力先を変えたいと考えています。
しかし、SetDefaultPrinterでデフォルトプリンタが切り替わりません。

----------
<%@ Page Language="VBScript" Debug="true" AspCompat="true" runat="server" %>

<html>
<body>
<%
Dim PrinterName = "プリンタ名"
Dim WshNetwork = Server.CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter( PrinterName )


Dim pd As New System.Drawing.Printing.PrintDocument
Dim dpn = pd.PrinterSettings.PrinterName
%>
デフォルトプリンタは<% Response.Write( dpn ) %>です。</p>
</body>
</html>
----------

上記Webアプリケーションを動かしても、出力されるのは
もともと設定されていたデフォルトプリンタ名です。

このWebアプリケーションは、ASP.NETの偽装機能で
Administratorに割り当ててあります。
Administratorは"プリンタ名"プリンタにアクセス出来るので、
アクセス権限の問題では無いと思っています。
実際、上記処理をWSHに書き換えて、Administratorでログオンして
実行すると、デフォルトプリンタが切り替わりました。

Webアプリケーション内でEnumPrinterConnectionsメソッドを
使ってネットワークプリンタ一覧を取得すると読み出せたため、
プリンタへのアクセスは出来ていると思われます。
また、デフォルトプリンタへの出力も正常に出来ています。

どうにも原因がわかりません。どなたかアドバイスをお願いします。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-03-08 14:42
クライアント側のデフォルトプリンタを変更してサーバ側で確認しているように見えるんだが。。。
わだまん
会議室デビュー日: 2002/11/07
投稿数: 17
投稿日時: 2006-03-08 15:14
引用:

ぶさいくろうさんの書き込み (2006-03-08 14:42) より:
クライアント側のデフォルトプリンタを変更してサーバ側で確認しているように見えるんだが。。。



スクリプトコードはサーバサイドでしか動いていないはずですが…。
念のためにサーバからクライアントに届くパケットをチェックしましたが、
スクリプトコードはまったく含まれていませんでした。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2006-03-08 21:37
引用:

わだまんさんの書き込み(2006-03-08 14:02)より:

実際、上記処理をWSHに書き換えて、Administratorでログオンして
実行すると、デフォルトプリンタが切り替わりました。


 Adiminstrator に偽装しているんですよね?Administrator のデフォルトプリンタが変わっていたりして。
わだまん
会議室デビュー日: 2002/11/07
投稿数: 17
投稿日時: 2006-03-09 08:43
引用:

Jittaさんの書き込み (2006-03-08 21:37) より:
引用:

わだまんさんの書き込み(2006-03-08 14:02)より:

実際、上記処理をWSHに書き換えて、Administratorでログオンして
実行すると、デフォルトプリンタが切り替わりました。


 Adiminstrator に偽装しているんですよね?Administrator のデフォルトプリンタが変わっていたりして。



Administratorでログオンして確認しましたが、デフォルトプリンタは
変わっていませんでした。
Webアプリケーションは今のところAdministratorのアカウントで
動かしているので、Administratorのデフォルトプリンタが
変わっていたら、それはそれでOKなんですが…。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-03-09 09:06
引用:

わだまんさんの書き込み (2006-03-08 14:02) より:

Dim PrinterName = "プリンタ名"
Dim WshNetwork = Server.CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter( PrinterName )


PrinterName の実際の値は、Administrator でのプリンタ名でなければならないと思いますが、
プリンタ フォルダの名称で設定しているのでしょうか?
ローカルのプリンタなどは試されました?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
わだまん
会議室デビュー日: 2002/11/07
投稿数: 17
投稿日時: 2006-03-09 09:14
引用:

じゃんぬねっとさんの書き込み (2006-03-09 09:06) より:
引用:

わだまんさんの書き込み (2006-03-08 14:02) より:

Dim PrinterName = "プリンタ名"
Dim WshNetwork = Server.CreateObject("WScript.Network")
WshNetwork.SetDefaultPrinter( PrinterName )


PrinterName の実際の値は、Administrator でのプリンタ名でなければならないと思いますが、
プリンタ フォルダの名称で設定しているのでしょうか?
ローカルのプリンタなどは試されました?





実際には"プリンタ名"のところには、Administratorでログインして
プリンタ一覧を表示した際に表示されるプリンタ名を設定しております。
EnumPrinterConnectionsで取得されるプリンタ名も同じ名称なので、
これで正しいと思っているのですが…。
1

スキルアップ/キャリアアップ(JOB@IT)