OmegaT のメニューバーにフォルダーツリー参照用のメニューを追加します。
プレビュー:MS-Word のインストール判定を改善
.docx のクラス名が "Word.Document." で始まっていなくても、とりあえずはじかないようにした。
@@ -108,20 +108,24 @@ | ||
108 | 108 | //<-(\r\n) |
109 | 109 | // ----------------------------------------------------- |
110 | 110 | // 末尾に空行が入るので注意。 |
111 | - if (s.toLowerCase().startsWith(".docx=word.document.")) { | |
112 | - String classString = s.substring(".docx=".length()).replaceAll("\\r\\n", ""); | |
113 | - if (RET_OK == command.exec("reg", "query", "HKCR\\" + classString + "\\shell\\open\\command", "/ve")) { | |
114 | - s = command.getStdout(); | |
115 | - // s's data example) | |
116 | - // ----------------------------------------------------- | |
117 | - //<-(\r\n) | |
118 | - //HKEY_CLASSES_ROOT\Word.document.12\shell\open\command | |
119 | - //(既定) REG_SZ "C:\PROGRA~2\MICROS~4\OFFICE11\WINWORD.EXE" /n /dde | |
120 | - //<-(\r\n) | |
121 | - // ----------------------------------------------------- | |
122 | - // 前後に空行が入るので注意。 | |
123 | - return s.toUpperCase().indexOf("\\WINWORD.EXE") > -1; | |
124 | - } | |
111 | + // 他のパターンとして、AOO/LO 環境で以下のようなケースもあり。 | |
112 | + //.docx=OpenOffice.Docx | |
113 | + //.docx=LibreOffice.WriterDocument.1 | |
114 | + // 微妙なのは、クラス名称が変わっているからといって、最終的に | |
115 | + // MS-Word に関連付けられていないとは言い切れないので、結局 | |
116 | + // shell\open の値は確認する必要がある。 | |
117 | + String classString = s.substring(".docx=".length()).replaceAll("\\r\\n", ""); | |
118 | + if (RET_OK == command.exec("reg", "query", "HKCR\\" + classString + "\\shell\\open\\command", "/ve")) { | |
119 | + s = command.getStdout(); | |
120 | + // s's data example) | |
121 | + // ----------------------------------------------------- | |
122 | + //<-(\r\n) | |
123 | + //HKEY_CLASSES_ROOT\Word.document.12\shell\open\command | |
124 | + //(既定) REG_SZ "C:\PROGRA~2\MICROS~4\OFFICE11\WINWORD.EXE" /n /dde | |
125 | + //<-(\r\n) | |
126 | + // ----------------------------------------------------- | |
127 | + // 前後に空行が入るので注意。 | |
128 | + return s.toUpperCase().indexOf("\\WINWORD.EXE") > -1; | |
125 | 129 | } |
126 | 130 | } |
127 | 131 | } catch (Exception ex) { |