ホームへ戻る|Data Base 桐 User Board|過去ログ一覧|検索|プロパティ |ほっ! |
▼過去ログ No114 |
書き込み数 : 5700件 |
|
|
||||||||||||
>桐が内部で保持しているステータスバー有無の変数値の取得はまず出来ないので、 >なにかステータスバー有無を外部プログラムから調べる方法か、 >外部から[表示]のポップアップメニューを出す方法が有れば解決できそうです。 >どなたかアイデアをお持ちでないでしょうか。 あとは、これだけを成し遂げようとすれば msctls_statusbar32 な ウィンドウの現在のスタイルを取得して WS_VISIBLE な 0x10000000 が立っていれば表示状態で、そうでなければ非表示状態ではあります。 このスタイルを外部から設定しても、桐のメニューバーのステータス バーの状態も一致(追従)することから、ポップアップメニューが出る 段階で桐はこの msctls_statusbar32 のスタイルを取得して WS_VISIBLE な状態かどうか判別し、メニューにチェックを表示しているのでは 無いでしょうか? |
|
|
||||||||||||
>外部から[表示]のポップアップメニューを出す方法が有れば解決できそうです。 >どなたかアイデアをお持ちでないでしょうか。 無理矢理やろうとすれば、桐のシステムウィンドウに対し Alt + v を Sendkeys する方法あるのでしょうが・・・ スマートな方法では無いですしね! |
|
|
||||||||||||
>外部から[表示]のポップアップメニューを出す方法が有れば解決できそうです。 >どなたかアイデアをお持ちでないでしょうか。 表示のポップアップ(だけ)を出す方法はわからないですけど 次のような方法で、桐に WPARAM値 として 0xE801 (59393) を PostMessage すれば、ステータスバーの表示/非表示は 切り替えられるのですよね! トグル方式になってしまう けど・・・ postmessage.js (DynaCall + JScript の場合) ----------------------------------------------------------- var WM_COMMAND = 0x0111; var UserWrap = WScript.CreateObject("DynamicWrapper"); UserWrap.Register ( "USER32.DLL", "FindWindow", "i=ss", "f=s", "r=h" ); UserWrap.Register ( "USER32.DLL", "PostMessageA", "i=huuu", "f=s", "r=l" ); var hWnd = UserWrap.FindWindow( "Kiri9", 0 ); var result = UserWrap.PostMessageA( hWnd, WM_COMMAND, 0xE801, 0 ); ----------------------------------------------------------- あと、桐での WPARAM値を調べた限り書いておきます。 随分前に調べたものです。 印刷-一覧表 WPARAM値 0x8012 (32786) |
|
|
||||||||||||
No.5692 で wrote >一括処理からフォームを立ち上げた場合、 これってどう「立ち上げた」のでしょう? もしもフォームの立ち上げ方が「フォーム呼び出し」コマンドとか、 「メソッド呼び出し/実行」コマンドからコマンドボタン「開く」 とかなら、フォームに設定した「フォーム開始」イベントはそのまま 実行されそうな気が・・・・。 あるいは「ウィンドウ作成」コマンドからなら、これを「立ち上げ る」と称するにはちょっと違和感がありますが、ヘルプにある書式 例では ウィンドウ作成 フォーム,ハンドル=&hWnd,カーソル位置=@bOK となっているので、この例だと、コマンドボタン"bOK"が初期フォー カスになりそうな気が・・・。 |
|
|
||||||||||||
イベントからあえて古典一括へ戻すっつーのは、何だか逆行のようで 私としては超不思議な感じがいたしますし(^^;)、少なくとも私はやっ たことがないので外している可能性大ですが・・・・ 試行その1 あるコマンドボタン(仮称「b開始時」)を新設し、その機能とパラを 次のようにする。 フォーカス移動 "b終了" その上で、フォームのオブジェクト属性/オプションタブから最下行 の「実行コマンド」/「開始時」を「b開始時」と設定する。 試行その2 開始時実行ボタンもイベントもメソッドも、何も設定しないとすれば、 フォームオープン直後のフォーカスはとにかく「オブジェクトリスト」 上で一番上にある(フォーカス可能な)オブジェクトであるからして、 懸案のボタンオブジェクト"b終了"を、[Shift]+[↑]で一番上に移動さ せておく。 こんな辺りを試してみてはいかがでしょう? |
|
|
||||||||||||
多分桐はメニュー項目のチェックマークをつける(CheckMenuItem())タイミングを [表示][ステータスバー]のメッセージ処理の直後でなく、その後使用者によりポップ アップメニューがアクティブにされる直前(WM_INITMENUPOPUP メッセージが送られる) に実行しているのが、外部プログラムからチェックマークを取得できない原因だと思う。 桐が内部で保持しているステータスバー有無の変数値の取得はまず出来ないので、 なにかステータスバー有無を外部プログラムから調べる方法か、 外部から[表示]のポップアップメニューを出す方法が有れば解決できそうです。 どなたかアイデアをお持ちでないでしょうか。 |
|
|
||||||||||||
> 取り敢えず桐の場合は正しいチェック状態が得られ無いので > MENU_CHECK / MENU_UNCHECK は上手く動きません。 どうしてなのでしょうかね!? まぁ〜 showwin.exe Ver1.10 も作られたことだし、どうしても 必要であれば、こちらでも対応可能なわけだし、無理してこの 方式で対応しなくても良いのでは無いですか? Access だったら、次のコマンドで制御が可能なわけだけれど Application.SetOption "Show Status Bar", True Application.SetOption "Show Status Bar", False 桐もせっかく 桐ver9 から実行制御コマンドでファンクション バーの制御も可能になったわけだけれど、ステータスバーの 制御も付け加えて加えてくれたら良かったのに!? あろはステータスバー上に任意な文字列を設定できるような コマンドも? (^^; ちなみに、ステータスバーの表示の状態は桐の場合、環境設定 ファイル(KIRI9.ENV)に記録されています。これを見ればステー タスバーは表示されるように設定されているのか、非表示に なっているのかわかります。起動前に、その情報を取り除いて おくとデフォルトの表示状態になります。(で起動できます) また、ウィンドウID(メニュー項目ID)も環境設定ファイル内に ちゃんと記述されていたりするのですよね・・・ でも、このウィンドウID を書き換えたりすると桐は起動不可能 になったりするわけですが! 何故に環境設定ファイルにまで ウィンドウID を指定しているのですかねぇ〜 |
|
|
||||||||||||
やはり桐だと GetMenuState() でチェック状態を取得できません。 WINFDのスクロールバーのオンオフなどは思った動作をしてくれるのですが。 (kiritool.exe WinFD32Class MENU_CHECK 10248) ワードやエクセルも図形のチェックマークを使用してますがメニューを実行時に 追加しているようでIDが判らず確認してません。 以下の様に一度[表示]をクリックしないと正しいチェック状態が得られません。 桐の状態→GetMenuState()の戻り値(0x0000は未チェック/0x0008はチェック済) 桐を起動(ステータスバー有り)→0x0000 [表示]クリック(ステータスバー有り)→0x0008 [表示][ステータスバー]クリックでステータスバー無し→0x0008 [表示]クリック(ステータスバー無し)→0x0000 [表示][ステータスバー]クリックでステータスバー有り→0x0000 [表示]クリック(ステータスバー有り)→0x0008 そのまま桐を終了し再起動(ステータスバー有り)→0x0000 [表示][ステータスバー]クリックでステータスバー無し→0x0008 [表示]クリック(ステータスバー無し)→0x0000 そのまま桐を終了し再起動(ステータスバー無し)→0x0000 [表示]クリック(ステータスバー無し)→0x0000 取り敢えず桐の場合は正しいチェック状態が得られ無いので MENU_CHECK / MENU_UNCHECK は上手く動きません。 |
|
|
||||||||||||
別の質問をしてよろしいでしょうか? フォームにコマンドボタンを幾つか作っています。 フォームを立ち上げた時の初期位置として「終了」ボタンにフォーカスが来るように "フォーム開始"イベントに設定しました。 フォームを直接立ち上げた場合、このイベントは機能するのですが、 一括処理からフォームを立ち上げた場合、「終了」ボタンにフォーカスが移りません。 "メソッド呼び出し・・・"は一括処理で使用出来ると書いていたので、イベントを削除し 一括処理に書き換えてみたのですがダメでした。 何が悪いのか分かりません。 お助け下さい。 宜しくお願いします。 |
|
|
||||||||||||
> showwin.exe Ver1.10 ちなみに showwin.exe HIDE Kiri9 NULL msctls_statusbar32 NULL showwin.exe SHOW Kiri9 NULL msctls_statusbar32 NULL では、桐のシステムウィンドウの書き換えが綺麗には終了しないようですね!? 多少ウィンドウを操作して再描画発生すれば正しく反映されるのですが・・・ なお、kiritool.exe Kiri9 MENU_CHECK 59393 の方は再描画も綺麗に行われ ます。 いずれにせよ桐側でシステムウィンドウの再描画を行えば済む問題だとは思い ますが? |
|
|
||||||||||||
>「ほっ!」に showwin.exe Ver1.10 アップしました。 >処理対象をチャイルドウインドウも指定できる様に機能追加。 > // 2004/10/29 FindWin.dll version1.10 下記のスクリプトで可能になりました! (^^)v Set UserWrap1 = CreateObject("DynamicWrapper") Set UserWrap2 = CreateObject("DynamicWrapper") Set UserWrap3 = CreateObject("DynamicWrapper") UserWrap1.Register "findwin.dll", "FindChildWin", "i=ssss", "f=s", "r=l" UserWrap2.Register "user32.dll", "GetWindowLong", "I=ll", "r=l" UserWrap3.Register "user32.dll", "SetWindowLong", "I=lll", "r=l" hWnd = UserWrap1.FindChildWin ("Kiri9", "", "msctls_statusbar32", "") nIndex = UserWrap2.GetWindowLong (hWnd, -16) Call UserWrap3.SetWindowLong (hWnd, -16, nIndex XOR &H10000000) |
|
|
||||||||||||
症状確認しました。 チェック状態がうまく取得できない様です。メニューの[表示]を4回クリック(ポップ アップメニューを2回表示させる)してから実行すると望んだ動作をするようです。 桐のメニュー項目のチェック表示がグラフィックを使っているせいか GetMenuState() が ステータスバーが有るのにチェックされていないと返ってきます。 トグル動作では困るでしょうから少し調べます。 追伸 「ほっ!」に showwin.exe Ver1.10 アップしました。 処理対象をチャイルドウインドウも指定できる様に機能追加。 |
|
|
||||||||||||
> この辺もバージョンによる動作の違いなのかな? あれ? 桐ver8 も桐9-2004 も同じようですが? > T.Samura さん |
|
|
||||||||||||
>kiri9でもCHECKは"59393"で動きましたが、UNCHECKは動きませんでした。 成り行き上、書いておきますけど UNCHECK は無効なようですが CHECK を繰り返すことで、ステータスバーの表示/非表示はトグル 方式で切り替わります。 この辺もバージョンによる動作の違いなのかな? |
|
|
||||||||||||
TOMさんへ 私は中身を理解して割り切って使う分には構わないと思いますよ 副作用とか危険性とか安全性の確認まで含めて! そうやって使っていて、桐9-2005 や桐ver10 が出たときはどう されますか? 最初はわからなくても理解して使っていれば何とか自分でも対処 出来るかも知れません? でも、理解して使っておらずにただ張りぼてで、それが1つでは なく、いくつもいくつも張りぼてで、それがそのまま動かなく なったらどうしますか? 桐の内部の話であれば、管理工学研究所は基本的には上位互換で バージョンがあがってもそんまま動くようにしてくれるでしょう・・・ でも、今までの話の多くは外部から桐を制御する話で、この部分 では管理工学研究所はあえて互換性を持たせていなかったり、 他にも内部的にはバージョンで大きく変わっているところが多々 あります。 |
|
|
||||||||||||
いつもお世話になります。 kiri9でもCHECKは"59393"で動きましたが、UNCHECKは動きませんでした。 また、桐を立ち上げた後、手動でステータスバーをアンチェックにしてから kiritool.exeでCHECKをしようとしてもダメでした。 項目IDが違うのでしょうか? リソースエディタでの調べ方が分からないので、そのままの"59393"で使ってみたら 動いたので、hidetakeさんによく指摘されているので言われそうな事は分かるんですが、 使えるかもと思うと使っちゃいたいんですよね〜。 出来れば、項目IDが"59393"で正しいのかどうか、また、ステータスバーのON/OFFは 手動が優先されるのかどうか知る事が出来ればうれしいです。 図々しくてすいません。 |
|
|
||||||||||||
「ほっ!」に「閉じる」ボタンの無効 KIRITOOL.EXE V.1.30 をアップしました。 コマンド追加 MENU_CHECK/MENU_UNCHECK ポップアップメニューにチェックする/チェックを外す その他ドキュメント変更(KIRITOOL.TXT) ポップアップメニューにチェックする/チェックを外す [表示][ステータスバー]のメニュー項目ID が 59393 の場合(桐V8では59393) (桐V8 表示:ファイルパレット:41008 ヘルプ:バージョン情報:57664 ファイル:開く:57601 等々) (メニュー項目IDはリソースエディタ等で kfwres.dll(桐V8の場合) から探す) (フリーのリソースエディタの例 NeXT VISiON(TM) Resource Explorer 1.1J http://www.vector.co.jp/soft/dl/win95/util/se065546.html) ※私は桐V9を持っていないので桐V9のメニュー項目IDがわかりません。 下の例の 59393 は桐V8の場合です。 桐V9に対して操作する場合はリソースエディタでメニュー項目IDを調べて数値を指定して下さい。 ポップアップメニューのチェックマークを調べ未チェックならチェックする システム "kiritool.exe","Kiri8 MENU_CHECK 59393",自動クローズ=する,フルスクリーン表示=しない ポップアップメニューのチェックマークを調べチェック済ならチェックを外す システム "kiritool.exe","Kiri8 MENU_UNCHECK 59393",自動クローズ=する,フルスクリーン表示=しない |
|
|
||||||||||||
T.Samuraさん、ド・モ・ONnojiさん、hidetakeさん、どうもありがとうございます。 >オペレーターに「ステータスバーが有ったら『メニュー→表示→ステータスバー』で消す」と >作業指示するのはそれほど困難な事とは思えませんが。 "欲を出すのは止める事に"というのは、自動を諦めて仰られている方法を採るという事です。 >ニーズが高ければ作成してみますので連絡下さい。 誠にありがとうございます。 まだ、Ver9の社内導入には至っていませんが、もしの時は宜しくお願いします。 >プロパティ名:ステータスバー >これ使えませんかね? 試してみたのですが、出来なかったので調べてみると、ヘルプのオブジェクト操作の設定で 「つぎのオブジェクト属性は、変更できません。」と書かれている下にステータスバーも 載ってました。 もし出来るのであれば、桐ウインドウにも出来るかもとか思ったのですが・・・ |
|
|
||||||||||||
今年もシーズンになりましたね。最近はメールとかで、すます方も 多いようですが、それはそれとして 実は年賀切手の存在は知ってましたが、年賀切手に、「お年玉付 年賀郵便切手」があるのですね。知りませんでした。 来年(2005年) http://www.post.japanpost.jp/kitte_hagaki/hagaki/nenga_hakko/2005/hakko.html 今年(2004年) http://www.post.japanpost.jp/kitte_hagaki/hagaki/nenga_hakko/2004/stamp.html そのほかにも、光沢葉書(65円)も発売 いろいろ頑張ってるな〜 |
|
|
||||||||||||
ちょっと専門書を探しにいってきました。地方の書店と違い 探したい本もすぐ見つかりました。 東京駅周辺はまさに書店戦争状態です。 http://search.yahoo.co.jp/bin/query?p=%bd%f1%c5%b9+%c0%ef%c1%e8&fr=top&hc=0&hs=0 |
|
|
||||||||||||
>オペレーターに「ステータスバーが有ったら『メニュー→表示→ステータスバー』で消す」と >作業指示するのはそれほど困難な事とは思えませんが。 オペレータがファンクションバーは自分の好きなところに置きたいと ドラッグして、フローティングタイプのファンクションバーにしたり、 あるいは右横が良いとか左横が良いとか操作したりすると、そこまで しても今までの努力は・・・ と、言うこともあり得たりします。 |
|
|
||||||||||||
たぶん、外しているとおもいますが… 桐ver.9からフォームのプロパティ(属性)に次のようなものが追加されていますが、 オブジェクト:フォーム プロパティクラス:書式 プロパティ名:ステータスバー これ使えませんかね? |
|
|
||||||||||||
>でも、無理との事ですので欲を出すのは止める事にします。 TOMさんへ、<5677> は <5676> を読まれた上での結論でしょうか。 オペレーターに「ステータスバーが有ったら『メニュー→表示→ステータスバー』で消す」と 作業指示するのはそれほど困難な事とは思えませんが。 操作者のスキルにばらつきが有り、どうしても自動でステータスバーを消したい場合は kiritool.exe に機能追加する形で「メニューのチェックマークを調べチェック済なら チェックを外す命令を送る」は対応可能かと思います。ニーズが高ければ作成してみま すので連絡下さい。 |
|
|
||||||||||||
T.Samuraさん、ありがとうございます。 イベント&コマンドのみで作ったプログラムを、一括処理中心の物に変更しようとしています。 許可作業である程度は制約出来ますが、桐ウインドウが表示されているとオペレーターによる 予見しない動きが出来そうで、また、画面上も若干見づらい気がして・・・ で、フォームのタイトルバーを無しにし、境界線をダイアログにした状態で、一括処理で フォームの位置とサイズを調べ、ファンクションキー部分だけがフォームの下側に表示され、 1つのフォームに見えるよう桐ウインドウのサイズを設定しました。 フォーム側にタイトルバー(テキストですけど)を作り、最小化ボタンも付けました。 この状態ではファンクションキー側からドラッグされると桐ウインドウのサイズが 変わってしまうところを、頂戴しました"kiritool.exe"で制限出来ました。 何台かのパソコンで試していると(ステータスバーなしの場合、縦に+40)、ステータスバーの 表示されているものがあり、その場合、当然+40ではファンクションキーは表示されません。 フォーム表示 ウインドウリスト取得 &winhdl ウィンドウ位置 取得, &winhdl, 位置=(&x,&y), サイズ=(&w,&h) ウィンドウ位置 設定, -1, 位置=(&x,&y), サイズ=(&w,&h+40) システム "kiritool.exe","Kiri9 DELETE SC_SIZE",\ 自動クローズ=する,フルスクリーン表示=しない こんな感じで一括処理の中で桐ウインドウのサイズを設定しているので、 この時に、ステータスバーの非表示を設定出来ればと思いました。 でも、無理との事ですので欲を出すのは止める事にします。 |
|
|
||||||||||||
失礼、桐でメニュー→表示→ステータスバーで、オンオフが可能でした。 これを外部から制御したいと言う事でしょうか? |
|
|
||||||||||||
ステータスバーというと桐ウインドウ最下行の「レディ」とか表示している部分ですよね。 ステータスバーの制御は桐が自前でしているので kiritool.exe では難しいと思います。 桐のステータスバー自体は msctls_statusbar32 というクラス名のチャイルドウインドウ なのでダウンロードコーナー #150 の movewin.exe で移動自体はできそうですが、 hWnd[0x0db8] ID[59393] (Parent hWnd[0x0d5c] ID[212801608]) Class[msctls_statusbar32] Title[] movewin.exe Kiri8 NULL 0 0 default default 59393 などで位置変更しても桐が画面を再描画すると元の位置に戻ってしまい実用上無理の様です。 桐自体がステータスバーの表示、非表示に対応しないと無理だと思うので管理工学研究所に 要望するのが解決策かと思います。 TOMさんは手段の可否をお尋ねですが、それに至る使用上の困っている点も沿えて相談された 方が、違った角度からの解決方法が寄せられるかもしれないので回答が得られやすいと思います。 先の桐ウインドウの境界線の件も、恐らくウインドウサイズを触られて元の位置・サイズに するのが大変で相談されたと想像します。別の解決方法として movewin.exe で任意の ウインドウ位置・サイズにする方法も取れたのではと思います。 |
|
|
||||||||||||
ヘルプ→トピックの検索→目次→一括処理&イベント処理→〃リファレンス でキーワードを「キーダウン」とすろと"キーダウン(イベント)"が出ます。 そこに使用例が載ってます。 |
|
|
||||||||||||
TOMさん、回答ありがとうございます。 キーダウン機能があることがわかりいろいろ ためしたのですがうまく機能してくれません。 どういうふうにイベントにかくのですか? ご指導下さい。よろしくお願いします。 |
|
|
||||||||||||
お世話になります。hw@東です。 "kiritool.exe"はステータスバーの表示、非表示も制御出来るのでしょうか? もしそのような機能があるのでしたら方法をお教え頂けないでしょうか? 宜しくお願いします。 |
|
|
||||||||||||
たゆさんへ/レスありがとうございました。そうです。WIN版の桐です。なんとか自分で解決できました。今後、DOSの頃に桐を使っていたのを思い出しながら、桐の操作を習得したいと思います。今後とも、分からないときには教えてください。よろしくお願いします。 |
|
|
||||||||||||
お騒がせしました。 分かりました。ありがとうございます。 >桐で出来ること出来ないことそれらをまず理解し >桐の基本となる使い方を理解し、積み上げていか >ないで難しい要求だけで望んでも破綻しますよ? ご忠告ありがとうございます。 難しい事は分かりませんが、ここでの皆様の回答は 大変助かっております。 これに懲りず、また、宜しくお願いします。 |
|
|
||||||||||||
>Windows98で桐はVer9です。 >難しい説明は私には理解出来ませんので、出来ましたら、 >システム以降のVer9での書き方をズバリお教え頂けないでしょうか? 最初に書いたとおり基本的にはできない要求です。 それでもやると言うからには、その辺をちゃんと 理解した上でやらないと!? 桐で出来ること出来ないことそれらをまず理解し 桐の基本となる使い方を理解し、積み上げていか ないで難しい要求だけで望んでも破綻しますよ? まぁ〜、他人にお金を出して作ってもらうのでし たら、それはそれで相手の技術やポリシーに関わ ってくる内容になると思いますが? 技術的に可能かどうかの問題と自分自身だったら やるかやらないかで考えると、今回のような方法 は、もし人に使ってもらう代物だったら使わない でしょうね・・・ |
|
|
||||||||||||
>度々で申し訳ないのですが、"kiritool.exe"ってどこにあるのでしょうか? 最初の質問のあとの直後のコメントをちゃんと読みませう! |
|
|
||||||||||||
イベントを使っていいのであれば、 「キーダウン」というのがあります。 ちなみに、"/"keyは111、"-"keyは109、"・"keyは191です。 私はこれらを使っています。 |
|
|
||||||||||||
スラッシュ(割り算)キーで表示する、桐の機能(行挿入・訂正・その他いろいろなキー)の 一覧をでないようにできるのでしょうか? |
|
|
||||||||||||
hidetakeさん、T.Samuraさん、早速のご回答ありがとうございます。 度々で申し訳ないのですが、"kiritool.exe"ってどこにあるのでしょうか? PC本体にもオリジナルのCDにも見当たらないのですが、 どこかからダウンロードしないといけないのでしょうか? 宜しくお願いします。 |
|
|
||||||||||||
>Windows98で成功する方法を探したら DELETE SC_SIZE コマンドで境界太さはそのままですが、 >ウインドウサイズ変更が禁止になりますので試して下さい。 >(目的は境界線太さの変更でなくサイズ変更の禁止ですよね?) >このコマンドだとOS(98/2000/XP)に限らず使用可能かもしれません。 おぉ〜! 確かにこの方法ですと Windows98 機でも Windows XP でも 成功しました! (^_-) DEL_WS と DELETE SC_SIZE の違いと言えば、DEL_WS の方だとスタイル 変更後、境界線にマウスカーソルが来ても、マウスカーソルは変化せず ウィンドウサイズも変更できません。 それに対し、DELETE SC_SIZE の方だと、境界線上でマウスカーソル自体 はサイズ変更可のようにカーソルが変化しますが、実際にはサイズは 変更できない状態になります。 マウスカーソルの対応まで含めると、サイズ変更不可の設定は DEL_WS の方が美しいですが、目的のサイズを変更できなくするには DELETE SC_SIZE の方は OS を選ばない処理となるようです。 (桐のように仕方なく外部から制御する場合) |
|
|
||||||||||||
失礼、桐V9ならクラス名が Kiri8 でなく Kiri9 になります。 DeleteMenu を使いシステムメニューの「ウインドウサイズ変更」を無効にする システム "kiritool.exe","Kiri9 DELETE SC_SIZE" \ ,自動クローズ=する,フルスクリーン表示=しない システムメニューを標準に戻す システム "kiritool.exe","Kiri9 RESET",自動クローズ=する,フルスクリーン表示=しない |
|
|
||||||||||||
TOMさんへ、Windows98だと DEL_WS コマンドは失敗します。 Windows98で成功する方法を探したら DELETE SC_SIZE コマンドで境界太さはそのままですが、 ウインドウサイズ変更が禁止になりますので試して下さい。 (目的は境界線太さの変更でなくサイズ変更の禁止ですよね?) このコマンドだとOS(98/2000/XP)に限らず使用可能かもしれません。 DeleteMenu を使いシステムメニューの「ウインドウサイズ変更」を無効にする システム "kiritool.exe","Kiri8 DELETE SC_SIZE" \ ,自動クローズ=する,フルスクリーン表示=しない システムメニューを標準に戻す システム "kiritool.exe","Kiri8 RESET",自動クローズ=する,フルスクリーン表示=しない |
|
|
||||||||||||
>> Windows98で桐はVer9です。 > Windows98 と言う時点で、この手法やツールによる > ウィンドウスタイルの書き換えは無理ですね。 > 残念ながら・・・ あれ? そうじゃなくって DEL_WS で無くって DEL_CS の方を 使えば Windows98 でも可能なのかな? Windows98 機を引っ張り出してくるのが面倒くさい! 起動に 相当時間もかかるし・・・ (^^ゞ |
|
|
||||||||||||
> Windows98で桐はVer9です。 Windows98 と言う時点で、この手法やツールによる ウィンドウスタイルの書き換えは無理ですね。 残念ながら・・・ |
|
|
||||||||||||
> "kiritool.exe"はどこにもありませんでした。 桐の作品一覧表 #100 「閉じる」ボタンの無効 Ver 1.20 「 KRTL120.LZH 」(桐v7以降可) http://mokuchan.hp.infoseek.co.jp/download/dl-list1.htm http://mokuchan.hp.infoseek.co.jp/cgi-bin/down/lime.cgi?down=http://mokuchan.hp.infoseek.co.jp/download/file_100.lzh&name=100_%95%C2%82%B6%82%E9%83{%83^%83%93%96%B3%8C%F81.2 |
|
|
||||||||||||
hidetakeさん、T.Samuraさん、ありがとうございます。 「システム "kiritool.exe","Kiri8 DEL_WS &H00040000"\...」を試してみたのですが、 まず、"kiritool.exe"は見つかりませんというメッセージが出ました。 エクスプローラで探したところ"kitools.dll"というのはありましたが"kiritool.exe"は どこにもありませんでした。 Windows98で桐はVer9です。 難しい説明は私には理解出来ませんので、出来ましたら、 システム以降のVer9での書き方をズバリお教え頂けないでしょうか? 宜しくお願いします。 |
|
|
||||||||||||
もしかして・・・ >表定義されてる列と列の結合 とは、 [項目A]に"東京"、 [項目B]に"駅"・・・と入ってる場合、 [項目C]に"東京駅"・と、計算結果を出す方法ですか? と、思ったりしてます |
|
|
||||||||||||
<5653>を読む前に<5654>を投稿してしまいました。 > SetWindowLongPtr 64 ビット版 Windows では ADD_WS/DEL_WS(SetWindowLong())は×ということですね。 Windows95/98 ×/2000 XP ○/WIN64 × :ADD_WS/DEL_WS(SetWindowLong()) Windows95/98 ○/2000 XP ×/WIN64 ? :ADD_CS/DEL_CS(SetClassLong()) |
|
|
||||||||||||
keiさんこんばんは。 >15年ぶりに桐でデータベースを作成しようとしていますが、 15年前ってもちろんDOS版ですね。そのころとは定義画面や桐そのものも 違ってきてるかもしれませんが、WIN版になって便利になってます 是非使いこなしてくださいね ところで、 >表定義されてる列と列の結合 との質問ですが、WIN版での答えでよろしいのでしょうか? 結合といってもたくさんの方法があります。 仮に「月表.tbl」1〜12、「日表.tbl」1〜31のデータが入ってて 1年のカレンダーを作成する方法とか、「商品マスタ.tbl」「売上・仕入.tbl」が あって、現在の在庫を求める方法とかいろいろできると思います もう少し具体的な内容をお書きいただければお答えできますが・・・ もし、WIN版桐でしたらインストールしたフォルダーにサンプルがありますので それをお試しいただき、どの表をどうさわったとか記載いただければ 幸いです 桐の結合は強くて覚えれば仕事利用できると思います。 がんばってくださいね |
|
|
||||||||||||
> Windows 95/98:hWnd パラメータで指定したウィンドウが > SetWindowLong 関数を呼び出したスレッドと同じプロセス > に属していないと、SetWindowLong 関数は失敗します。 まとめると Windows95/98 ×/2000 XP ○ :ADD_WS/DEL_WS(SetWindowLong()) Windows95/98 ○/2000 XP × :ADD_CS/DEL_CS(SetClassLong()) 他のアプリケーションから書き換えるというのがAPIの想定外の使い方とはいえ、 OS によって動作が違うのは困り物ですね。当然将来の新OSでの動作も不定と思えます。 プログラマから見ると SetWindowLong()/SetClassLong()はWIN32APIの基礎といえる WindowsNT3.5からの関数なのでOSバージョンに依存しない振る舞いをして欲しく思います。 |
|
|
||||||||||||
一応、のちのために? (^^; > SetWindowLong() に Windows98SE は厳しく、XP/2000 は甘いという事は、 > OS 自体が XP/2000 が堅牢なので、アプリケーションへの動作制限が少ないのでしょうか。 SetWindowLong は、今後 32 ビット版 Windows と 64 ビット版 Windows の 両方ともと互換性のあるコードの記述のために SetWindowLongPtr に置き 換わるようですが、そちらだと プラットフォーム SDK SetWindowLongPtr http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_setwindowlongptr.asp > hWnd > ウィンドウのハンドルを指定します。呼び出し側スレッドとは > 異なるプロセスに属しているウィンドウを hWnd パラメータで > 指定すると、この関数は失敗します。 と再び、よそのプロセスからは制御できなくなってしまうよう ですね! |
|
|
||||||||||||
> SetWindowLong 自体は遠い昔!閉じるボタンの制御で Access から桐を > 制御したときも Windows98 で通ったはずではあるのですけどね!? これは記憶違いでしたね! 出来なくてどうして?って不思議がって いたのでした。 (^^ゞ 調べなおしたら一番最初は 1999年の初めの事でした。 なんか同じ事(間違い)を二人して繰り返していますね! > T.Samura さん (;_;) と言うことで、Windows98/95 では桐のように直接 API を呼べない アプリでは SetWindowLong を使って(外部から)ウィンドウスタイル を書き換えるのは無理と言うことですね! > Windows 95/98:hWnd パラメータで指定したウィンドウが > SetWindowLong 関数を呼び出したスレッドと同じプロセス > に属していないと、SetWindowLong 関数は失敗します。 これって昔調べたときは載っていたっけ? (?_?) |
|
|
||||||||||||
プラットフォーム SDK SetWindowLong http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_setwindowlong.asp > Windows 95/98:hWnd パラメータで指定したウィンドウが > SetWindowLong 関数を呼び出したスレッドと同じプロセス > に属していないと、SetWindowLong 関数は失敗します。 これですか!? |
|
Copyright (C) 2000 CGI Arkadia All rights reserved. Script written by Shintaro Wakayama. BBS-TypeN Ver.2 Preview4 remodel advice by hidetake |