パーシモンシステム
LLL/Ajax

iii/win
このページは、1998年6月の『iii/Win Ver3.0』正式発売開始以降の改造履歴項目の一覧です。最新バージョンの入手をご希望のユーザー様はご連絡ください。
トリプル・アイ/Win Version3.0 発売以前の経歴
『iii/Win Ver3.01』での改造事項:1998年7月リリース
『iii/Win Ver3.02』での改造事項:1998年12月リリース
『iii/Win Ver3.03』での改造事項:1999年2月リリース
『iii/Win Ver3.04』での改造事項:1999年7月リリース
『iii/Win Ver3.05』での改造事項:1999年7月リリース
『iii/Win Ver3.06』での改造事項:1999年9月リリース
『iii/Win Ver3.07』での改造事項:1999年11月リリース
『iii/Win Ver3.08』での改造事項:2000年3月リリース
『iii/Win Ver3.09』での改造事項:2000年10月リリース
『iii/Win Ver3.10』での改造事項:2001年5月リリース
『iii/Win Ver3.20』での改造事項:2002年1月リリース
『iii/Win Ver3.26』での改造事項:2002年10月リリース
『iii/Win Ver3.27』での改造事項:2002年11月リリース
『iii/win Ver3.28』での改造事項:2003年5月リリース
『iii/win Ver3.29』での改造事項:2003年6月リリース
『iii/win Ver3.30』での改造事項:2004年12月リリース
『iii/win Ver3.31』での改造事項:2005年1月リリース
『iii/win Ver3.40』での改造事項:2005年6月リリース
『iii/win Ver3.41』での改造事項:2006年10月リリース
『iii/win Ver3.50』での改造事項:2007年3月リリース
『iii/win Ver3.51』での改造事項:2008年2月リリース
『iii/win Ver3.52』での改造事項:2009年8月リリース

『iii/win Ver3.60』での改造事項:2010年3月リリース    <=  以下 Windows7以降対応版

『iii/win Ver3.61』での改造事項:2010年7月リリース
『iii/win Ver3.70』での改造事項:2011年10月リリース
『iii/win Ver3.71』での改造事項:2011年11月リリース
『iii/win Ver3.72』での改造事項:2012年5月リリース
『iii/win Ver3.73』での改造事項:2013年9月リリース
『iii/win Ver3.80』での改造事項:2014年10月リリース
『iii/win Ver3.81』での改造事項:2014年10月リリース
『iii/win Ver3.82』での改造事項:2015年8月リリース
『iii/win Ver3.83』での改造事項:2015年12月リリース
『iii/win Ver3.84』での改造事項:2016年1月リリース

『iii/win Ver3.90』での改造事項:2016年3月リリース    <=  以下 Windows8以降対応版

『iii/win Ver3.91』での改造事項:2017年4月リリース
『iii/win Ver3.92』での改造事項:2017年6月リリース
『iii/win Ver3.93』での改造事項:2017年9月リリース
『iii/win Ver3.94』での改造事項:2019年8月リリース
『iii/win Ver3.95』での改造事項:2020年2月リリース
『iii/win Ver4.00』での改造事項:2020年5月リリース
『iii/win Ver4.02』での改造事項:2021年6月リリース

『iii/win Ver4.10』での改造事項:2022年12月リリース    <=  以下 Windows11対応版

『iii/win Ver4.20』での改造事項:2024年7月リリース



○トリプル・アイ/Win Version3.0 発売以前の経歴
1987年(昭和62年)
4月 「トリプル・アイ」正式販売開始
対応OS MS-DOS3.1
対応機種 Fujitsu FM16β/FMR(PanacomM)、NEC PC9801
対応言語 Lattice C、FBASIC、N88BASIC、Q-PRO4
5月 LIICOBOL、dBASEIII、Microsoft C インターフェース追加。
その後、IBM PS/55、NEC PC98ハイレゾモード機、HITACHI B16、OKI if800、NTT DATA BS21、AXマシン、DOS/Vマシン等へ対応機種拡張、コンソールインターフェースの提供ならびに、Borand TurboC、IBM BASIC、dBASEIV、Microsoft QuickBasic等、対応言語も順次追加

1990年(平成2年)
9月 「トリプル・アイ/2」正式販売開始
対応OS OS/2 1.21、1.3
対応言語 Micorsoft C、IBM C/2 、COBOL/2
その後、OS/2 2.x、OS/2 Warp、IBM Cset/2、VisualAgeC++等、順次32ビット環境へも対応拡大

1998年 (平成10年)
6月 『iii/win 3.0』正式販売開始

▲UP

○iii/Win Ver3.01での改造事項:1998年7月リリース
1. 文字の描画位置の微調整(PE、PSRUN)
2. キャレット関係のAPIの戻り値のチェックを緩和しました。
3. ラジオボタンへのUNLOCKコマンドを発行時の不具合修正。
4. プロセス終了時のPSRUNとCsiExecの連携の改善。

▲UP

○iii/Win Ver3.02での改造事項:1998年12月リリース
5. キャレット関係のAPIの戻り値のチェックの更なる緩和(PSRUN)
6. FkeyTextコマンドの引数に空白文字列を与えた場合の不具合修正。
7. 以前の親ウィンドウの位置とサイズを継承する機能の装備(PSRUN)
8. キーボード操作による入力終了イベント関係の拡充(PSRUN)
9. API MessageBeep() の戻り値チェックの廃止(PSRUN)
10. API EndPaint() の戻り値チェックの廃止(PSRUN)
11. PSDLI.Hでの頭に x のついたデータ型名の廃止
12. 起動パラメータ -Y6 指定に関係する問題への対処(PSRUN)
13. 日付と時間フィールドや電卓方式の入力時のカーソル形状の改善(PSRUN)
14. 起動パラメータ -U 指定時のシステム日付のセット機能の問題への対処(PSRUN)
15. DOS互換のPFキー定義パネル]での操作上の問題の対処(PE)
16. フィールドの試し表示内容がファイルに書き込まれてしまう問題の対処(PE)
17. ハードコピー機能の拡充(PSRUN)
18. PsCmd()関数をPSDLI.DLLに追加(SCDEBの書式でのコマンドの発行)
19. iii/Dosやiii/2で作られた一部破損画面ファイルへの対処(PE、PSRUN)

▲UP

○iii/Win Ver3.03での改造事項:1999年2月リリース
20. Windows98環境で一部の文字の左端が欠ける問題への対処(PE、PSRUN)
21. /FKEYや/FKEYNWの末尾の空白の無視(PSRUN)
22. PSDLI.HにPsCmd()の宣言を追加

▲UP

○iii/Win Ver3.04での改造事項:1999年7月リリース
23. 256色モードへの対応(PE、PSRUN)
24. Windows98環境でのPEのポップアップ、アクティブ状態不具合の対処
25. WindowsNT4.0サービスパック4での一部フォント左端が欠ける問題の対処
26. 一部のWindows95/98環境での選択バーの残痕が残る問題の対処

▲UP

○iii/Win Ver3.05での改造事項:1999年7月リリース
27. SET|WIN_ACTIVATEDコマンドによるメニューバーの問題への対処(PSRUN)

▲UP

○iii/Win Ver3.06での改造事項:1999年9月リリース
28. ボタンの色の指定
ラジオボタン、チェックボックス、3ステートチェックボックスの色指定
29. リストボックスの背景色の指定
30. スクロール関係の機能強化
(1)子ウィンドウ表示時の親ウィンドウのスクロール
(2)ボタンやリストボックスを持つ画面のスクロール
(3)サイズが自動的に伸縮するリストボックスの取扱い強化
(4)チャイルド・ウィンドウのスクロール
(5)チャイルド・ウィンドウと親ウィンドウの自動的な二重スクロール
31. 問題点の対処
(1) 最大化状態の親画面の上にチャイルドウィンドウを出す場合の問題(PSRUN)
(2) iii/2の画面ファイル内の罫線が一部、表示されない(PSRUN)
(3) ディスエーブル状態のメニュー項目のアクセラレータが一般保護違反を生じる(PSRUN)

▲UP

○iii/Win Ver3.07での改造事項:1999年11月リリース
32. 画面関係のWindowsAPIを直接使用するために(PSRUN)
(1)QUERY|WIN_HANDLEコマンド:iii/Winで作成したウィンドウハンドルを取得
(2)PsCallFunc関数:アプリケーションの関数をPSRUNのスレッド内で実行
(3)C言語サンプルGDI01.C:グラフィック描画処理サンプルのリリース
33. 英語版のトリプル・アイ(※個別対応でリリース)
34. その他の改造事項
(1) タイトルバーのダブルクリック時の対応変更(PSRUN)
(2) 最大化時のタイトルバーのドラッグを無視(PSRUN)
(3) 重なったチャイルドウィンドウに対するWIN_ACTIVATEDによるZオーダー変更(PSRUN)
(4) 最大化時に表示内容のセンタリングをしない指定の追加(PSRUN)
(5) 強制的にスクロールバーを付けない指定の追加(PSRUN)
(6) フィールドがボタンに被る事(3.06)の対策(PSRUN)

▲UP

