| 投稿者 |
メッセージ |
ここな

登録日: 2003年12月 19日 記事: 1912 所在地: JAPAN
|
日時: 2006.12.19 (火) 11:59 記事の件名: マクロでV5の言語環境を判断するには? |
|
|
タイトルのとおりですが、
言語環境を判断する良い方法を探しています。
日本語と英語だけしか使わないという条件で、
出来るだけ軽く、簡易的に判定する方法の
作りかけがあるのですが、見てのとおり不十分です。
何か良い判断材料はないでしょうか?
| Code: | sText = CATIA.StatusBar
lLen = Len(sText)
lLenB = LenB(StrConv(sText, vbFromUnicode))
If lLen = 0 Then
MsgBox "判断できません"
ElseIf lLenB = lLen Then
MsgBox "半角だけだから、たぶん英語環境"
Else
MsgBox "半角全角混在だから、たぶん日本語環境"
End If |
|
_________________ ブログもよろしくね。 /admin's blog |
|
| トップに戻る |
|
 |
y4yama

登録日: 2005年1月 07日 記事: 559
|
日時: 2006.12.19 (火) 14:51 記事の件名: Re: マクロでV5の言語環境を判断するには? |
|
|
前にも一度話題が出ていい案がなかったですネ・・・
1.環境変数を(あらかじめ立ち上げ時のbatで)仕込んでおけば、コードでは、一番簡単かと・・・
2.またまた、変ですが・・・StartCommandで、"3Dxビュー/ツリーのスワップ"
とか、何か、WBが無くても影響のないコマンドを実行させてみて、カタカナが通れば日本語、とか・・・
3.Partであれば、"パーツボディ"がカタカナなら日本語とわかると思ったことがあります。でもWB無しのときダメです
決定打・・・なしです |
|
|
| トップに戻る |
|
 |
ここな

登録日: 2003年12月 19日 記事: 1912 所在地: JAPAN
|
日時: 2006.12.19 (火) 16:24 記事の件名: Re: マクロでV5の言語環境を判断するには? |
|
|
お返事ありがとうございます。
いろいろ試してみました。
まず、汎用性を重視するので、環境変数による準備はNG。
次に、StartCommandによるエラー判定を試しましたが、
エラー時にメッセージボックスが表示されてしまうのでこれもNG。
そして、PartやProductを開いているときは、
必ずステータスバーにメッセージがあるようなので、
最初の全角半角判断で済みそうです。
どうやら問題なのは、
全てのファイルを閉じている状態でステータスバーに何も表示されていないときと、
マクロをバッチモードで動かすとき、みたい。
何か空データ開いて、その中のフィーチャー名で判別するしかないのかな。 |
_________________ ブログもよろしくね。 /admin's blog |
|
| トップに戻る |
|
 |
y4yama

登録日: 2005年1月 07日 記事: 559
|
日時: 2006.12.20 (水) 08:22 記事の件名: Re: マクロでV5の言語環境を判断するには? |
|
|
>次に、StartCommandによるエラー判定を試しましたが、
>エラー時にメッセージボックスが表示されてしまうのでこれもNG。
そうですネ。on errorにかからないのですね。スミマセン。
ステータスバーにメッセージ・がやはり、有望ですね(ときどき英語だけの表示が見えるけど)
以下、忘備録に近いですが
4.タイトルバーの「CATIA V5 ・・」を区別する・・のもいいかもデス
environと同じ事前設定だと、やはりダメですか。
だったら、CATIA立ち上げ時に一度は、ユーザにJP/Enを入れさせて、これを CATIA.Caption
にsetしておけば、他のマクロは、.Captionを判断だけでいいとか・・・(複雑だなぁ・・)
5.CATIAのウィンドウがひらくという条件なら、ツールバーのボタンのキャプションをWin32APIで
取得できます。新規作成・開く などがあれば日本語と。
これ、完璧だと思うんですが、プログラム行数が50行以上になりそうで・・・・ |
|
|
| トップに戻る |
|
 |
