Windowsデスクトップ検索を使用してJavaアプリケーションを開発します。この検索から、URL( System.ItemUrl )などのコンピューター上のファイルに関する情報を取得できます。そのようなURLの例は
file://c:/users/ausername/documents/aninterestingfile.txt
「通常の」ファイルの場合。このフィールドには、OutlookまたはThunderbirdからインデックスに登録されたメールアイテムのURLも表示されます。Thunderbirdのアイテム(vistaと7を使用してのみ使用可能)もファイル(.wdseml)です。ただし、OutlookのアイテムのURLは「mapi://」で始まります。
mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가
私が抱えている問題は、このURLを使用してOutlookでJavaから実際のアイテムを開くことです。Windowsの実行ダイアログでコピーして貼り付けると動作します; コマンドラインで「start」の後にコピー/貼り付けされたURLを使用した場合にも機能します。
URLはUTF-16でエンコードされているようです。私はそのようなコードを書けるようになりたいです:
String url = "mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가";
Runtime.getRuntime().exec("cmd.exe /C start " + url);
私は動作しません、そして私は次のような他の解決策を試しました:
String start = "start";
String url = "mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/toto@mycompany.com($b423dcd5)/0/Inbox/가가가가곕갘객겒갨겑곓걌게겻겨곹곒갓곅갩갤가갠가";
FileOutputStream fos = new FileOutputStream(new File("test.bat");
fos.write(start.getBytes("UTF16");
fos.write(url.getBytes("UTF16"));
fos.close();
Runtime.getRuntime().exec("cmd.exe /C test.bat");
成功せずに。上記の解決策を使用すると、ファイル「test.bat」には正しいURLと「start」コマンドが含まれますが、「test.bat」を実行すると、よく知られているエラーメッセージが表示されます。
'■' is not recognized as an internal or external command, operable program or batch file.
Javaから「mapi://」アイテムを開くことができるというアイデアはありますか?