過去の桐井戸端BBS (桐ver.9)
20426 桐でだけ違うIMEを使いたい(桐v9) 悲しげ 2003/05/19-19:37
詳しい前提を省略しますが(^^;)、過日よりWin2000マシンに松茸4.1をセットアップし、
桐(v9)の環境設定では松茸を使用するにチェックを入れて、しばらく試していました。

が、どうも塩梅がよろしくないところがありまして、結局元に戻すことにしました。
ちなみに私は一般的にはATOK(15)の方が好みなのですが、残念ながら、
このATOKも桐上では塩梅がよろしくないものがあります。(この辺りの詳しいことも省略します)

つー訳で、私の特殊な環境に限っての話ですが、
桐にはMS-IME(2000)が一番相性が悪くないようでした(相対的に)。

で、いま希望していることをズバリ云えば──
普段はATOK15を使い、桐を使うときだけMS-IMEを使いたい(まるで桐上でだけ松茸を使う時のように)。
このようなことを自動的に(且つ簡単に)行うことは、そもそも可能でしょうか?
やはり、タスクトレイにあるアイコンをその都度クリックして切り替えるしかありませんか?

20432 Re:桐でだけ違うIMEを使いたい 佐田 守弘 2003/05/20-01:07
記事番号20426へのコメント
悲しげさん
左Ctrl+Shiftんどで切り替える方法があります。
但し、Windows上でその設定を行う必要があります。
コントロールパネルから選ぶメニューで行うのですが、
OSによって少し異なります。
Xpは「地域と言語のオプション」から「言語」を選びます。
Windows98では「キーボード」から「言語」だったと思いました。
Windows2000は使ってないので分りませんが、どこかにあるはずです。

佐田守弘(KS-00119)
20433 Re:桐でだけ違うIMEを使いたい hidetake 2003/05/20-08:09
記事番号20432へのコメント
IME(入力ロケール) の切り換え自体は,トレイのアイコン
コントロールパネル,あるいは,設定したキーシーケンスで変更は可能ですよね。

これを如何に自動化するかですが,この変更が生きるのは
そのウィンドウ上だけが有効であり,その他のウィンドウは
デフォルトの IME の方が有効のままのようです。

この切り換えの為の制御方法は API や WMI 等,何か方法があると思いますが,
桐から一番簡単にできるのはやっぱWSH(VBS)になってくると思います。

例えば,コントロールパネルの「キーボードのプロパティ」で
ATOK のキーシーケンスを Alt + Shift + 0 に IME2000のキーシーケンスを
Alt + Shift + 1 に設定したとしてこれでキーボードのからの変更も1発でできるようになりますが,
これを自動化するために次のような VBS を作ります。

setime2000.vbs
----------------------------------------------------
Dim WS
Set WS = WScript.CreateObject("WScript.Shell")
WS.Sendkeys("%+1")
Set WS = Nothing
WScript.Quit
----------------------------------------------------

そして,これを桐の中(これが重要)で実行すれば一応は可能なようです。

環境設定で「起動時の一括実行指定」に上記 VBS をシェル実行で起動する .CMD を作成し実行させれば良いようです。

簡単に試してみた限り ATOK と IME2000 の切り換えはこれで一応制御できました。

ただ,「起動時の一括実行指定」で実行させているので
関連付けからダブルクリック等で起動させた場合は無効に
なってしまいますね。


20445 Re:桐でだけ違うIMEを使いたい 悲しげ 2003/05/20-15:11
記事番号20433へのコメント
どもっ、佐田さん、hidetakeさん、おありがとうございました。<(_ _)>
で、#20433のhidetakeさんの仰るやり方で試してみました。
が、どうも挙動がよく判らないので続けて質問させて下さい。

1.
>例えば,コントロールパネルの「キーボードのプロパティ」
>で ATOK のキーシーケンスを Alt + Shift + 0 に IME2000
>のキーシーケンスを Alt + Shift + 1 に設定したとして
>これでキーボードのからの変更も1発でできるようになり

