*情報 作者名:hihiro 引用元:[[なでしこプログラム掲示板「プリンタ設定」>http://www.himanavi.net/cgi/nade-bbs/cbbs.cgi?mode=al2&namber=901&rev=&no=0]] *概要 なでしこのプリンタ設定をプログラムから設定します。 *解説 【プリンタ設定用変数の用紙設定】に、【セクション名】を設定 【プリンタ設定変更関数】を呼ぶ 【プリンタの設定】ダイアログが表示され、 【設定.INI】の【セクション名】に設定されているプリンタ情報に設定します 出力(戻り)項目 【プリンタ設定用変数の用紙サイズ】に変更された用紙サイズ 【プリンタ設定用変数の給紙方法】に変更された給紙方法 【プリンタ設定用変数の用紙向】に変更された用紙の向き 【設定.INI】の【セクション名】に設定されたプリンタ情報を保存します タイマーを起動して、プリンタの設定ダイアログを表示して、 タイマーの割込みでプリンタの設定をしています プリンタ名は、プリンタ切替えがうまくできないので未使用です。 *本体 #以下、プリンタ設定プログラム########## ##################### # プリンタ設定ダイアログ監視タイマー # ##################### プリンタ監視タイマーとは、タイマー その値は、500 その時満ちた時は もし PRNの設定中=オフならば PRNの設定中は、オン プリンタ情報設定 PRNの設定中は、オフ PRNとは、プリンタ設定用変数 待機 ■プリンタ設定用変数 ・プリンタ名{文字列} #プリンタ設定ID=1136 ・用紙サイズ{文字列} #プリンタ設定ID=1137 ・給紙方法{文字列} #プリンタ設定ID=1138 ・用紙向{文字列} #用紙の向 縦、横 ・読込完了フラグ{整数} #プリンタ情報読込完了=オン ・設定中フラグ{整数} #プリンタ情報設定中=オン ・用紙設定{文字列} # ●プリンタ設定変更 プリンタ監視タイマーを開始 プリンタ設定 もし それ=はいならば プリンタ設定保存 ###################### #タイマーから呼び出されプリンタ設定を行う# ###################### ●プリンタ情報設定 Hとは、数値 #一時ハンドル プリンタ名Hとは、数値 #プリンタ名ハンドル ID=1136 用紙サイズHとは、数値 #用紙サイズハンドル ID=1137 給紙方法Hとは、数値 #給紙方法ハンドル ID=1138 項目一覧とは、文字列 #プリンタ設定ダイアログ項目一覧 Hは、「プリンタの設定」を窓ハンドル検索 もし H<>0ならば 項目一覧は、Hの窓ハンドル内列挙 項目一覧の3から1136を表ピックアップ プリンタ名Hは、それ[0,0] #プリンタ名Hは、GetDlgItem(H,1136) 項目一覧の3から1137を表ピックアップ 用紙サイズHは、それ[0,0] #用紙サイズHは、GetDlgItem(H,1137) 項目一覧の3から1138を表ピックアップ 給紙方法Hは、それ[0,0] #給紙方法Hは、GetDlgItem(H,1138) もし PRNの読込完了フラグ=オフならば PRNの読込完了フラグは、オン プリンタ設定読込 EnableWindow(プリンタ名H,0) #プリンタ名コンボを無効 #もし PRNのプリンタ名[0,0]<>「」ならば # プリンタ名HにPRNのプリンタ名[0,1]を窓ハンドル値設定 もし PRNの用紙サイズ[0,0]<>「」ならば 用紙サイズHにPRNの用紙サイズ[0,1]を窓ハンドル値設定 もし PRNの給紙方法[0,0]<>「」ならば 給紙方法HにPRNの給紙方法[0,1]を窓ハンドル値設定 もし PRNの用紙向=「横」ならば 項目一覧の3から1057を表ピックアップ それ[0,0]を窓ハンドルクリック 違えば 項目一覧の3から1056を表ピックアップ それ[0,0]を窓ハンドルクリック #PRNのプリンタ名は、アイテム取得(プリンタ名H) PRNの用紙サイズは、アイテム取得(用紙サイズH) PRNの給紙方法は、アイテム取得(給紙方法H) 違えば PRNの読込完了フラグは、オフ プリンタ監視タイマーを停止 #プリンタ設定項目のハンドルからアイテム名と値を ●アイテム取得(ハンドル) アイテム一覧とは、文字列 アイテム名とは、文字列 アイテム値とは、数値 アイテム一覧は、ハンドルを窓ハンドルアイテム取得 アイテム値は、ハンドルを窓ハンドル値取得 もし アイテム値>=0ならば アイテム名は、アイテム一覧\アイテム値 それは、「{アイテム名},{アイテム値}」 違えば それは、「"",{アイテム値}」 #プリンタ設定結果を保存 ●プリンタ設定保存 Hとは、数値 もし プリンタ用紙高さ>プリンタ用紙幅ならば PRNの用紙向は、「縦」 違えば PRNの用紙向は、「横」 「{母艦パス}設定.ini」のINI開く Hは、それ #Hで「{PRNの用紙設定}」の「プリンタ名」にPRNのプリンタ名をINI書く Hで「{PRNの用紙設定}」の「用紙サイズ」にPRNの用紙サイズをINI書く Hで「{PRNの用紙設定}」の「給紙方法」にPRNの給紙方法をINI書く Hで「{PRNの用紙設定}」の「用紙向」にPRNの用紙向をINI書く HのINI閉じる #プリンタ設定を読み込む ●プリンタ設定読込 Hとは、数値 「{母艦パス}設定.ini」のINI開く Hは、それ #PRNのプリンタ名は、Hで「{PRNの用紙設定}」の「プリンタ名」をINI読む PRNの用紙サイズは、Hで「{PRNの用紙設定}」の「用紙サイズ」をINI読む PRNの給紙方法は、Hで「{PRNの用紙設定}」の「給紙方法」をINI読む PRNの用紙向は、Hで「{PRNの用紙設定}」の「用紙向」をINI読む HのINI閉じる ●EnableWindow(H,B)=DLL("user32.dll", "BOOL EnableWindow(HWND hWnd,BOOL bEnable)") #プログラム ここまで###################### *//サンプルプログラム !変数宣言が必要 !母艦設計=「母艦の可視はオフ」 #ここからは、動作確認用プログラム###### 母艦のサイズは、「10,10,400,300」 母艦のテキストは、「プリンタ設定動作確認プログラム」 #ボタン作成 設定1ボタンとは、ボタン その位置は、「50,10」 その幅は、200 そのクリックした時は PRNの用紙設定は、「設定1」 プリンタ設定変更 設定1ボタンのテキストは、「{PRNの用紙サイズ\0,0} {PRNの用紙向}」 設定2ボタンとは、ボタン その位置は、「50,40」 その幅は、200 そのクリックした時は PRNの用紙設定は、「設定2」 プリンタ設定変更 設定2ボタンのテキストは、「{PRNの用紙サイズ\0,0} {PRNの用紙向}」 設定3ボタンとは、ボタン その位置は、「50,70」 その幅は、200 そのクリックした時は PRNの用紙設定は、「設定3」 プリンタ設定変更 設定3ボタンのテキストは、「{PRNの用紙サイズ\0,0} {PRNの用紙向}」 母艦の可視は、オン ---- - 転載ありがとうございます。私も@wiki使い始めたところです。 -- hihiro (2008-09-27 18:15:34) - こちらこそ転載させていただいてとても感謝ですー -- 管理人 (2008-09-30 21:34:32) #comment() ----