PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
9922 00/01/19 14:25:30 RE(2):PB6: レジストリからプリンタの一覧を取得→\"win.ini\"を書き換え、動的にプリンタを変更 By chooco
9918 00/01/18 19:27:55 RE(1):PB6: レジストリからプリンタの一覧を取得→\"win.ini\"を書き換え、動的にプリンタを変更 By M.M
9917 00/01/18 18:30:19 PB6: レジストリから登録されているプリンタの一覧を取得 By chooco

カテゴリ:PowerBuilderの開発環境
日付:2000年01月18日 19:27 発信者:M.M
題名:RE(1):PB6: レジストリからプリンタの一覧を取得→\"win.ini\"を書き換え、動的にプリンタを変更

choocoさん、こんばんは。

>レジストリからプリンタの一覧を取得しようと思っています。

>NTの場合は
>HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Devices
>だと、過去ログで見たのですが、95の場合はどこを見ればいいのでしょうか?

せっかくですからサンプルプログラム付きで情報公開します。
元々は、アシストのHPにあった情報なんですけどね。

OS:Windows 95/98
PB:V5.0.04で確認


[インスタンス変数]
String is_Printers[]


[登録されているプリンタの一覧を取得しddlbにセットする]
//初期設定
String SubKeyList[]
Integer Err
Long KeyMax,l

//レジストリから、登録されているプリンタの一覧を取得
Err = RegistryKeys(\"HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Print\\Printers\" &
,SubKeyList)

If Err=-1 Then
//エラー処理
MessageBox(\"エラー\",\"レジストリ値の取得に失敗しました。\")
Return
Else
//取得したKeyの個数を調べる
KeyMax = UpperBound(SubKeyList)
End If

//取得したキーをドロップダウンリストボックスに表示
For l=1 To KeyMax
ddlb_printers.AddItem(SubKeyList[l])
Next

//\"win.ini\"から各プリンタドライバの接続情報を取得
For l=1 To KeyMax
is_Printers[l] = ProfileString(\"win.ini\",\"Devices\",SubKeyList[l],\"\")
Next


[ddlbで選択したプリンタを出力先に設定]
//初期設定
Integer Err,ItemNo
Long KeyMax,l
String PrinterName

//プリンタ名からプリンタ接続情報を探す
PrinterName = ddlb_printers.Text
ItemNo = ddlb_printers.FindItem(PrinterName,0)

// Win.iniファイルの編集
Err = SetProfileString(\"c:\\windows\\win.ini\",\"Windows\",\"Device\",PrinterName+\",\" &
+is_Printers[ItemNo])
If Err=-1 Then MessageBox(\"エラー\",\"Win.iniファイル書き込み時にエラーが発生しました\")

// WM_WININICHANGEメッセージの送信
Send(65535,26,0,0)



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS Sybase SQL Server System 11
WebServer (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.