つーことで
コントロールパネル〜入力ロケール〜「入力ロケールのホットキー」で
----------------------------------------------------
アイテム                キーシーケンス
入力ロケールを切り替える           (なし)  a)
日本語-ATOK15に切り替える        左Alt+Shift+0  b)
日本語-日本語(MS-IME2000)に切り替える  左Alt+Shift+1  c)
日本語-松茸ver.4.1に切り替える        (なし)  d)
(本当はもうひとつありますけど省略)
----------------------------------------------------
のように設定しましたが、例えばAlt+Shift+1でもIMEは全く不変でした。
次に、a)のキーシーケンスを「左Alt+Shift」に変更すると、変わるよう
になりましたが、しかしながらAlt+Shift+任意の数字キーの何れを押下しても
b)→c)→d)→b)→c)→d)……のようになってしまいます。
例えばc)の時に、Alt+Shift+0を押下してもb)にはならずd)になると云う。

2.
次に、以下のテキストファイルを作りました。
----------------------------------------------------
Dim WS
Set WS = WScript.CreateObject("WScript.Shell")
WS.Sendkeys("%+1")
Set WS = Nothing
WScript.Quit
----------------------------------------------------
これを"setime2000.vbs"なる名で保存しましたが、どこに保存したらよかったのでしょう?
暫定的に C:\K3\Kiriv8\ に保存してみたのですが・・・・

3.
同じフォルダに"setime2000.cmd"なる一括処理ファイルを作成しました。
その中味は
----------------------------------------------------
シェル実行 "C:\K3\Kiri\setime2000.vbs",表示=最小化,&実行リターン
----------------------------------------------------
の1行のみ。

4.
桐v9の環境設定/一括タブ「起動時の一括実行指定」は
----------------------------------------------------
C:\K3\KIRIV9\setime2000.cmd
----------------------------------------------------

以上のように設定して、桐v9を起動してみたのですが、
IMEは変わりませんでした。
そもそも1の時点で怪しいのかもしれませんけど。

以上、どこが駄目なのでしょう?
あまりに初歩的に過ぎて、何だか恥ずかしい限りですが。(^^;)

20446 Re:桐でだけ違うIMEを使いたい 悲しげ 2003/05/20-15:23
記事番号20445へのコメント
失礼しました。
自分で書いたものをボーッと眺めていて問題の所在に気づきました。

×シェル実行 "C:\K3\Kiri\setime2000.vbs",表示=最小化,&実行リターン
            ↓
○シェル実行 "C:\K3\KiriV9\setime2000.vbs",表示=最小化,&実行リターン

でしたね。(^^;)
このように訂正すると、おおおおおおおおおお、桐起動中はMS-IMEで、
桐を終了すると、(なぜかマウスを1回クリックすれば)ATOKに変わりました。
ただし、これでOKと思いきや、今は、Wzでこれを書いているのですが、
ありゃ、またMS-IMEになってる。(?_?)

#20445の「1」の疑問も(?_?)のまま、う〜ん、ますますよく判りません。

20447 Re:桐でだけ違うIMEを使いたい 悲しげ 2003/05/20-15:26
記事番号20445へのコメント
ここもタイプミス(^^;)。これはこのBBSに書くときに間違っただけですが

×暫定的に C:\K3\Kiriv8\ に保存してみたのですが・・・・
           ↓
○暫定的に C:\K3\Kiriv9\ に保存してみたのですが・・・・
20449 Re:桐でだけ違うIMEを使いたい hidetake 2003/05/20-16:13
記事番号20446へのコメント
>#20445の「1」の疑問も(?_?)のまま、う〜ん、ますますよく判りません。

こちらの問題が解決しないと動作は不安定でしょうね?

再度私のところで試してみてもうまく行くようです。

私の環境は Windows20000 で,いつもは ATOK14 だけを使っています。
一応 IME2000 も入っておりますが入力ロケールの欄からは
削除されていて通常は ATOK14 しか登録されていない状態です。

今回は「追加」で MS-IME2000 を登録して ATOK14 と
MS-IME2000 の2つが登録されている状態での実験です。
松茸はインストールもされていません。

で,先の設定で ATOK14 が「規定値」の設定でキーシーケンスが 左Alt + Shift + 0 で MS-IME2000 が
左Alt + Shift + 1 としてあり,タスクバーにインジケータを表示するにもチェックが入っています。
(通常はインジケータさえも非表示)入力ロケールを切り換えるは「(なし)」でも「左Alt +Shift」のどちらでも同じようでした。

この状態で別に問題は無いようです。

