VB6で開発しています。
ネットワークプリンタの名称を取得する良い方法があれば教えて頂けますか。
CommonDialogやSHBrowsForFolderを使用すればネットワークプリンタの「共有名」は取得できるのですが、取得したいのはそれではなくて「サーバー上から見た場合のプリンタ名そのもの」なのです。
例えばあるサーバー上に共有プリンタAが存在するとします。
このプリンタは
プリンタ名 :プリンタA
共有名 :printer
という風になっています。
同ネットワーク内に存在するクライアント1からこのプリンターを参照しようとした場合、エクスプローラーや、あるいは上記のSHBrowsForFolderを使用した簡単なアプリケーションでは「\\サーバー名\printer」という値が返ってきます。
でも「プリンタの追加ウィザード」でネットワークプリンタをインストールしようとするとちゃんと「プリンタA」と表示されます。
この「プリンタA」という情報が欲しいのです。
何かよい方法がありましたら教えて下さい。
宜しくお願いします。
No.1ベストアンサー
- 回答日時:
ご回答ありがとうございます。
参考URLからNetShareGetInfoを使用したサンプルPGを取ってきて試したところ、ひとまずプリンタ名の取得はできました。
どうもありがとうございました。
ただ引数「Level」の意味がいまいち不明です・・・。
サンプルでは「2」となっていますが、この状態でネットワーク上のサーバー名と共有名を渡すと値の取得に失敗します(関数の戻り値:2310)。自マシン上のプリンタ名のみ指定した場合は正常に動作します。
引数「1」を指定してあげればネットワーク上、ローカル共にプリンタ名の取得は可能だったのですが、プリンタキュー名が文字化けしたりします。
今NetShareGetInfoの引数の説明があるサイトを探しているところです。
No.4
- 回答日時:
失礼いたしました。
履歴をみてなかったので、返事が遅れました。環境がないので、どの構造体を使うかがはっきり報告できません。。。
NetShareEnum関数についても必要かどうかも名言できません。
しかしプリンタ名を知るには、OS別の処理を走らせるしかないように思います。
私ごとですが、以前にある人数以上のアクセスを受け付けないソフトの依頼をされたことがありました。
することはセッションの切断なのですが、これもまたNT系/95系で構造体&レベルが違いました。
セッションやネット系の関数はOSによって使用する構造体が違うようですね。
私にはこれ以上のアドバイスは難しいです。。。
環境さえあったら、、、正確なことが、、、言えるのですが、、、、
No.3
- 回答日時:
あそこにあったサンプルはNT系なのですが、もしかしてお使いのOSは95系では?
環境がないので正確には言えませんが、レベル1でエラーが返らないのであれば、SHARE_INFO_1構造体を使用する必要があります。
それで情報が足りないのであれば、レベル50でSHARE_INFO_50構造体(95系専用)の構造体を試したらいいかもしれません。
この回答への補足
ありがとうございます。
説明不足でしたね、申し訳ありません。
開発を行っているマシンは
OS :NT4.0
VB :6.0
です。
但し、このPG(というか機能)を使うのは98、NT、2000、XPなんですよ。
あれからまた調べた所、9X系で同様の事をするには「NetShareEnum95」とかを使う必要があるみたいですね。
SHARE_INFO_50構造体を使う時はこちらの関数ですよね?
OS毎に異なる処理をさせるのはあまり気が進まないので、この方法は諦めようかな~等と思案している所です。
何か良いアドバイスがありましたら宜しくお願いします<(_ _)>
No.2
- 回答日時:
間違っていたらすみません。
「通常使うプリンタ」に設定されている時に
Printer.DeviceName
で登録されている名前が取得できませんか?
Private Sub Command1_Click()
'MsgBox Printer.DeviceName
For Each pr In Printers
MsgBox pr.DeviceName
Next pr
End Sub
で登録されているプリンタの名前が取得できると思います。
ご回答ありがとうございます。
taisuke555さんゴメンナサイ!
私が今回使用したい機能は
「ネットワーク上に存在する(あるマシン上でネットワークインストールが可能な)プリンタの一覧を取得する」
ことなのです。
つまりこのPGが動作するマシン上にはプリンタがインストールされていない状態もありうるわけで。
まあ要するに前述したように、プリンタの追加ウィザードに出てくるような使用可能プリンタ一覧の情報、が取ってきたかったわけです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
エクセルのマクロでプリンタを指定したいのですが
Visual Basic(VBA)
-
エクセルVBAでのネットワークプリンタのポー名の取得方法は?
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの余白の塗りつぶし方法
-
同機種のプリンターを買った場...
-
エクセルの用紙サイズについて...
-
左右反転印刷は?
-
AS400プリンタセッション作成に...
-
Word印刷設定でB5サイズがでて...
-
通常使うプリンタを自動設定す...
-
個人でのレーザープリンター処...
-
SATOラベルプリンタM-48pro
-
ワードで背景を入れたのですが...
-
PDFの印刷が出来ません
-
めちゃくちゃに印刷されてしま...
-
EPSON CC600PXで...
-
職場にジロジロ見てくる女性が...
-
パソコンのウイルスはプリンタ...
-
マクロでプリンタ、用紙、給紙...
-
ネットワークプリンタの設定方法
-
アプリごとに通常使うプリンタ...
-
windows2000でネットワークプリ...
-
プリンターが見つかるのに、接...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
同機種のプリンターを買った場...
-
エクセルの余白の塗りつぶし方法
-
マクロでプリンタ、用紙、給紙...
-
左右反転印刷は?
-
印刷プレビューにない文字が印...
-
「指定したPPDは無効です」でプ...
-
印刷しようとすると「保存」が...
-
職場にジロジロ見てくる女性が...
-
エクセル ファイルごとのプリ...
-
複数のシートを一括で手差し→自...
-
エクセルの用紙サイズについて...
-
最近はいろいろなもので互換品...
-
プリンタをBluetoothで無線化し...
-
印刷作業が重い
-
太文字が印刷されない。
-
プリントサイズがつねにA3サイズ
-
アプリ毎にデフォルトのプリン...
-
印刷するときだけパソコンの電...
-
ワードで背景を入れたのですが...
-
印刷が途中のページで止まって...
おすすめ情報