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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.