私は WZ はいつも常駐させているので,これも外した状態でやってみましたが,正常に動作します。

この状態で,桐以外では(桐の起動中でも終了後でも)
IME は全て ATOK に自動的に切り替わってくれます。
桐にもどると,桐は MS-IME2000 での入力になります。

他に私が常駐させているものと言えば Altime もあるけど,関係あるかなぁ〜

IME はどちらも「変換」キーだけで On/Off できるようにも設定してあります。

あと,Sendkeys("%+1") の
% が Alt キー
+ が Shift キー
で,"%+1" と書く事で,Alt キーと Shiftキーを同時に押しながら 1 を押すという動作になります。

キーシーケンスを変更する場合はこの設定も変えて下さい。


20450 Re:桐でだけ違うIMEを使いたい hidetake 2003/05/20-16:21
記事番号20449へのコメント
ちなみに,「松茸」を入力ロケールの欄から削除してみたらどうなるでしょう?

以前の桐(桐8の初期)ですと,松茸が登録してあるだけで,
使いもしないのに「環境設定」の松茸の使用・不使用の設定にもかかわらず,
必ず桐の起動時に松茸が常駐させられるという,
わけのわからない無駄な仕様がありました。
そして,IMEの欄から松茸を削除すると
松茸の常駐を止める事が可能でした。

ただ,これは桐の SP5 か SP6 で変更になって使用しない場合は
無駄な常駐はやめたはずなのです。

今回は桐9 でしょうし,関係なさそうな気もしますが
私は松茸は入れてないわけだし,一度試して下さい。

必要になったら「追加」の欄で選択して追加するだけです。


20451 Re:桐でだけ違うIMEを使いたい hidetake 2003/05/20-16:50
記事番号20450へのコメント
>ちなみに,「松茸」を入力ロケールの欄から削除して
>みたらどうなるでしょう?

それと IME アイコンはトレイに入れた状態では無いですよね?
もし入れた状態なら出した状態で試してみて下さい。

良くわからないけど,某所の書き込みでは全く違う状態のようなことも書いてあったけど・・・


なんか,松茸もしくはもう1つのIME がうまく W2K のキーシーケンスに
追従できなくておかしな状態になっているようなっているのかも知れません?

20452 Re:桐でだけ違うIMEを使いたい hidetake 2003/05/20-17:07
記事番号20451へのコメント
ちなみに私の環境では Windows XP professional での
ATKO14 + MS-IME2002 でも何も問題なく動いてくれました。
なお,こちらは特に常駐ソフトなども入れてない素直な環境です。


20459 Re:桐でだけ違うIMEを使いたい(殆ど解決) 悲しげ 2003/05/20-23:33
記事番号20452へのコメント
え〜と、まず#20451
>それと IME アイコンはトレイに入れた状態では無いですよね?
>もし入れた状態なら出した状態で試してみて下さい。

「トレイから出す」の意味がよく判らなくて、検索サーバーで調べてようやく判りました(^^;)。
結論的には最初から「トレイから出」ていました。
ところで、今回改めて気づいたことに、「トレイに入れた」状態だと
「あ」「ア」と現在のIMEの状態が表示されるので却って便利だと感じたのですが、
これを出した方がいい理由は何なのでしょう?

次、#20449、松茸ともうひとつ(Japanist2002)を入力ロケールから削除してみました。
が、挙動は全く変わりませんでした。

……と、突然気づきました。(^^;)
「左Alt+Shift+0」とか「左Alt+Shift+1」で云う数字キーってのは、
メインキーボードの数字のことだったんですね。
であれば、確かに、予期どおりの挙動でした。
実は私が試していたのは、全てテンキーボードの数字キーだったのです。
テンキーからだと、「左Alt+Shift+全ての数字」で登録してあるIMEが
ひとつづつ順繰りに変わって行くのでした。(^^;)
メインキーとテンキーのこの違いは、松茸とかが存在しても同じでした。

それと#20433
>ただ,「起動時の一括実行指定」で実行させているので
>関連付けからダブルクリック等で起動させた場合は無効に
>なってしまいますね。

この点は、例えばデスクトップのwfmのショートカットからの起動でも同じなのですね。
ショートカットのプロパティで「リンク先」が

