強制的にアプリケーション切り替え

このエントリーをはてなブックマークに追加
1名無しさん@そうだ選挙にいこう
特に忙しい処理をしているわけではないのに、アプリケーションの切り替えを禁じているアプリケーションがありますよね。
たとえば、シェアウェアの金払え!ダイアログとか、MacCDRの「ブランクディスクを挿入して下さい」ダイアログとか・・・

このような時に強制的にこのソフトをバックグラウンドに切り替える方法はないんでしょうか。
2名無しさん@そうだ選挙にいこう:2000/06/30(金) 00:02
それはモーダルダイアログという、
明示的に切り替えを禁じたダイアログですから
どうしても動かしたければソフトかOSに手を加えないとダメです。

移動出来るようにする機能拡張は昔ありましたが・・・
3名無しさん@そうだ選挙にいこう:2000/06/30(金) 00:19
ResEditでちょこちょこっと改造したらできあがり!みたいな簡単なものですか?

それともバイナリをいじらないとだめなんですか?
4名無しさん@そうだ選挙にいこう:2000/06/30(金) 00:30
Mac OS 8.5から(?)ファイル保存ダイアログ等は開いたままでも裏で作業
できるようになったしウインドウの移動もできます。

それと「**ディスクを挿入して下さい」のダイアログはたぶんOS 9
ぐらいからキャンセルのボタンが付いたし、それ以前でもCommand+ピリオド
でキャンセルできます。
5名無しさん@そうだ選挙にいこう:2000/06/30(金) 00:40
んー、とりあえず俺はMacCDRの「ブランクディスクを挿入して下さい」ダイアログ
のときにファインダーに切り替えたいんです。できないもんでしょうか?
6名無しさん@そうだ選挙にいこう:2000/06/30(金) 00:52
>>4
どちらもソフトが対応してなけりゃ昔のままですが・・・

>>5
どうしてそのタイミングでFinderに戻りたいんですか?
7名無しさん@そうだ選挙にいこう:2000/06/30(金) 03:37
>6
ごもっともです、失礼しました
でもメディア挿入のウインドウはかなり昔 -OS 7以前?- からCommand+.
で抜けられませんでした?FDDのゲームとかの頃から。

あとシェアウエアの「金払え」ダイアログは・・・勘弁してやって下さい。
8名無しさん@そうだ選挙にいこう:2000/06/30(金) 07:22
MacCDRでCDのバックアップをする時、
CDからデータを吸い出したあと焼くわけですが、焼く前の段階で
HDにあるtempファイルをいじりたいんです。
9名無しさん@そうだ選挙にいこう:2000/06/30(金) 07:35
そりゃきっと途中でいじられるとすごく困るファイルだからです
10>8:2000/06/30(金) 07:49
>MacCDRでCDのバックアップをする時、
CDをDiskCopyのイメージにしてマウントすればいじれるじゃん。
11名無しさん@そうだ選挙にいこう:2000/06/30(金) 08:50
>8
うまくいくかどうかわからないけど、
ResEditでアプリケーションを開いて、そのダイアログのリソース
を探す('DLG'リソース)。目的のダイアログが見つかったら、
ウインドウのスタイルをMoverble Modal(上に並んでる絵の内、
まん中に"5"と書かれているやつ)を選ぶ。

その'DLOG'リソースと同じIDで、新しく'dlgx'リソースを作る。
(Edit->Create New Resourceを選んで、エディットフィールドに
'dlgx'と入れる。この状態ではIDが128になってるから、それを選んで
Edit->Get Resource Infoを選び、ID欄に先ほどのDLOGリソースと
同じ数字を入れる)。

dlgxリソースを開く。
ResEditには通常dlgxリソースを編集するテンプレートがないので、
直接Hexで編集するウインドウが開く。そしたら、先頭から
0000 0000 0004
と入れる。

保存して終了。
これで、MacOS 8.1以上ならひょっとすると
バックグラウンドに切り替えられるかも。
1211:2000/06/30(金) 09:09
ごめん。新規リソース作成はEdit->Create New Resource
じゃなくて、Resource->Create New Resourceだった。

アピアランスマネージャーによって、従来動かせない
モーダルダイアログを表示するのに使われていた
ModalDialog()関数で、ダイアログを動かしたり、他の
アプリに切り替えたりする事ができるようになったんだけど、
ダイアログが動かない事を前提として作られたアプリケーション
でダイアログを動かしたりすると、今までダイアログに隠れていた
ウィンドウが再表示される時に、白いまま抜けてしまったり
する不具合が出る。きちんと対応するにはアプリを書き換えないと
だめだから、ModalDialog()呼び出し中にダイアログ動かしたり
アプリ切り替えたりしてもいいかどうか、OSはdlgxリソースを見て
判断するわけ。
だから、このdlgxリソースを追加すれば、OSの方でマウスクリック
などを判断して他のアプリケーションに切り替えてくれる。
ただし、画面のアップデート不良とかが起こる可能性がある。

すでに'DLOG'と同じIDの'dlgx'リソースがある場合、
その中身はおそらくダイアログの見てくれをアピアランスマネージャー
対応にしているが、動かせないという設定にしてあると思われる。
この場合、上記最後の'4'の部分を、すでに入っている数字と
4のorを取った値に変える必要がある。具体的には、以下のように
変更する
元の値→修正値
 0   4
 1   5
 2   6
 3   7
 8   C

以上
13名無しさん@そうだ選挙にいこう:2000/06/30(金) 21:20
B'sではその改造で切り替えができました!サンクスです。

しかし、MacCDRではDLOGに「ディスクを入れて下さい」のダイアログらしきものが見当たりません。
DITLにそれっぽいのが入っているんですが・・・・。
14名無しさん@そうだ選挙にいこう:2000/07/01(土) 00:47
その場合、DLOGじゃなくてALRTリソースかもしれない。該当DITL
と同じIDのALRTリソースがあるか確認して。

もしあったら。
今度はdlgxじゃなくて、同じIDの'alrx'リソースを作る。中身は
0000 0000 0004 0000
0000 0100 00
でOK。
15名無しさん@そうだ選挙にいこう:2000/07/01(土) 15:15
できました!ありがとうございます。

これでMacのバックアップ事情に新展開が・・(謎)
やっぱコピー野郎だったか。(--#
6にちゃんと答えないからおかしいと思ってたが・・・