○iii/Win Ver3.08での改造事項:2000年3月リリース
35. メッセージ表示に関する機能の全面的な再構築(PSRUN)
メッセージ表示関係の機能について、大幅な拡充と機能強化を行いました。
以下のコマンド及び関数が追加されています。
コマンド C関数 機能
MsgBox PsMsgBox() メッセージボックスを表示します。
MsgPanel PsMsgPanel() メッセージパネルを表示します。
MP_RESULT MP_RESULT メッセージパネルの終了コードを取得します。
PsError PsError() エラーメッセージを表示します。
PsAlarm PsAlarm() アラームメッセージを表示します。
LinePut LinePut() 指定の行にメッセージを表示します。

以下のコマンド及び関数は、iii/dosやiii/2との互換性実現を主眼として機能強化されました。
コマンド C関数 機能
YNSelect Pschgt() 入力許可文字のどれかを選択します。
PUT|/Ynn Pssput("/Ynn", 指定行またはメッセージパネルに表示します。

以下のコマンド及び関数は従来と変わりません。iii/dosやiii/2との互換性は、従来から実現できていました。
コマンド C関数 機能
ERROR pserr() エラーメッセージを表示します。
ALARM psalrm() アラームメッセージを表示します。
36. 罫線機能の強化
(1)8種類の3D罫線を追加しました。
(2)罫線の太さ分を座標の内側に描く。
(3)「罫線と選択項目の属性設定」のパネルの色をその時の背景色と同じにしました。
37. ウィンドウ枠線として新たに3種類の3D枠線を追加しました。
38. 新ウィンドウの生成後に以前のウィンドウを破壊する機能(PSRUN)
iii/2にも存在する!WDを正式機能としてサポートしました。
39. アプリケーションの強制終了に関する機能整備(PSRUN)
40. その他の改造事項
(1) 画面ファイルを検索すためのパス領域の拡張(PSRUN)
(2) 太い斜めの罫線の終端の処理を改善(PE、PSRUN)
(3) 行間スペースや文字間スペースが大きい場合の問題の解消(PE)
(4) 行間スペースの値の拡大(PE)
(5) アプリケーションの終了後アクティブなウィンドウがなくなる問題への対処(PSRUN)

▲UP

○iii/Win Ver3.09での改造事項:2000年10月リリース
41. 文字の描画位置の微調整(起動パラメータ/Z)(PSRUN)
全ての文字の描画位置を一律に微調整することができます。
42. 起動パラメータ!S の追加(PSRUN)
個々の画面ファイルが持っている属性のうち、[文字間のスペースのドット数]と[行間のスペースのドット数]と[ウィンドウの端の余白のドット数]の属性を実行時に一律にオーバーライド(強制設定)する機能です。
43. ウィンドウにアイコンを設定する機能が追加されました。(PSRUN)
44. ファイルとディレクトリの履歴(PE、PSRUN)
最近使ったファイルやディレクトリの履歴情報を管理するようになりました。
45. スクリーン・デバッガ SCDEB の機能が強化されました。(PSRUN)
46. その他の改造事項
(1)画面のハードコピーを印刷する時の用紙方向の制御の改善(PSRUN)
(2)Windows2000の"FixedSys"フォントの文字描画位置の補正(PE、PSRUN)
(3)ラジオボタンを持つウィンドウの終了時の問題対処(PSRUN)

▲UP

○iii/Win Ver3.10での改造事項:2001年5月リリース
47. VisualBasic用のインターフェースの提供
VisualBasic用インターフェースはC言語用インターフェースと一緒に提供されます。また、iii/winコマンドを実行するためのVisualBasic用のプロシージャの名前や機能は、C言語用インターフェースの関数と同じになっています。このため、C言語でiii/winを使った経験のある方は非常に容易に、iii/winを使うVisualBasicアプリケーションを開発することができます。
48. AssertErrorやFatalErrorを暫定的に無視する起動パラメータ-EA(PSRUN)
意図的に暫定的使用として表記エラーを無視することができます。このパラメータは不用意に使用しないでください。
49. 起動パラメータ!WDの効果(PSRUN)
以前の親画面が子画面を持っている場合でも有効としました。
50. タイトルバーに移行する行をウィンドウ内から除去しないモード(PSRUN)
!Tパラメータに'R'オプションを追加しました。これにより「タイトルバーに移行する行をウィンドウのクライアント領域内から除去しない」ことを指示します。
51. その他の改造事項
(1)チャイルドウィンドウ表示中もクローズ操作を有効にする(PSRUN)
(2)印刷を中止した際に"AssertError"が出るという問題の対処(PSRUN、PE)
(3)C言語I/Fのpsergt()の機能をiii/2互換からiii/dos互換に変更(PSRUN)
(4)3.09における複数プロセスの同時画面表示時に稀にでるエラーに対処(PSRUN)
(5)コンソールI/F使用時のマウスポインター形状変更時間の妥当性(PSRUN)
(6)画面ハードコピーのシークレットフィールド印刷の禁止(PSRUN)

▲UP

○iii/Win Ver3.20での改造事項:2002年1月リリース
52. リストボックスが入力フォーカスを持つときF10キーが効かないという問題への対処(PSRUN)
従来のバージョンには以下の問題がありました。
リストボックスが存在する画面を表示しているとき、リストボックスが入力フォーカスを持っている間はファンクションキーのうちF10キーが全くききませんでした。この現象はF10キーを入力終了イベントとして利用する場合とメニューバーのアクセラレーターキーとして利用する場合の両方で生じていました。今回のバージョンでこの問題を解消しました。
53. WindowsXPへの対応(PSRUN、PE)
iii/winをWindowsXP上でご利用いただく場合、従来のバージョンでは以下の問題点がありました。
iii/winのウィンドウを表示した状態のままで[ユーザーの切り替え]を行った場合およびスタンバイ状態からの復帰を行ったとき、"AseertError"が発生していました。今回のバージョンでこの問題を解消いたしました。なお、WindowsXP上でご利用いただくうえで他に問題点はありません。
54. 起動パラメータの指定方法の拡充(PSRUN)
PSRUNへの起動パラメータの指定方法が拡充され、より便利になりました。
(1) コンソールインターフェースを利用するCOBOLなどのアプリケーションの場合
従来はPSRUN.EXEのコマンドライン引数として起動パラメータを直接記述していました。今バージョンでこの方法に加えて、起動パラメータをあらかじめテキストファイルに記述しておけるようになりました。起動パラメータを格納しているファイルのパス名は下のように@符号を用いて指定します。

Psrun @IW3.INI !E MyProg.Exe

これにより、起動パラメータの記述を特定のファイルに集約でき、またコマンドラインの記述を簡潔にすることができます。また、起動パラメータを持つファイルを複数用意しておけばアプリケーションプログラムごとに起動パラメータを使い分けるということも可能です。以上と同様のことはSCDEBを使う場合にも指定可能です。
(2) C言語やVisual Basic のアプリケーションの場合
従来はPSRUNへの起動パラメータを III2.INI という名前のテキストファイルに格納していました。今バージョンでは任意の名前のテキストファイルに起動パラメータを格納できるようになりました。そして、そのファイルのパス名は PsIniFile関数で指定します。これにより、起動パラメータを持つファイルを複数用意しておけばアプリケーションプログラムごとに起動パラメータを使い分けることが可能になりました。

▲UP

○iii/Win Ver3.26での改造事項:2002年10月リリース
55. タイトルバーやシステムメニューが無い画面でのフィールド入力時のエラー(PSRUN)
従来のバージョンには以下のような問題がありました。今バージョンでこの問題に対処しました。タイトルバーを持たないウィンドウかまたはシステムメニューボックスを持たないウィンドウを表示しているとき、フィールドでの入力中にALTキーを押してしまうと、そのフィールド入力の終了時にAssertエラーを生じる。
56. PsCmd()でコマンドを発行している場合のエラー(PSRUN)
PsCmd()は各種のコマンドをSCDEBコマンドの書式で発行するためのC言語用の関数です。psinit()やpsscrn()などの普通のC言語用インターフェースをお使いの場合は本件とは全く無関係です。従来のバージョンには以下のような問題がありました。今バージョンでこの問題に対処しました。
PsCmd("INIT|C")を最初に実行しているにもかかわらず、"イニシャライズができていない"との意味のエラーメーッセージが出る。
57. Windows XP サービスパック1適用でのAssertエラー(PSRUN、PE、CSIEXEC)
Windows XPにサービスパック1を適用した場合、従来のバージョンでは以下のような問題が発生します。稀ですが、Windows XPのマイナーバージョンによってはサービスパック1を適用しなくても発生する場合もあります。今バージョンでこの問題に対処しました。
(1) 画面フォームエディター PE において各種の設定用ウィンドウを開こうとしたとき、Assert()エラーを生じる。
(2) コンソールインターフェースを使うアプリケーションの起動時にAssert()エラーを生じる。
58. PEにおける[子ウィンドウの表示位置の指定]機能の若干の変更(PE、PepWinXY.Scr)
PEにおける[子ウィンドウの表示位置の指定]機能に関して以下の変更を行いました。
(1) X座標の指定値が従来は2桁まででしたが、これを3桁までとしました。
ご注意:画面ファイル PepWinXY.Scrも新しいものをお使いください。
(2) 定義内容を印刷したとき、番号が0番からではなく1番から始まるようにしました。
59. Windows XP上でのIMEのフォントに関する改善(PSRUN)
Windows XP上では、IME(かな漢字変換ウィンドウ)のフォントに関して従来は以下のような問題がありました。今バージョンでこの問題に対処しました。
(1) ディフォルトのフォント(FixedSys)を使っているとき、フィールド入力時にかな漢字変換を行うと未確定文字列のフォントが一回りだけ大きい。(そのPSRUNで表示する最初のウィンドウの場合だけこうなります。)
(2) SCDEBでコマンドとパラメータの入力を行うとき、かな漢字変換を行うと未確定文字列のフォントが正しくない。
60. IMEの未確定文字列の表示位置の修正(PSRUN、PE)
従来のバージョンには以下のような問題がありました。今バージョンでこの問題に対処しました。ディフォルトのフォント(FixedSys)を使っているとき、IME(かな漢字変換ウィンドウ)上に表示される未確定文字列の上下位置が1ドットだけ違っている。

▲UP

○iii/Win Ver3.27での改造事項:2002年11月リリース
61. 複数ページの印刷を1つの印刷ジョブにまとめる機能(PSRUN)
実行時の画面ハードコピー機能(帳票の印刷機能)を拡充し、HcOpenコマンドとHcCloseコマンドを追加しました。これにより次のようなメリットが得られます。
(1) 連続する複数のページ印刷を1つのジョブにまとめることができ印刷作業のパフォーマンスが大きく改善します。
(2) 印刷先のプリンターの名前をプログラムから指定できます。目的に応じて複数のプリンターを使い分けられます。なお、この機能強化は既存アプリケーションプログラムとの互換性に影響するものではありません。
62. キャノンの一部の機種でのハードコピー印刷の位置ズレの問題の回避(PSRUN)
LBP-1110などのキャノンの一部の機種のプリンタドライバに問題があり、B5の用紙に横向き(LS=1の指定)で画面のハードコピーの印刷を行うと、印刷位置がズレるという問題がありました。今バージョンでこの問題を回避しました。

▲UP

○iii/win Ver 3.28 での改造事項:2003年5月リリース
63. HcOpenコマンドのパラメータの末尾の余分な空白の無視 (PSRUN)
HcOpenコマンドのパラメータ(プリンタ名)の末尾に余分な空白文字列が付加されていた場合、従来のバージョンではプリンタをオープンすることができませんでした。
今回のバージョンから末尾に余分な空白があっても無視されますのでプリンタを正常にオープンできます。
64. ウィンドウが最小化状態の時のSELECTやINPUTコマンドの問題に対処 (PSRUN)
従来のバージョンには以下のような問題がありました。
ウィンドウが最小化状態である時にSELECTコマンドかINPUTコマンドを発行すると、その後ウィンドウのサイズを元に戻したとき内容が予期しない位置にスクロールしている。
今バージョンでこの問題に対処しました。

▲UP

○iii/win Ver 3.29 での改造事項:2003年6月リリース
65. 起動パラメータ !WI 指定時にウィンドウサイズが僅かに増大する件の対処 (PSRUN)
起動パラメータ !WI指定とSCREENコマンドのIオプション指定は、SCREENコマンドで新たなウィンドウを表示する際に以前のウィンドウの位置とサイズを継承するという機能ですが、従来のバージョンには以下のような問題がありました。

  新たなウィンドウの高さ(縦のサイズ)が以前のウィンドウの高さよりもごく僅かだけ大きくなる。
従って、SCREENコマンドを何度も繰り返す場合はこの高さの増大が目立って来ます。

ただし、この問題はWindows 95や 98や MEでは全く問題がありません。
今バージョンではこの問題に対処するために、起動パラメータ !WにXオプション指定を新たに追加しました。
Windows 95,98,ME 以外のWindowsの上で実行する場合で、しかも 起動パラメータ !WI指定かまたはSCREENコマンドのIオプション指定を行う場合には、起動パラメータ !WにX指定を付加してください。(例:!WIX)

なお、Windows 95,98,ME上では 起動パラメータ !WIを指定する必要はありませんが、指定しても支障はありません。

また別の問題として、起動パラメータ !WIを指定すると、Windows NTや2000や2003では言語バーの表示(IMEの表示)がおかしくなる場合があります。その場合は言語バーをタスクバー内に入れれば問題は解消する筈です。
(万一、それでもなお言語バーの表示がおかしいという場合は、起動パラメータ !WIの指定をあきらめていただくしかございません。これは Windows OSまたはIMEに内在する問題でありいかんともし難い事柄です。)
Windows XPではこの問題は解決されています。

▲UP

○iii/win Ver 3.30 での改造事項:2004年12月リリース
66. ディスエーブル状態のメニューバー項目のクリックでコマンド実行が停止することの対策 (PSRUN)
従来のバージョンには以下のような問題がありました。
メニューバー上のメニュー項目がディスエーブル状態であるとき、何らかのiii/winのコマンドの実行の最中にたまたまそのディスエーブルなメニュー項目をクリックするとそのiii/winコマンドは実行停止状態になる。そのため、そのiii/winコマンドを発行したアプリケーション・プログラムも停止状態になる。
こういう状態になった場合には、クライアント領域内のどこかをマウスでクリックすると実行を再開できます。また、マウス操作によりウィンドウを少しでも移動させても実行を再開できます。

データあるいはメッセージを連続して間断なくフィールドにPUTしているような場合にこの問題に遭遇しやすくなります。
なお、サブメニュー面上のメニュー項目については全く支障がありません。また、メニューバー上のメニュー項目であってもディスエーブル状態でなければ問題はありません。あくまでもメニューバー上のメニュー項目がディスエーブル状態であるときの問題です。
本件はWindows OSに内在する問題が原因です。今バージョンではこの問題を回避できるように対策しました。

但し、以下の現象だけは残ります。
メニューバー上のメニュー項目がディスエーブル状態であるとき、INPUTなどの入力コマンドの実行の最中にたまたまそのディスエーブルなメニュー項目をクリックするとキャレットのブリンクが停止する。
こういう状態になった場合には、何かキーを押すかまたはクライアント領域内のどこかをマウスでクリックすると入力作業を再開できます。

これには回避策が無く、いかんともし難い事柄ですのでご理解をお願い申し上げます。

▲UP

○iii/win Ver 3.31 での改造事項:2005年1月リリース
67. メニューバー上のメニュー項目を数多く変更する際のちらつき防止策 (PSRUN)
メニューバーの描画処理は Windows 98やMEでは非常に素早く行われますが、Windows XPでは少々時間がかかります。このため、メニューバー上のメニュー項目(トップレベルメニュー項目)の内容を一度に数多く変更するとWindows XPではメニューバーが描画のためにちらついて見苦しく感じられます。
このような場合の対策として、今バージョンで SET|MB_DRAW コマンドを追加しました。これは メニューバーの描画の抑制とその解除を指示するものです。このコマンドを使えば、メニューバー上のメニュー項目の内容をたくさん変更する場合でもメニューバーの実際の描画処理を1回だけにまとめることができます。

▲UP

○iii/win Ver 3.4 での改造事項:2005年6月リリース
68. コピー&ペースト機能のサポート (PSRUN)
クリップボードとの間でテキストのコピー&ペーストを行う機能を全面的にサポートしました。
これに伴い、今回のバージョンには従来に比べて以下のような差異があります。(プログラミングに悪影響を及ぼすような非互換性はありません。)

(1)コピー&ペースト機能を装備しています。
テキストの選択やコピー&ペーストの操作方法はWindowsの標準的な操作方法に則っています。

(2)Ctrl+A, Ctrl+X, Ctrl+C, Ctrl+V はコピー&ペーストの操作に使われるキー操作です。
これらのキー操作をメニューテンプレートのアクセラレータとして設定している場合はアクセラレータの方が優先して働きます。従って、それでは困るという場合はアクセラレータの設定を変えていただく必用があります。
サンプル画面のUri122.Scrがまさにこの事情に該当します。従来のUri122.Scrでは[商品]のメニューテンプレート定義の中でCtrl+A, Ctrl+C, Ctrl+Xをアクセラレータとして設定していますので、この従来の画面でコピー&ペースト機能をお試しいただく場合はこれらの設定を外してください。もしくは、本バージョン以降とともにリリースされるUri122.Scrをお使いください。

(3)フィールドで入力をしているときのHomeキーとEndキーの動作を整理しました。
Home: カーソルをフィールドの左端に移動します。
End : カーソルをフィールドの右端に移動します。ただし、そこがそのフィールド内の文字列の末尾より右であれば文字列の末尾の隣に移動します。
(ただし、日付・時間フィールドや電卓方式入力の場合はこの限りではありません。)

(4)マウスポインターの形状が変わります。
従来: 常に矢印形です。
今回: いずれかのフィールドの中にあるときはIビーム形(縦棒)になります。フィールドの外では矢印形になります。

(5)マウスの左ボタンのクリックによって入力対象を別のフィールドに移したときの最初のカーソル位置が異なります。
従来: フィールドの左端にカーソルが置かれます。
今回: マウスでクリックした位置にカーソルが置かれます。ただし、そこがそのフィールド内の文字列の末尾より右であれば文字列の末尾の隣に置かれます。
(ただし、日付・時間フィールドや電卓方式入力の場合はこの限りではありません。)

(6)そのとき入力中であるフィールドの中をマウスの左ボタンでクリックしたときのカーソルの移動位置が若干異なります。
従来: マウスでクリックした位置にカーソルが移動します。
今回: マウスでクリックした位置にカーソルが移動します。ただし、そこがそのフィールド内の文字列の末尾より右であれば文字列の末尾の隣に移動します。
(ただし、日付・時間フィールドや電卓方式入力の場合はこの限りではありません。)

(7)マウスの右ボタンをクリックしたときの動作が異なります。
従来: イベント番号181が無効であれば何も動作は起こりません。イベント番号181が有効であれば入力を終了します。次に、INPUT|/NEXTを実行しても入力対象フィールドは移動しません。
今回: イベント番号181が無効であればマウスの左ボタンのクリックと全く同じ動作をします。INPUTコマンドが返すレスポンスも左ボタンクリックの場合と同じです。
イベント番号181が有効であれば従来と全く同じ動きをします。
イベント番号181はディフォルトでは、従来も今回も無効です。

(8)マウスの右ボタンを押し下げた後で解放したときにポップアップメニューが表示されます。そして、コピー&ペーストの操作項目を選んで実行することができます。

(9)新たに SET|FLD_SELECTEDコマンドが追加されました。これはフィールド入力の開始時にそのフィールド内の全文字列を自動的に選択された状態にすることを指示します。
69. コンソールインターフェースを利用するアプリケーションの終了をより的確に検知する (PSRUN)
コンソールインターフェース経由で PSRUNを利用しているとき、本来はアプリケーションのプロセスが終了するとPSRUNのプロセスも自動的に終了するようになっています。
しかし、従来のバージョンには以下のような問題がありました。

アプリケーションが INPUTなどの入力コマンドを発行したまま その完了を待たずに終了してしまった場合、つまり入力コマンドの実行の最中にアプリケーションのプロセスが終わってしまった場合には、PSRUNはそれを検知できないため PSRUNのプロセスが存続したままになる。そのとき表示しているウィンドウもそのまま残る。
今バージョンではこの問題に対処しました。PSRUNプロセスは常にアプリケーションの終了と共に終了します。
70. 最後にクリックされたボタンの名前の取得 (PSRUN)
コマンド QUERY|BTN_CLICKED を追加しました。
このコマンドは最も最近にクリックされたボタンの名前を返します。
1つのウィンドウ上に非常に多くのボタンを配置するような場合に有用です。

▲UP

○iii/win Ver 3.41 での改造事項:2006年10月リリース
71. 「コンソールインターフェースを利用するアプリケーションの終了をより的確に検知する機能」の抑止 (PSRUN)
起動パラメータ !3 を追加しました。
Ver.3.40で実施した改造項目69.の機能を働かせると、プロセスが起動できなくなったり、またはコマンドプロンプト画面の表示が画面上に残るなどの障害が稀に発生するケースがあることが分かりました。
これは、Windows操作の自動化ユーティリティなど一部の特定のプログラムとの相性が悪いことが原因です。そのような事態が生じた場合は、起動パラメータ !3によって改造項目69.の機能を強制的に無効にすることができます。
72. 「コピー&ペースト機能のサポート」の機能強化の副作用(OFFSETコマンド)への対策 (PSRUN)
Ver.3.40において実施した「コピー&ペースト機能のサポート」の機能強化に副作用があることが分かりました。 このため、OFFSETコマンドに特殊フィールド名 /MOUSEnを与えて、マウスのボタンがクリックされた位置の情報を取得する際に、不正な値(たとえば -1など)が返されます。
本バージョンでこの問題に対処しました。
この問題はVer 3.40で発生した問題であり、それ以前のバージョンでは発生しません。

▲UP

○iii/win Ver 3.50 での改造事項:2007年3月リリース
73. 略号選択時にのみロック状態を無視するモード (PSRUN)

(1) 起動パラメータ /L を与えないとき(従来からの動作モードです)
ロックされている選択項目は、いかなる手段を用いても選択できません。

(2) 起動パラメータ /L を与えるとき(Ver 3.50での追加機能です)
選択項目を略号のキー入力で選択するときだけ選択項目のロック状態を無視します。 つまり、ある選択項目がロックされていても選択略号をキー入力すれば選択できます。 一方、マウス操作や矢印キーとEnterキーの押し下げという手段ではロックされている選択項目は常に選択できません。
74. マウスカーソルの形状変更の抑制 (PSRUN)

(1) 起動パラメータ /Q を与えないとき(従来からの動作モードです)
PSRUNはマウスカーソルが動く都度、常にマウスカーソルの形状を設定します。 マウスカーソルがフィールドの上に存在するときはビーム型(縦棒型)になります。 それ以外の場所では矢印型になります。

(2) 起動パラメータ /Q を与えるとき(Ver 3.50での追加機能です)
「マウスカーソルが矢印型である方が視認しやすいので常にそうしたい」とか、「アプリケーション側で独自にマウスカーソルの形状を管理したい」などのご要望にお応えする機能です。 PSRUNは、新たにウィンドウを生成した直後に1回だけマウスカーソルの形状を矢印型に設定します。それ以外のときにはマウスカーソルの形状を設定しません。
※ マウスカーソルの形状が何であれ、マウスによるクリップボードへの文字列のコピー、カット&ペーストの機能は普通に行えます。
※ アプリケーションからマウスカーソルの形状を設定するためのC言語のコード例を添付しています。

75. 任意のWindowsメッセージを捕らえる機能(PSRUN)

現在のウィンドウ宛に送られてきた任意のWindowsメッセージを捕らえる機能です。
下記のような用途が考えられます。

(1) タイマー機能(WM_TIMERメッセージ)を利用する。

(2) 他のプロセスがPostMessage()で送った、アプリケーション定義のメッセージ(WM_USER+n)を捕らえる。 簡単なプロセス間通信になります。 注意:WM_USER+0x1800 から WM_USER+0x18FF は、iii/Winが使いますので避けてください。

(3) トリプルアイがサポートしていないWindowsメッセージをアプリケーションが独自に処理する。 例えば、WM_MOUSEWHEELなど。
この機能を実現するために、新たなイベント番号 185と、新しいコマンド psset("WIN_MSG_TRAP")およびPsCmdBin("MsgCache")を追加しました。
また、C言語のサンプルコードを添付しています。


▲UP

○iii/win Ver 3.51 での改造事項:2008年2月リリース
76. 新たなうるう年判定モードの起動パラメータ /U5 を追加(PSRUN)

日付フィールドでの入力処理において 2月の日の値の範囲をチェックするときに、うるう年が影響します。
起動パラメータ /Un は、年の項の桁数が2桁である場合に年の値の意味をどのように解釈するか(西暦か昭和か平成か)を指定するものです。
(年の項の桁数が4桁である場合は、起動パラメータ /Un は効力を持たず、常に西暦であると解釈されます。)

Psrunの Ver 3.51において、新しい指定値 /U5 を追加しました。
/U5を指定すると、年の項の桁数が2桁である場合、常に平成の年であると解釈します。

従来から存在した /U0、/U1、/U2、/U3、/U4 の指定の意味に変化はありません。

 (関連情報) トリプル・アイ /Ux パラメータ及び閏年判定の詳細



▲UP
○iii/win Ver 3.52 での改造事項:2009年8月リリース
77. Ver 3.30での改造事項を無効にするオプション (PSRUN)

(1) Ver 3.30以前のPSRUNには以下のような問題がありました。
「メニューバー上のメニュー項目がディスエーブル状態であるとき、 何らかのiii/winのコマンドの実行の最中に、たまたまそのディスエーブルなメニュー項目をクリックすると、 そのiii/winコマンドは実行停止状態になる。
そのため、そのiii/winコマンドを発行したアプリケーション・プログラムも停止状態になる。
こういう状態になった場合には、クライアント領域内のどこかをマウスでクリックすると実行を再開できます。
データを連続して間断なくフィールドにPUTしているような場合などにこの問題に遭遇しやすくなります。
なお、サブメニュー面上のメニュー項目については全く支障がありません。
これはWindows OSに内在する問題が原因です。」

(2) Ver 3.30で、上記の問題を回避できるように対策を施しました。
詳しくは、 Ver 3.30 での改造事項(2004年12月リリース)の説明をご参照ください。

(3) ところがこのたび、このVer 3.30での改造事項により、以下のような副作用が生じる事が判明しました。
「psinpt("/fkeynw")を使っているとき、マウスによるメニュー項目のクリック操作を、非常に捕捉できにくい。
つまり、マウスによるメニュー項目選択のイベントが発生しにくい。
ただし、PFキーの押し下げによるイベントは正常に発生する。」

(4) このため、PSRUN Ver 3.52では、新たな起動パラメータ -3 を設けました。
起動パラメータ -3 が指定されている場合は、Ver 3.30での改造事項を無効にします。
従って、上記(3)の問題は無くなりますが、上記(1)の問題は顕在化します。

起動パラメータ -3 が指定されていない場合は、Ver 3.30での改造事項が働きます。
従って、上記(1)の問題は無くなりますが、上記(3)の問題は顕在化します。

以上の問題の本質的な原因はWindows OSの機構的な問題であるため、このような二者択一的な状況は致し方のないことです。

78. クリップボードとの間でテキストのコピー&ペーストを行う機能を無効にするオプション (PSRUN)

(1) PSRUN Ver 3.52では、新たな起動パラメータ -4 を設けました。
起動パラメータ -4 が指定されている場合は、クリップボードとの間でテキストのコピー&ペーストを行う機能が全面的に働きません。
また、マウスの右ボタンのクリックによって表示されていたポップアップメニューも、いっさい表示されなくなります。

(2) セキュリティ上の考慮などから、コピー&ペースト機能が好ましくない場合は、起動パラメータ -4 をご利用ください。



▲UP

○iii/win Ver 3.60 での改造事項:2010年3月リリース
79. Windows7 対応 (PSRUN)(PE)

(1)iii/Win Ver 3.60 は、 Windows 7 対応版です。
Windows 7 の 64Bit版と32Bit版の両方でお使いいただけます。

(2)Ver 3.60としてリリースいたしますのは、PSRUN と PE のみです。
言語インターフェースは従来のバージョンのままで、お使いいただけます。

(3)既存のアプリケーション・プログラムは、そのままでお使いいただけます。
ソースコードの変更や、再コンパイル、再ビルドの必要はありません。
起動パラメータの与え方も従来どおりです。

(4)Ver 3.60は、Windows 7 対応ということ以外には、改造点や機能強化などはありません。
機能的には前バージョンの Ver 3.52 と同じです。

(5)Ver 3.60は、稼動するOS のバージョンによって内部の処理を分岐していますので、Windows 7 より以前の Windows OSでも使えます。

(6)従来のバージョンを、Windows 7 上で使用すると以下のような致命的な問題が生じます。(これ以外にも、幾つかの問題があります。)
※ 下記の①と②の問題は、Windows 7 の英語版やフランス語版では発生しません。Windows 7 の日本語版や韓国語版では発生します。

① アプリケーションの実行中、画面遷移の際に(新たな親ウィンドウを表示しようとするときに)、 PSRUN または アプリケーションのプロセスが突然、活動停止となり、そのプロセスが消滅するという現象が多々、発生します。
このとき Windows 7 は、「○○○.EXEは活動を停止しました」とのメッセージを出します。
これは、ご使用の言語の種類に関わりなく発生します。

② PE の実行中に、各種の子ウィンドウを何度か開こうとするとき、PSRUN が突然、活動停止となり、以降、PEでの操作の続行が不可能となります。

③ エクスプローラーから、PE を起動することができません。(Assertエラーのメッセージボックスが表示されます。)

④ ショートカットから、COBOLアプリケーションを起動することができません。(エラーのメッセージボックスが表示されます。)

(7)この Ver 3.60でも、Windows 7 で運用したときに、下記のような問題が生じる場合があることが報告されています。
これについては、対応策が準備してございますので、お手数ですがご連絡をお願いします。
(個別に状況をよくお聞きした上で、個別に対応させていただきます。)

症状例:コンソールインターフェースを用いるCOBOLアプリケーションにおいて、各アプリケーションを起動するメインメニュー画面を Visual Basic などで独自にお作りになっているような場合に、 アプリケーションの実行そのものは全く正常なのだが、アプリケーションの終了後に、メインメニュー画面にうまく戻ることができない。
このとき、タスクマネージャー上にPSRUNが残ったままになっている。



▲UP


○iii/win Ver 3.61 での改造事項:2010年7月リリース
80. プログラムからフィールドを部分的に着色できる機能を追加しました。(PSRUN)

本機能はFColorコマンド(PsFColor())にパラメータを2つ追加可能とすることで実現しています。

FColor|フィールド名|X|W|前景色|背景色
PsFColor(char* フィールド名とXとW, int 前景色, int 背景色);

   X : 着色開始桁位置(フィールド左端を0) <= 今回追加したパラメータ
   W : 着色文字数              <= 今回追加したパラメータ

例:PsFColor("Hinmei|12|4",112,103);

今回追加したオプションパラメータ X と W を指定しない場合の FColorコマンド(PsFColor())の動きは従来通りです。

指定したフィールドの末尾を超える文字数を W に指定しても超えた分は無視しますので、隣のフィールドが着色されることはありません。
本機能は、MLFやサブフィールドを持つフィールドには適用できません。
本機能は、PsFcolorN()には適用できません。

配列フィールドの場合は、PsFColor("Hinmei03|12|4",112,103); などとしてください。

本機能により部分着色されたフィールドに対し、

psiquery("FF_Color","","");
psiquery("FB_Color","","");

を実行した場合は、両者ともその時点における、そのフィールドの先頭位置(左端位置)の色を返します。

▲UP

○iii/win Ver 3.70 での改造事項:2011年10月リリース
81. 任意のフォントでのテキスト表示(PSRUN)

DrawText コマンド(PsDrawText() 関数)を追加しました。

これにより、テキストを任意のフォントと任意の色を用いて指定の場所に表示できます。 複数行にわたる表示も可能です。また、適切なフォントサイズの自動選択や上下左右の 配置方法の指定やはみ出しの指定などの諸機能も備えています。さらに、既存の表示内 容の更新や削除も簡単に行えます。

「書式」

コマンド
  DrawText| テキスト| フォント|X 座標|Y 座標| 幅| 高さ|
         文字色| 背景色| オプション機能


C 関数
  void PsDrawText(char* テキスト, char* フォント,
              int X 座標, int Y 座標, int 幅, int 高さ,
              int 文字色, int 背景色, char* オプション機能);

「用例」

COBOL
   Display "DrawText|在庫照会|MS 明朝(27)|3|1|22|3|21|110|1CV"

C 言語
   PsDrawText("在庫照会", "MS 明朝(27)", 3,1,22,3,21,110,"1CV");

レスポンス   なし

パラメータ、注意事項、その他、詳しくは、ユーザーズマニュアル の説明を参照してください。


82. イメージ(画像)の表示(PSRUN)

DrawImage コマンド(PsDrawImage() 関数)を追加しました。

これにより、BMP、GIF、JPEG、PNG、TIFF などの多様な形式のイメージを指定の 場所に表示できます。拡大縮小や回転や上下左右の配置方法の指定などの諸機能も備え ています。また、既存の表示内容の更新や削除も簡単に行えます。

「書式」

コマンド
  DrawImage| ファイル名|X 座標|Y 座標| 幅| 高さ|
         回転角度| オプション機能

C 関数
  void PsDrawImage(char* ファイル名, int X 座標, int Y 座標, int 幅,
              int 高さ, int 回転角度, char* オプション機能);

「用例」

COBOL
   Display "DrawImage|C:\Images\Fish08.bmp|20|10|100|60|0|GZ"

C 言語
   PsDrawImage("C:\\Images\\Fish08.bmp", 20,10,100,60,0,"GZ");

レスポンス   なし

パラメータ、注意事項、その他、詳しくは、ユーザーズマニュアル の説明を参照してください。


▲UP

○iii/win Ver 3.71 での改造事項:2011年11月リリース
83. DrawImage コマンドのファイルなしエラーの抑制(PSRUN)

DrawImage コマンド(PsDrawImage() 関数)のオプション機能に’E’ 指定を追加しま した。

これにより、画像ファイルが存在しない場合のエラーメッセージの表示を抑制し ます。詳しくは、ユーザーズマニュアル(第12版)p.389 以降の表の’E’ の説明を参照してください。


84. Ver 3.70 のXP 上での問題への対処(PE,PSRUN)

Ver 3.70 には次のような問題があります。

「Windows XP 上で、ある条件でメッセージ表示を行ったときAssert エラーを生じる。」 これはVisual Studio 2008 および2010 のC言語コンパイラに起因する障害です。Ver 3.71 ではこの問題に対処しました。



▲UP

○iii/win Ver 3.72 での改造事項: 2012年5月リリース
85. TABキーが Enterキーと同じ役割を果たす (PSRUN)

PSRUNの起動パラメータとして -5 を指定すると、TABキーが Enterキーと同じ役割を果たします。
ただし、これは入出力フィールドの操作に関してのみの取り扱いであり、アクセラレータやコントロール類、及び選択項目の操作には影響しません。


▲UP

○iii/win Ver 3.73 での改造事項: 2013年9月リリース
86. DrawImageとDrawTextの印刷上の表現の変更 (PSRUN)

画面のハードコピーの印刷における、DrawImageによる表現とDrawTextによる表現の印刷順序を変更しました。
従来は、DrawTextによる表現を先に描いてからDrawImageによる表現を描いていました。そのため、両者の位置が重なっていると、DrawTextによる表現がイメージで上書きされて見えなくなっていました。
今後は、DrawImageによる表現を先に描いてからDrawTextによる表現を描きます。両者の位置が重なっている場合、DrawTextによる表現はイメージの上に上書きされて見えます。
従来から、画面上の描画はこのような順序でした。今回、印刷上の描画順序を画面上の描画順序に合わせたという事です。


▲UP

○iii/win Ver 3.80 での改造事項:2014年10月リリース

87. 入力された漢字の読みを取得する機能 (PSRUN)

コマンド SET|IMM_READ : 読みの蓄積と表示の指定
コマンド QUERY|IMM_READ : 読みの取得

アプリケーションでユーザーに氏名や住所などを入力してもらう際、漢字での入力とともに、その“読み”も必要となる場合があります。このような場合、わざわざ読みを入力してもらわなくとも、IMEに入力された読みを取得することができます。 例えば、ユーザーがあるフィールドで、「やまだ」、変換確定、「たろう」、変換確定、と入力操作して、「山田太郎」と入力した場合、そのフィールドの入力完了後に「やまだたろう」という読みを文字列として取得できます。 また、読みを別のフィールドに自動的に出力することもできます。この場合、変換確定ごとに読みの表示が自動的に更新されます。 読みの文字種類はディフォルトでは半角カタカナですが、指定により、全角カタカナまたは全角ひらがなとすることもできます。 また、変換確定ごとに読みの間に半角空白を入れるように指定することもできます。例えば上の例では、「やまだ たろう」という読みの文字列になります。
本コマンドの実行にはオプション指定が必要です。詳細はユーザーズマニュアルをご参照ください。

88. スクリーンデバッガ SCDEB を一新 (PSRUN)

スクリーンデバッガ SCDEB のUIにコンボボックスを活用することで対話型操作性を大幅に向上させました。

コマンド履歴のリスト表示が行え、そこから過去に実行したコマンドを選択して再実行させることができます。履歴の順に従ってコマンドを1つテキストボックスに投入したり、逆順に投入も行えます。
コマンドの入力時に、マウスポインターをアプリケーション画面のフィールドの上に置くと、そのフィールドの名前をツールチップに表示します。コマンドの実行時には表示されません。ボタンやチェックボックスなどのコントロールの上でも同様です。ツールチップに表示された名前をコマンド入力のテキストボックスに投入することができます。
最近PSRUNで実行した画面ファイル、最近PEで表示した画面ファイルの一覧を表示させることができ、そこから画面を選択決定をすると自動的にSCREENコマンドを実行し画面を表示させることができます。またこれに先立ち最近表示した画面ファイルが入っていたディレクトリの一覧を表示させそこからファイル選択ダイアログで画面ファイルを選択して上記手順を実行することもできます。


▲UP

○iii/win Ver 3.81 での改造事項:2014年10月リリース
89. SET|IMM_READ で既存の内容に読みを連結して表示する機能。 (PSRUN)
バージョン3.80で提供した新コマンド SET|IMM_READ :「読みの蓄積と表示の指定」では、読みを別のフィールドに自動的に出力させる指定を行った場合、そのフィールドにすでに文字列が存在するとそれを一旦初期化してから読みを出力する仕様になっています。今回その仕様に加えてフィールドの既存内容を消さずに末尾に読みを連結して表示するという動作モードも選択できるようにしました。

▲UP

○iii/win Ver 3.82 での改造事項:2015年8月リリース

Windows 7 で MSIMEを使用し、PSRUNをWindows 2000互換モードに設定して運用している場合、アプリケーションの終了時に保護違反のエラーが生じることがあります。これは、MSIME自体の問題であることが確認されています。
この障害を回避するために、次の2つの対策を行いました。
90. 入力言語を英語に切り替える機能(PSRUN)
(1) PSRUNに起動パラメータ -7 を指定
QUITコマンドの実行直前に入力言語を英語に切り替えます。
また、QUITコマンドを実行せずにアプリケーションが終了しようとしている時も入力言語を英語に切り替えます。

(2) PSRUNに起動パラメータ -7S を指定
SCREENコマンドの実行直後に入力言語を英語に切り替えます。これにより、日本語入力はできなくなります

91. QUIT時にメッセージボックスを出す機能(PSRUN)
(1) PSRUNに起動パラメータ -8 を指定
QUITコマンドの実行に先立って、ごく小さなメッセージボックスを表示します。入力フォーカスをこれに移動させるのが目的です。
このMsgBoxは表示後すぐに自動的に閉じます。起動パラメータ /T には関係しません。

(2) PSRUNに起動パラメータ -8A を指定
-8 の指定と同様です。ただし、メッセージボックスの位置を画面の表示範囲外としますので見えません。


▲UP

○iii/win Ver 3.83 での改造事項:2015年12月リリース
92. リストボックスの操作を左右矢印キーで抜ける指定(PSRUN)
書式:
コマンド SET|LB LEFTKEY |リストボックス名|イベント番号
SET|LB RIGHTKEY|リストボックス名|イベント番号

C 関数例 psset("LB_LeftKey" , "リストボックス名", ita(イベント番号));
psset("LB_RightKey", "リストボックス名", ita(イベント番号));

機能:
リストボックスが入力フォーカスを持っているときの左矢印キーの押し下げ及び右矢印キーの押し下げを入力終了イベントに設定します。
リストボックス用の推奨のイベント番号範囲は190から219です(マニュアルの14.1 参照)。

レスポンス:
なし


▲UP

○iii/win Ver 3.84 での改造事項:2016年1月リリース
93. リストボックス内に罫線を描く(PSRUN)

コマンド SET|LB_LINE : 罫線色の指定
リストボックス内に指定の色で罫線を描きます。
このコマンドの効果は、このコマンドの実行の以降に表示されるすべての画面のすべてのリストボックスに及びます。(つまり、SCREENコマンドやWINDOWコマンドの前に実行しなければなりません。)
そして、次にINITコマンドが実行されると効果が消滅します。

本コマンドの実行にはオプション指定が必要です。詳細はユーザーズマニュアルをご参照ください。

94. リストボックス内の色の指定(PSRUN)

コマンド SET|LB_COLOR : リストボックス内の色の指定

リストボックス内の色を指定します。
このコマンドはPEでリストボックスを定義するときの文字前景色と背景色の指定よりも優先します。

このコマンドの効果は、このコマンドの実行の以降に表示されるすべての画面のすべてのリストボックスに及びます。(つまり、SCREENコマンドやWINDOWコマンドの前に実行しなければなりません。)
そして、次にINITコマンドが実行されると効果が消滅します。

本コマンドの実行にはオプション指定が必要です。詳細はユーザーズマニュアルをご参照ください。

95. SCDEB使用時の問題の解決(PSRUN)

Ver 3.80(2014年10月リリース)以降のPSRUNでSCDEBを使用している時、INITコマンドの実行時に例外エラーを生じる場合があります。
今回、この問題を解消しました。


▲UP

○iii/win Ver 3.90 での改造事項:2016年3月リリース
96. Windows 8、8.1、10 対応 (PSRUN)(PE)

(1) iii/Win Ver 3.90 は、 8以降のWindows 対応版です。 それぞれの 64Bit版と32Bit版の両方でお使いいただけます。

(2) Ver 3.90としてリリースいたしますのは、PSRUN と PE のみです。
言語インターフェースは従来のバージョンのままで、お使いいただけます。

(3) 既存のアプリケーション・プログラムは、そのままでお使いいただけます。
ソースコードの変更や、再コンパイル、再ビルドの必要はありません。
起動パラメータの与え方も従来どおりです。

(4) Ver 3.90は、Windows 8 以降対応ということ以外には、改造点や機能強化などはありません。機能的には前バージョンの Ver 3.84 と同じです。

(5) Ver 3.90は、Windows 8 より以前の Windows OSでも使えます。

(6) 従来のバージョンを、Windows 8以降で使用すると以下のような問題が生じます。
★ IME動作モードの切り替え時にタスクバーや言語バー上の入力モードアイコンの状態表示が追随して切り替わりません。実際の動作モードそのものは切り替わっています。
これは、Windows 8以降ではデフォルトですべてのアプリケーション間でIMEの状態が共有されるように仕様が変ったことに起因するものと考えています。ただしこの動作そのもはコントロールパネルの言語設定で解除することができるのですが、それを行っても前述の問題は解決できないことから、あくまでも仕様変更を起因とする副作用によるWindows側の問題と考えています。
このままでは文字入力操作に支障をきたしますので、今回 iii/win側で対処方法を工夫することによってこの問題に対応しました。



▲UP

○iii/win Ver 3.91 での改造事項:2017年4月リリース
97. RESTOREコマンド実行時の障害に対処 (PSRUN)

Ver 3.70から Ver 3.90までのiii/winのPSRUNには下記の問題があることがわかりました。このたび、これに対処しました。
「SCREENコマンドで画面を表示し、そしてSAVEコマンドを実行し、その後、SCREENコマンドで別の画面を表示した後、RESTOREコマンドを実行すると、メモリアクセス違反を生じてPSRUNのプロセスまたはアプリケーションのプロセスが強制終了させられる場合がある。」
この問題の発生時に、「〇〇〇は動作を停止しました」という旨の Windows OS からのメッセージが出る場合と出ない場合とがあります。

尚、同じRESTOREコマンドでも下記のような使い方では何も問題を生じません。
(1) 親画面を表示後、WINDOWコマンドで子画面を表示した後、RESTOREコマンドで親画
    面に復帰する場合
(2) ある画面を表示後、SAVEコマンドを実行し、フィールドの値などを変更後、RESTORE
    コマンドで元の表示内容に復帰する場合(つまり同一画面での復帰)

お客様でのRESTOREコマンドの使用方法は、上記の問題がないケースが殆どであると思います。 問題が生じる使われ方は非常に稀だと思われます。また、RESTOREコマンドの使われ方をすべて調べていただく必要はなく、現状において問題が生じていなければ大丈夫であるとご判断いただいて結構です。



▲UP

○iii/win Ver 3.92 での改造事項:2017年6月リリース
98. コマンドのログ機能 (PSRUN)

PSRUNが実行した全てのコマンドとそのレスポンスをテキストファイルに記録する機能です。

操作方法:
  ログの開始:Ctrl + Shift + L , S
  Psrunが表示したウィンドウ上で、CtrlキーとShiftキーを押しながら、Lキー と Sキー を
  順に押す。
  ログの終了:Ctrl + Shift + L , E
  同様にして、Lキー と Eキー を順に押す。

ログを開始すると、その実行状況がウィンドウの下部のステータスバーに表示されます。子ウィンドウが出ているときは親ウィンドウのステータスバーに表示されます。

いったんログを開始すると、PSRUNやアプリケーションのプロセスが切り替わっても、ログを継続します。また、システムを再起動してもログを継続します。
ログの終了し忘れに備えて、ログの件数が1000件に達すると自動的にログを終了します。

記録するファイルは、カレントディレクトリの IIICommandLog.txt です。ログの開始時と終了時に、このファイルのフルパス名がステータスバーに表示されます。
ログの終了後、再度、ログを開始すると以前の記録内容は失われます。

ログの開始後にコマンドエラーや、Assertエラーなどの致命的エラーが発生すると、それらも記録されます。
また、C言語アプリケーションのマルチスレッドでの利用にも対応しています。

99. コマンドファイルの自動実行機能 (PSRUN)

テキストファイルに記述されたコマンドを順々に自動的に実行する機能です。

操作方法:
1、SCDEBから手動で自動実行を開始する方法
   SCDEBモードでPSRUN.exeを起動する(起動パラメータは !B)。
   任意の時に、SCDEBのメニュー項目の [コマンドファイルの自動実行 (F5)] を選択する(または、F5キーを押す)。
   ダイアログが開きますので、コマンドを記述しているファイルを選択する。
   次いで現れるメッセージボックス上で、[連続実行]ボタンまたは [ステップ実行]ボタン
   を押すと自動実行を開始する。
   ステップ実行の場合は、1コマンドごとにSCDEBの[実行]ボタンを押します。
   自動実行を途中で終了させるには、SCDEBのメニュー項目の [自動実行の終了 (F6)] を
   選択する(または、F6キーを押す)。

2、PSRUN.exeを起動してすぐに自動実行する方法
   PSRUNの起動パラメータに、 !Gコマンドファイルのパス名 と記述する。
     例: Psrun.exe !GC:\Work\IIICmd01.txt
   ファイル名だけを指定した場合はカレントディレクトリ内のそのファイルが対象になります。
     例: Psrun.exe !GIIICmd01.txt
   コマンドファイルを最後まで連続して実行した後、PSRUNのプロセスは自動的に終了します。
   コマンドファイルは INIT|C で始まり、QUIT で終わるようにしてください。
   注意:起動パラメータに !G と !B を共に指定することはできません。

コマンドファイルの記述方法:
1つの行に、1つのコマンドとそのパラメータを記述します。
//から右はコメントであり、無視されます。コメントだけの行も可能です。
各行の行頭の空白やタブおよび行末の空白やタブは無視されます。従って、自由にインデント(字下げ)を行えます。
改行符号は、CR + LF または LFのみのいずれでも構いません。
コマンドのログ機能で作成されたファイルをそのまま自動実行することもできます。
ファイルの拡張子は任意ですが、.txt とするのが便利です。

100. バージョン表示機能 (PSRUN)

PSRUN.exeに通信モ-ドを指定する起動パラメータ(!Eまたは!Bまたは!G)を指定せずに起動すると、そのPSRUNのバージョン、シリアル番号、評価版なら評価期限を表示して終了します。(エクスプローラー上でPSRUN.exeをクリックすれば、そういう状態になります。)

101. プロセスが切り替わっても以前の親ウィンドウの位置やサイズを継承する(PSRUN)

起動パラメータ !W や SCREENコマンドのパラメータに指定文字 'K'や'I'を指定すると、以前の親ウィンドウの位置やサイズを継承します。
しかし、従来のバージョンではPSRUNのプロセスが切り替わると、この継承は行えませんでした。
今回のバージョンでは、PSRUNのプロセスが切り替わってもこの継承が行えます(特別な指定は必要ありません)。つまり、PSRUNを使うCOBOLアプリケーションの終了と再起動、あるいはPSRUNを使うC言語アプリケーションの切り替わり、またはシステムの再起動などが行われても、以前の親ウィンドウの位置やサイズを継承します。

102. プロセスが切り替わっても以前の親ウィンドウの位置やサイズを継承する(PSRUN)

起動パラメータ !W や SCREENコマンドのパラメータに指定文字 'K'や'I'を指定すると、以前の親ウィンドウの位置やサイズを継承します。
しかし、従来のバージョンではPSRUNのプロセスが切り替わると、この継承は行えませんでした。
今回のバージョンでは、PSRUNのプロセスが切り替わってもこの継承が行えます(特別な指定は必要ありません)。つまり、PSRUNを使うCOBOLアプリケーションの終了と再起動、あるいはPSRUNを使うC言語アプリケーションの切り替わり、またはシステムの再起動などが行われても、以前の親ウィンドウの位置やサイズを継承します。

103. マルチディスプレイ環境に対応(PSRUN)

PSRUNに起動パラメータ /G を指定するとマルチディスプレイ環境に対応します。つまり、メイン画面以外のディスプレイにウィンドウを表示できるようになります。

起動パラメータ /G とともに !WK(以前の親ウィンドウ位置の継承)を指定するだけで、たいていのアプリケーションはプログラム修正なしで、メイン画面以外のディスプレイ上で使用できます。 最初に1回だけ、親ウィンドウを希望のディスプレイ上にマニュアルで移動してください。以降の親ウィンドウはその前の親ウィンドウの位置を継承して表示されます。

注釈:ディスプレイの配置は全く任意です。左右配置、上下配置とも可能です。 また、ディスプレイの台数も任意です。 ただし、メイン画面は最も左または最も上のディスプレイとする必要があります。

104. 意図しない入力フォーカスの喪失への対策(PSRUN)

とあるエンドユーザー様においてアプリケーションの運用中に、PSRUNが表示しているウィンドウが意図せずに入力フォーカスを失うときがあるとの報告がありました。これは、そういう事態が生じる場合の対策です。

対策1:意図しない入力フォーカスの喪失への対処
PSRUNに起動パラメータ /1 (スラッシュいち)を指定すると、SELECTやINPUTなどの入力コマンドが発行されたとき、毎回、その実行に先立って下記を行います。
(1) ウィンドウがフォアグラウンド状態か否かをチェックし、そうでなければフォアグラウンドにする。
(2) 入力フォーカスをセットする。
注釈:Windows XP以降、通常の方法では、フォアグラウンドではないウィンドウをフォアグラウンドに変更することができなくなってしまっています。API SetForegroundWindow()、SetActiveWindow()、SetWindowPos()、BringWindowToTop()、SwitchToThisWindow()は、いずれも思わしい効果がありません。今回、特殊な方法の工夫によりこの機能を実現しました。

対策2:意図しない入力フォーカスの喪失の予防
これは実験的な機能であり、それぞれの実際の運用環境において効果があるかどうかは断言できません。
PSRUNに起動パラメータ /2 (スラッシュに)を指定すると、SCREENコマンドによるウィンドウの生成と表示の直後に、API LockSetForegroundWindow(LSFW_LOCK)を実行します。
Win32 APIマニュアルはこのAPIについて、「この関数は、他のアプリケーションが前景ウィンドウを変更してユーザーとの対話に割り込むのを防ぐために使います。」と説明しています。



▲UP

○iii/win Ver 3.93 での改造事項:2017年9月リリース
105. ビジュアルスタイルを適用しない指定 (PE、PSRUN)

Ver 3.80のiii/winからビジュアルスタイルが適用されています。これにより、ボタン類の表現がフラットなものになっています。

PEまたはPSRUNに起動パラメータ -Q を指定すると、ビジュアルスタイルを適用しません。これにより、ボタン類の表現は以前と同じく、立体的になります。(PEでは、フィールドの試し表示を行ったときに違いがわかります。)


106. ボタン類の透過の背景色の改善 (PE、PSRUN)

ビジュアルスタイルが適用されているときは、ボタン類の背景色に透過を指定しても、実際には透過になりません。これは Windows OS 自体の問題です。(ビジュアルスタイルが適用されていないときは正しく透過になります。)

この問題に対処するため今バージョンでは、起動パラメータ -Q が指定されていないときは、プッシュボタン以外のボタン類の背景色に透過が指定されていれば、自動的にその背景色をクライアント領域の背景色と同じ色に設定します。これにより、透過と同等の結果になります。(プッシュボタンの背景色は常に灰色です。)(PEでは、フィールドの試し表示を行ったときに違いがわかります。)



▲UP

○ iii/win Ver 3.94 での改造事項:2019年8月リリース
107. コマンドの処理時間の監視 (PSRUN)

各コマンドの処理時間を監視します。

起動パラメータ書式: !Un
   !Uに続けて警告のリミットとする時間を100ms単位で指定します。
   例 (500msを指定): !U5
   例 (3秒を指定) : !U30

あるコマンドの処理時間が指定の時間をオーバーすると下記の内容のメッセージボックスを表示して確認を求めます。

iii/Win コマンド処理時間監視
   コマンドの処理時間が指定時間をオーバーしました。
     指定時間:XXX msec
     所要時間:XXX msec
     コマンド:○○○○|○○○○○○|○○○○○

                 [ OK ]

このメッセージボックスが出された後も処理は正常に続行されます。
但し、下記の入力関係のコマンドは監視の対象外になります。
   INPUT SELECT SELECTS
   MsgBox PsError ERROR
   YNSelect



108. アプリケーションの処理時間の監視 (PSRUN)

アプリケーションの処理時間を監視します。

起動パラメータ書式: !Vn
   !Vに続けて警告のリミットとする時間を100ms単位で指定します。
   例 (500msを指定): !V5
   例 (3秒を指定) : !V30

あるコマンドの処理を完了してレスポンスを返した後、次の新たなコマンドが到着するまでの時間を監視します。そしてそれが指定の時間をオーバーすると下記の内容のメッセージボックスを表示して確認を求めます。

   iii/Win アプリケーション処理時間監視
   アプリケーションの処理時間が指定時間をオーバーしました。
     指定時間:XXX msec
     所要時間:XXX msec
     到着コマンド:○○○○|○○○○○○|○○○○○

                 [ OK ]

このメッセージボックスが出された後も処理は正常に続行されます。




▲UP

○iii/win Ver 3.95 での改造事項:2020年2月リリース
109. リストボックスのロックとロック解除 (PSRUN)

(1) リストボックスのロック(無効化)

コマンド書式 : LOCK|リストボックス名

C言語関数 : void pslock(char* リストボックス名)

機能 : 指定のリストボックスを無効にします。キーやマウスによる操作ができません。リストボックス全体が灰色表示になります。

レスポンス : なし


(2) リストボックスのロック解除(有効化)

コマンド書式 : UNLOCK|リストボックス名

C言語関数 : void psulck(char* リストボックス名)

機能 : 指定のリストボックスを有効にします。キーやマウスによる操作ができます。リストボックス全体が通常の表示になります。

レスポンス : なし


110. リストボックスの選択項目の変化のイベント (PSRUN)

コマンド書式 : SET|LB_CHANGE|リストボックス名|イベント番号

C言語使用例 : psset("LB_Change", "リストボックス名", ita(イベント番号));

注釈 : 画面設計時に定義するリストボックスのイベント番号は、エンターキーの押し下げやマウスのダブルクリックによってリストボックス内の項目を選択決定したときに発生します。

機能 : このコマンドによって設定するイベント番号は、矢印キーによってリストボックス内の選択項目が変化したときやマウスでシングルクリックをしたときに発生します。シングルクリックでは同じ項目上でも発生します。
マウスでダブルクリックをしたときは、このイベントと選択決定イベントとがこの順番で続けて発生します。
SET|LB_SELECTNOコマンドでプログラムから選択項目を設定したときは、このイベントは発生しません。
リストボックス用の推奨のイベント番号範囲は190から219です。

レスポンス : なし



▲UP

○iii/win Ver 4.00 での改造事項:2020年5月リリース
111. ユニコード対応機能の追加 (PE、PSRUN)

日本においてもビジネス環境の国際的な拡がりから、画面に対しても多くの外国語での表現機能対応の要望、特に中国語での人名や地名にShift-JISに存在しない漢字を使用したいというご要望が増えてきています。
そこでこれらの扱いを可能とするために、今回iii/win4.00においてユニコード対応機能の追加という強化を行いました。今回の強化においても、旧バージョンのiii/winとの互換性を重視ています。そのためにあえてPSRUNのユニコード利用方式への全面書き直しは行わず、いわば「ASCII/Shift JIS利用方式とユニコード利用方式の併用、共存」とでも呼べる形で互換性も確保しながら強化を実現しました。

PEでのフィールド定義において入力字種にWを設定するとデータをユニコードで扱うフィールドになります。
すなわち今回のユニコード対応機能を使用するためには、画面上に専用のフィールドが存在する必要があることから、画面の改造が必要です。つまり従来のバージョン用に作成済であるアプリケーションと画面情報ファイルがそのままで、iii/winのランタイムのみをバージョンアップすれば、自動的にそのアプリケーションがユニコード対応になるという訳ではないことに留意してください。
旧バージョンのiii/winをお使いのお客様が、ユニコード対応の機能をお使いになられるためには、iii/winの旧バージョン製品の開発キット本体に含まれる画面エディター(PE)と、ランタイムルーチン(PSRUN)の両方のバージョンアップが必要であり、さらにユーザーアプリケーションとしてお客様が開発された画面情報ファイルの改変作業と、ソースコードの改造作業も必要となります。

アプリケーションからの入力字種にWを設定したフィールド以外へのアクセス(入力、出力)は従来バージョンと同じ、すなわち画面情報ファイルやiii/winを使用するユーザープログラムのコーディングには上位互換性が保たれています。

新しい機能には、対応言語として従来通り Microsoft Visual C++ 、Micro Focus Visual COBOL を公式にサポートします。今回新しく追加された入力字種にWを設定したユニコードのフィールドに対するアクセス(入力、出力)には、従来のPUTやGETコマンドは使用できません。今回新たに用意された専用のコマンドを使用する新たなコーディングの追加が必要になります。
iii/win4.00は、C言語およびCOBOLのユニコード文字列の内部表現とデータの受け渡しを可能にしました。つまり、C言語の wchar_t (WCHAR)型配列、COBOLのPIC N USAGE NATIONALの項目とデータの受け渡しを可能にしました。
これらは共に1文字16ビットであり、UTF-16にあたります。今回iii/win4.00がサポートするのは、文字符号化方式:UTF-16LE の UNICODE です。

具体的なコマンド書式やコーディング例などの詳細につきましては、製品(開発キット)に付属するマニュアル「iii/winのユニコード対応機能 (Ver 4.00)」をご覧ください。

▲UP

○iii/win Ver 4.02 での改造事項:2021年6月リリース
112. ユニコード対応機能の修正 (PSRUN)

Ver 4.00のPSRUNには以下のような問題点がありました。Ver 4.02でこの問題に対処しました。
(1) 全角の記号の一部(数個)が正しく入力できない。(漢字のダッシュ記号と縦線記号)
(2) U+0080からU+00ffの範囲内の表示可能な文字を正しく扱えない。(×、÷、¥、£、¢、±、1/4、2/4 など)
※ なお、Ver 4.01はこの間の過渡的バージョンですので一般にはリリースしていません。

▲UP

○iii/win Ver 4.10 での改造事項:2022年12月リリース
113. Windows 11 OS への対応

(1) PE
従来のバージョンのPEは、Windows 11において下記の問題がありました。この問題に対処しました。
「PEを使用中に子ウィンドウを表示して、それを閉じたとき、他のプロセスのウィンドウがアクティブになり、PEのウィンドウがその背後に隠れてしまう。」
(2) PSRUN
従来のバージョンのPSRUNは、Windows 11においても 支障なく動作します。今バージョンでの変更事項はありません。

▲UP

○iii/win Ver 4.20 での改造事項:2024年7月リリース
大量のフィールド更新を高速化するための改造です。
114. 画面描画処理をまとめて行う(PSRUN)
 
起動パラメータ書式: /NA
   入力コマンド(INPUT, SELECT, SELECTS)および画面コマンド(SCREEN, WINDOW)以外のコマンドによる画面への描画は保留されます(画面に出力されません)。コマンド実行の効果はPsrunの内部で保持されています。
そして、次に入力コマンドまたは画面コマンドが来た時、その実行前に(もし、描画保留があったのであれば)画面全域が再描画されます。
この結果、大量のフィールドの更新が極めて迅速に行えるようになります。
ただ、フィールド入力と少量のフィールド更新を頻繁に繰り返すような処理においては画面のちらつきが見えることがあります。
 
115. 罫線描画処理をまとめて行う(PSRUN)
 
起動パラメータ書式: /NK
   入力コマンドおよび画面コマンド以外のコマンドによる画面への描画に際し関連する罫線の描画が保留されます。フィールドの背景色や文字列はコマンドごとに描画されます。
そして、次に入力コマンドまたは画面コマンドが来た時、その実行前に(もし、描画保留があったのであれば)画面全域の罫線が再描画されます。
この結果、大量のフィールドの更新がかなり迅速に行えるようになります。
 
   ※ 起動パラメータの /NA と /NK は併用できません。
 
116. 画面描画処理の保留や再開を動的に設定する(PSRUN)
 
書式:
   コマンド SET|NA|ON
      SET|NA|OFF
 
   C関数例 psset("NA", "ON", "");
      psset("NA", "OFF", "");
 
機能:
   大量のフィールドの更新の直前に psset("/NA","ON","") を実行し、大量のフィールドの更新の直後に psset("/NA", "OFF", "") を実行します。この2つのコマンドの間は 起動パラメータ /NAの指定と同じ効果を持ちます。つまり、入力コマンドおよび画面コマンド以外のコマンドによる画面への描画はすべて保留されます。
そして、psset("/NA","OFF","")の実行のときに画面全域が再描画されます。
 
   ※ psset("/NA","ON","") や psset("/NA", "OFF", "") は、いつでも何度でも実行できます。
 

▲UP





著作権について パーシモンシステムトップへ