C:\K3\KIRIV9\System\KIRI9.EXE -R D:\St\MainMenu.wfm -DP D:\St

となっていても無効でした。
だからこの場合は、当該MainMenu的フォームの「名札 メイン部」において、
例のvbsをシェル実行させたら活きました。
でも、逐一これをシェル実行させるべくkevを書き換えるのは少々面倒ではあります。(^^;)

と云う訳で、本件ほとんど解決かと思います?

20460 Re:桐でだけ違うIMEを使いたい(殆ど解決) うにん 2003/05/20-23:42
記事番号20459へのコメント
>この点は、例えばデスクトップのwfmのショートカットからの起動でも同
>じなのですね。ショートカットのプロパティで「リンク先」が
>
>C:\K3\KIRIV9\System\KIRI9.EXE -R D:\St\MainMenu.wfm -DP D:\St
>
>となっていても無効でした。だからこの場合は、当該MainMenu的フォーム
>の「名札 メイン部」において、例のvbsをシェル実行させたら活きました。
>でも、逐一これをシェル実行させるべくkevを書き換えるのは少々面倒で
>はあります。(^^;)

桐関連ファイルの関連付け自体をvbsの起動にしてしまって、
vbsでIMEを切替えてから桐を起動するってのはできませんかね?

20461 Re:桐でだけ違うIMEを使いたい(さらに殆ど解決) 悲しげ 2003/05/20-23:44
記事番号20459へのコメント
またまた気づきました。(^^;)

>実は私が試していたのは、全てテンキーボードの数字キーだったのです。
>テンキーからだと、「左Alt+Shift+全ての数字」で登録してあるIMEが
>ひとつづつ順繰りに変わって行くのでした。(^^;)

これは全っ然、関係なかったですね。(^^;)(^^;)
コントロールパネル〜入力ロケール〜「入力ロケールのホットキー」で
----------------------------------------------------
アイテム               キーシーケンス
入力ロケールを切り替える        左Alt+Shift

となっているから「左Alt+Shift」を押しただけで(もうひとつテンキーの数字キーを押そうが押すまいが)、
登録IMEが順繰りに変化していっただけのことでした。あぁ、恥ずかし(^^;)(^^;)(^^;)

ps.
紛らわしいので、ここんとこは次のように変えました。
                     ↓
入力ロケールを切り替える        (なし)

20462 Re:桐でだけ違うIMEを使いたい(殆ど解決) hidetake 2003/05/20-23:59
記事番号20460へのコメント
>桐関連ファイルの関連付け自体をvbsの起動にしてしまって、
>vbsでIMEを切替えてから桐を起動するってのはできませんかね?

これはダメです。

一番最初に VBS 経由の桐起動でやってみましたが無効でした。
例えば,コマンドプロンプト(CMD.EXE)から VBS で桐を起動しても,
コマンドプロンプトのウィンドウにカーソルがあると IME2000 の状態となりますが,
桐にフォーカスが当たるとATOK に戻ってしまいます。
ファイル名を指定して実行からも桐の IME は切り換えられません。

あくまでも,そのプロセス内(子プロセスも含む?)で実行した場合に,
そのプロセス上だけで IME の状態が切り替わるようです。

だから,VBS からでは無く,桐を起動するプログラムを作って
そのプログラムが子プロセスとして桐を起動するなら,
その桐を起動する前の段階で IME を切り換えておけば有効になるのだと思います。


20463 Re:桐でだけ違うIMEを使いたい(殆ど解決) hidetake 2003/05/21-00:08
記事番号20462へのコメント
>>桐関連ファイルの関連付け自体をvbsの起動にしてしまって、
>>vbsでIMEを切替えてから桐を起動するってのはできませんかね?
>これはダメです。

ちなみに私の桐の起動の関連付けは VBS 経由の起動になっていますので,
そのスクリプト自体に sendkeys の切り換えを付け加えてみました。

エクスプローラからテーブルファイルのダブルクリックで桐を起動すると,
エクスプローラのウィンドウがIME2000 に切り替わるものの,
桐にフォーカスが移るとATOK になってしまいます。


20464 Re:桐でだけ違うIMEを使いたい(殆ど解決) hidetake 2003/05/21-01:15
記事番号20463へのコメント
>>これはダメです。

これは間違いでした!

