◆プリンタ設定

「◆プリンタ設定」の編集履歴(バックアップ)一覧に戻る

◆プリンタ設定 - (2009/05/31 (日) 17:28:32) のソース

*情報
作者名: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()

----
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。