ここな

登録日: 2003年12月 19日 記事: 1912 所在地: JAPAN
|
日時: 2006.12.20 (水) 11:26 記事の件名: Re: マクロでV5の言語環境を判断するには? |
|
|
CATIAウィンドウが開かない場合でも対応できる完璧な方法をやっと見つけました。
FrameGeneral.CATSettings
に、その情報が書かれていることを突き止めました。
カスタマイズで言語環境を設定したときに、どのCATSettingsが更新されているか監視し、
さらに、xml出力で中身を確認したところ、
FrameGeneral.xml には、日本語環境の場合、
| Code: | <Attribute Name="UserInterfaceLanguage" Type="int" Size="1">
<Value>807</Value>
</Attribute> |
という項目があり、これが現行環境を示す番号であることがわかりました。
ちなみに、英語なら、
| Code: | <Attribute Name="UserInterfaceLanguage" Type="int" Size="1">
<Value>714</Value>
</Attribute> |
デフォルト(システム依存)なら
| Code: | <Attribute Name="UserInterfaceLanguage" Type="int" Size="1">
<Value>0</Value>
</Attribute> |
この情報を入手するようにすれば、
英語、日本語に限らず、どんな言語環境でも判定できます。
完璧なんですが、ただちょっと、処理工数かかりますね。
サンプルが完成したら、紹介しようと思います。
ありがとうございました。 |
_________________ ブログもよろしくね。 /admin's blog |
|
| トップに戻る |
|
 |
y4yama

登録日: 2005年1月 07日 記事: 559
|
日時: 2006.12.20 (水) 11:59 記事の件名: Re: マクロでV5の言語環境を判断するには? |
|
|
とても貴重な結果を見せていただき、ありがとうございます
完璧な方法ですネ!
(さらに忘備録に近いですが、)
6.UWSCで簡単にボタンのキャプションを読込めるので
id1 = GETID("CATIA V5")
for i = 0 to GetItem(id1,ITM_BTN)-1
print ALL_ITEM_LIST[i]
next
これを漢字判断して、ファイル渡しならすぐ使えそう・・・それか、2秒ごとに自動実行とか・・
ども、、お騒がせしました・・・  |
|
|
| トップに戻る |
|
 |
ここな

登録日: 2003年12月 19日 記事: 1912 所在地: JAPAN
|
|
| トップに戻る |
|
 |
きゃてぃゆき
登録日: 2006年12月 12日 記事: 31
|
日時: 2008.08.21 (木) 09:24 記事の件名: Re: マクロでV5の言語環境を判断するには? |
|
|
こんにちは
本トピックの5件目のここなさんの記事にある
| Quote: | カスタマイズで言語環境を設定したときに、どのCATSettingsが更新されているか監視し、
さらに、xml出力で中身を確認したところ、
FrameGeneral.xml には、日本語環境の場合、 |
についてですが、CATSettingをxml出力する方法がわかりません
これはCATIAの標準機能なのでしょうか? |
|
|
| トップに戻る |
|
 |
kantoku

登録日: 2005年12月 02日 記事: 185 所在地: 埼玉
|
|
| トップに戻る |
|
 |
きゃてぃゆき
登録日: 2006年12月 12日 記事: 31
|
日時: 2008.08.21 (木) 10:35 記事の件名: Re: マクロでV5の言語環境を判断するには? |
|
|
こんにちはkantokuさん
早々に御回答いただきありがとうございます。
無事xmlを出力する事が出来ました。
こんな便利な機能があったんですね
ただし、ここで問題が…。
他の設定に関してはしっかりと出力されているのですが、
肝心の言語環境の部分が下記のように空の状態になってしまいます。
どうしてでしょうか?
| Quote: | <Attribute Name="UserInterfaceLanguage" Type="int" Size="0">
</Attribute> |
|
|
|
| トップに戻る |
|
 |
|