と言うか IME を切り換えてから桐を起動してもダメですが
桐が起動し終わってから,フォーカスを桐に合わせた上で
IME を変更する事で可能でした! (^_^;

次のようなスクリプトで可能でした。継ぎ接ぎで拡張していったので見苦しいですが・・・

私の場合の関連付けは次の通りです。
"wscript.exe" "C:\Program Files\KIRIv9\System\KIRI.VBS" /O "%1"

記事が長すぎたようでスクリプトは次のコメントで・・・


20465 Re:桐でだけ違うIMEを使いたい(殆ど解決) hidetake 2003/05/21-01:16
記事番号20464へのコメント
======================================================================
kiri.vbs
----------------------------------------------------------------------
Option Explicit
Dim WS, FS, Arg
Set WS = WScript.CreateObject("WScript.Shell")
Set FS = WScript.CreateObject("Scripting.FileSystemObject")
Set Arg = WScript.Arguments

Dim KiriVer, KiriPath, KiriExe, File, Name, Path
KiriVer = WS.RegRead("HKCR\.tbl\")
If KiriVer = "Kiri8tbl" Then
KiriPath = WS.RegRead("HKLM\SOFTWARE\K3\KIRI\8.0\Path")
KiriExe = KiriPath + "\System\kiri8.exe"
ElseIf KiriVer = "Kiri9tbl" Then
KiriPath = WS.RegRead("HKLM\SOFTWARE\K3\KIRI\9.0\Path")
KiriExe = KiriPath + "\System\kiri9.exe"
Else
Ret = WS.Popup( "桐の関連付けがありません!" _
, 0 _
, "桐の関連付け確認" _
, 0)
Set Arg= Nothing
Set FS = Nothing
Set WS = Nothing
WScript.Quit
End If

Dim Locator, Service, Prc, Ret, Pid, MesStr

Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer
Set Prc = Service.Get("Win32_Process")

If Arg.Count > 1 Then
File = Arg(1)
If FS.FileExists(File) Then
Name = FS.GetFile(File).Name
Path = FS.GetFile(File).ParentFolder
If Right(Path,1) = "\" Then
Path = Path & "\"
End If
'WS.Run("""" + KiriExe + """ /DP """ + Path + """ " + Arg(0) + " """ + Name + """")
Ret = Prc.Create("""" + KiriExe + """ /DP """ + Path + """ " + Arg(0) + " """ + Name +
"""", Null, Null, Pid)
If Ret <> 0 Then WScript.Quit
SetIme()
Else
MsgBox "ファイルが存在しません!"
WScript.Quit
End If
ElseIf Arg.Count = 1 then
File = Arg(0)
If FS.FileExists(File) Then
Name = FS.GetFile(File).Name
Path = FS.GetFile(File).ParentFolder
If Right(Path,1) = "\" Then
Path = Path & "\"
End If
'WS.Run("""" + KiriExe + """ /DP """ + Path + """ /O """ + Name + """")
Ret = Prc.Create("""" + KiriExe + """ /DP """ + Path + """ " + Arg(0) + " """ + Name +
"""", Null, Null, Pid)
If Ret <> 0 Then WScript.Quit
SetIme()
Else
MsgBox "ファイルが存在しません!"
WScript.Quit
End If
Else
'WS.Run("""" + KiriExe + """")
Ret = Prc.Create("""" + KiriExe + """", Null, Null, Pid)
If Ret <> 0 Then WScript.Quit
SetIme()
End If

Set Prc = Nothing
Set Service = Nothing
Set Locator = Nothing
Set Arg= Nothing
Set FS = Nothing
Set WS = Nothing
WScript.Quit

Sub SetIme()
WScript.Sleep 1000
WS.AppActivate Pid
WS.Sendkeys("%+1")
End Sub
======================================================================


20469 Re:桐でだけ違うIMEを使いたい(vbs編) 悲しげ 2003/05/21-19:40
記事番号20464へのコメント
どもっ、hidetakeさん

>私の場合の関連付けは次の通りです。
>"wscript.exe" "C:\Program Files\KIRIv9\System\KIRI.VBS" /O "%1"

すみません、もう少しおつきあい下さい。
#20465のスクリプトをそのまんま"kiri.vbs"の名で保存してみました。
(保存フォルダだけはC:\K3\としました)
で、試してみようと思ったのですが、あのう、関連づけの変更はどのようにやるんでしょう?
例えば、マイコンピュータ→ファイル→プロパティから、wfmファイルについて、
ファイルタイプ アプリケーション→「変更」を選び「その他」で
 C:\Winnt\System32\Wscript.exeを指定した後、
  "wscript.exe" "C:\K3\KIRI.VBS" /O "%1"
と記述すると、
  C:\Winnt\System32\wscript.exe" "C:\K3\KIRI.VBS" /O "%1"
  上記のファイル名は無効です
と出てしまいます。初歩の初歩ですみません。<(_ _)>
(ちなみにエラーの左端に " が無いのはタイプミスではありません)

20473 Re:桐でだけ違うIMEを使いたい(vbs編) hidetake 2003/05/21-20:53
記事番号20469へのコメント
まず関連付けを変更する前に,先の VBS が悲しげさんの環境でまともに動作するか確認して下さい。

取り敢えず,コマンドプロンプトから
C:\K3\KIRI.VBS
と実行してどうなるか?

次にターゲットのファイルを指定して
C:\K3\KIRI.VBS x:\path\target.tbl

C:\K3\KIRI.VBS x:\path\target.wfm
等と指定して,正常に機能するか? この場合 /O 付きで起動されます。

そして,起動オプション付き(関連付けの場合の実行方法です)で指定して
C:\K3\KIRI.VBS /O x:\path\target.tbl

C:\K3\KIRI.VBS /D x:\path\target.tbl
で機能するかを確認して下さい。

その上で,関連付けの変更は
>例えば、マイコンピュータ→ファイル→プロパティから、wfmファイルに
>ついて、ファイルタイプ アプリケーション→「変更」を選び「その他」
「変更」では無く「詳細設定」です。
「Open」や「Redefine」をクリックして編集で書き換えます。

なお,この桐の関連付けを一挙に変更する VBS も私のところでは前に
md_kopen.vbs と言う名で公開しておりました。今もそのままおいてあります。 (^^;


20474 Re:桐でだけ違うIMEを使いたい(vbs編) 悲しげ 2003/05/21-21:16
記事番号20473へのコメント
どもっ、hidetakeさん

>「変更」では無く「詳細設定」です。
>「Open」や「Redefine」をクリックして編集で書き換えます。

おー、アイシー、アイシー、(^^;)
マイコンピュータ→ファイル→プロパティ
じゃなくて
マイコンピュータ→ツール→フォルダオプション→ファイルタイプ
の方でしたね。(^^;)
※ところで「Redefine」って再定義のことですか?
え〜、これは次の段階でやってみますが、その前に

>取り敢えず,コマンドプロンプトから
>C:\K3\KIRI.VBS
>と実行してどうなるか?

やってみると、早速にエラーメッセージが出ました。(^^;)
---------------------------
スクリプト: C:\K3\KIRI.VBS
行:     41
文字:    87
エラー:   構文エラーです。
コード:   800A03EA
ソース:   Microsoft VBScript コンパイルエラー
---------------------------
さて?
20475 Re:桐でだけ違うIMEを使いたい(vbs編) 悲しげ 2003/05/21-21:28
記事番号20474へのコメント
スクリプト実行の「構文エラー」の原因判明。
掲示板からそのまんまコピペしたので、41行目と57行目が改行コード
でもって分断されていたからでした。
これを除去してコマンドプロンプトから再実行させたら桐が立ち上がりました。
この点のみ、とりいそぎ・・・

20476 Re:桐でだけ違うIMEを使いたい(vbs編) hidetake 2003/05/21-21:34
記事番号20473へのコメント
>md_kopen.vbs

前のものをホンの少しだけ変えて,「桐井戸端BBSを補完するために」
にアップしておきました。
md_kopen.vbs
桐の関連付けを桐のシステムフォルダにある
kiri.vbs 経由の起動に変更するための VBSです。
あまりテストしていないため事故自己責任モードで・・・ (^_^ゞ



kiri.vbs は桐のシステムフォルダ \system フォルダに
あるものとして設定されます。

動きとしては,レジストリから .tbl の設定を読み
Kiri8tbl か Kiri9tbl かで,桐のバージョンを判断します。
その結果で,レジストリの
HKLM\SOFTWARE\K3\KIRI\8.0\Path
もしくは
HKLM\SOFTWARE\K3\KIRI\9.0\Path
を読み,桐のインストールフォルダを取得します。
そして,関連付けを変更します。

.cmd に関しては,現在の設定により Kirixcmd か cmdfile
を見て,「桐」に関連付けられているか,「Windows NT コマンド スクリプト」に関連付けられているかを
チェックし,「Windows NT コマンド スクリプト」だったら,
右クリックで「桐」での実行か再定義かを指定して処理できるように関連付けを追加します。

もし,関連付けを元に戻したかったら,KiriExe の部分の設定を少々弄り,
kiri8(9).exe に変更して実行すれば良いでしょう・・・

一応,参考としての無保証・事故自己責任としてアップと致します。 (^_^ゞ

もし,実行する場合はレジストリのバックアップは必ず取った上で行って下さい。 (^^;


20477 Re:桐でだけ違うIMEを使いたい(vbs編) 悲しげ 2003/05/21-21:41
記事番号20473へのコメント
中間続報。(^^;)

>次にターゲットのファイルを指定して
>C:\K3\KIRI.VBS x:\path\target.tbl
>や
>C:\K3\KIRI.VBS x:\path\target.wfm    ←★
>等と指定して,正常に機能するか? この場合 /O 付きで起動されます。
>そして,起動オプション付き(関連付けの場合の実行方法です)で指定して
>C:\K3\KIRI.VBS /O x:\path\target.tbl
>や
>C:\K3\KIRI.VBS /D x:\path\target.tbl
>で機能するかを確認して下さい。

上記4例全て挙動しました。
※ただ★印のwfm指定の場合は「表は既に使用されています」のmsgが出ます。
 エクスプローラ等からの起動ではこのようなmsgは出ませんが。

次は、いよいよ関連づけの変更にかかります。

20478 Re:桐でだけ違うIMEを使いたい(vbs編) hidetake 2003/05/21-21:51
記事番号20476へのコメント
>kiri.vbs

これも下記にアップしておきました。

kiri.vbs
桐の起動用 VBS です。参考として・・・

ただし,自分用のものをアップしたので SetIme() の部分はコメントアウト化してあります。
必要な場合は' を外して下さい。

この kiri.vbs も,この本題以外の機能も数多く含まれた
私が必要な機能を取り込んだ起動スクリプトです。

桐8 と桐9 が複数インストールされている環境を考慮し
レジストリから現在の関連付けされている桐のバージョンまで
チェックして起動しているし,ファイルを指定して
起動された場合には,そのフォルダがデータフォルダとなるように
/DP オプションまで付加して桐が実行されるようにまでなっています。 (^_^ゞ


20479 Re:桐でだけ違うIMEを使いたい(vbs編) 悲しげ 2003/05/21-22:05
記事番号20477へのコメント
No.20476と20478の方は後回しにして、とりあえず、マイコンピュータ等からの関連づけの変更を、
wfmについてだけ試してみました。
結果は良好です。今回の発端となったimeの切り替えにも成功しています。
ただ、vbsからの起動では、桐ウィンドウの最大化状態は復元されないのですかね?
それと、デスクトップのwfmのショートカット(プロパティで「リンク先」を
次のように設定してあるもの)からの起動にも関与しないような?
C:\K3\KIRIV9\System\KIRI9.EXE -R D:\St\MainMenu.wfm -DP D:\St


でも、今宵はこれまでとします。本業の方をやっつけないと(^^;)。

20480 Re:桐でだけ違うIMEを使いたい(vbs編) hidetake 2003/05/21-22:07
記事番号20477へのコメント
>※ただ★印のwfm指定の場合は「表は既に使用されています」のmsgが出ます。
> エクスプローラ等からの起動ではこのようなmsgは出ませんが。

なんでだろう? とスクリプトを見直してみたら・・・

ヽ(;´o`)丿

ファイル名だけを指定した場合の起動オプションが
抜けていて, Arg(0) が付いていましたねぇ〜 (;_;)

'WS.Run("""" + KiriExe + """ /DP """ + Path + """ /O """ + Name + """")
Ret = Prc.Create("""" + KiriExe + """ /DP """ + Path + """ " + Arg(0) +
" """ + Name + """", Null, Null, Pid)

桐の起動方法を通常の Run 方式から WMI を使った Create
方式に変更した際にコピペで抜け策だったようです。 (;_;)
起動方式を変更したのは昨日の事でした。

kiri.vbs
に関しても間違ったままです。 (;_;)

と言う事で次のように修正して下さい。 _o_

'WS.Run("""" + KiriExe + """ /DP """ + Path + """ /O """ + Name + """")
Ret = Prc.Create("""" + KiriExe + """ /DP """ + Path + """ /O """ + Name+ """", Null, Null, Pid)

書き換える場所は ElseIf Arg.Count = 1 then の後ろの方部分です。


20481 Re:桐でだけ違うIMEを使いたい(vbs編) hidetake 2003/05/21-22:11
記事番号20476へのコメント

kiri.vbs
間違いがあったので修正しておきました。 (;_;)

修正版です。



20487 Re:桐でだけ違うIMEを使いたい(vbs編) hidetake 2003/05/22-00:34
記事番号20479へのコメント
>ただ、vbsからの起動では、桐ウィンドウの最大化状態は復元されないので
>すかね?

う〜む,私は最大化はスキでない方ですので,自分の設定したまま
で起動してくれて気になりませんでした。 (^^;

>それと、デスクトップのwfmのショートカット(プロパティで「リンク先」
>を次のように設定してあるもの)からの起動にも関与しないような?
>C:\K3\KIRIV9\System\KIRI9.EXE -R D:\St\MainMenu.wfm -DP D:\St

これは
C:\K3\KIRIV9\System\KIRI9.VBS -R D:\St\MainMenu.wfm
と設定し起動して下さい。


で,悲しげさん向けに桐を最大化して起動させる特別バージョンを作りました。


先の WMI に変更した起動部分を Run 方式に戻し,オプションを加えてあります。
2番目の引数の「3」が最大化の指定です。
これ以外の指定は下記をご覧下さい。
http://www.microsoft.com/japan/msdn/library/ja/script56/html/wsmthrun.asp?frame=true

あと,Run 方式だと桐のウィンドウの作成の途中で次のステップに
行ってしまうようで,起動後の待機時間を WScript.Sleep 5000と5秒間に設定してあります。
これは環境にあわせて調整して下さい。

# ウィンドウの制御は WMI の Create でも指定できるようだけれ
# ど,どうもこの部分の指定は VBS ではとても面倒そうなので
# Run 方式に戻してしまいました。 (;_;)



20494 Re:桐でだけ違うIMEを使いたい(vbs編) hidetake 2003/05/22-10:34
記事番号20487へのコメント
># ウィンドウの制御は WMI の Create でも指定できるようだけれ
># ど,どうもこの部分の指定は VBS ではとても面倒そうなので
># Run 方式に戻してしまいました。 (;_;)

もう少し調べてみたら,そんなでもありませんでした! (^_^ゞ

Create a Process in a Hidden Window
http://www.microsoft.com/technet/treeview/default.asp?url=/technet/scriptcenter/process/ScrPcs03.asp


サンプル.vbs

Const SW_NORMAL = 1
Const SW_SHOWMINIMIZED = 2
Const SW_SHOWMAXIMIZED = 3
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &
strComputer & "\root\cimv2")
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = SW_SHOWMAXIMIZED
Set objProcess = GetObject("winmgmts:root\cimv2:Win32_Process")
errReturn = objProcess.Create("Notepad.exe", null, objConfig, intProcessID)

20495 Re:桐でだけ違うIMEを使いたい(vbs編) hidetake 2003/05/22-11:02
記事番号20494へのコメント
>ただ、vbsからの起動では、桐ウィンドウの最大化状態は復元されないので
>すかね?

最初のものは WMI の Create でプロセスを起動していましたが
スタートアップ時のウィンドウの指定(ShowWindow)は無指定(Null)でした。

これを明示的に SW_NORMAL (1) を指定して起動する事により
通常のアプリケーションの起動と同じように,以前のウィンドウの状態を
復元してアプリケーションが起動するようになるようです。

と言う事で,より一般的な状態のまま自分の欲しい機能を付加できるなりました。 (^_^)v

起動時のウィンドウ状態も以前の状態に復元できる!
一応の完成?バージョンです。

戻る