I developp a Java application using Windows Desktop Search from which I can retrieve some information about files on my computer such as urls (System.ItemUrl). An example of such
url is
file://c:/users/ausername/documents/aninterestingfile.txt
for "normal" files. This field give also urls of mail items indexed from Outlook or Thunderbird. Thunderbird's items (only available using vista and seven) are also files (.wdseml). But outlook's items urls start with "mapi://" like :
mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/
[email protected]($b423dcd5)/0/Inbox/????????????????????????
The problem I have is opening the real item from Java in Outlook using this
url. If I copy/paste it in the run dialog of Windows, it works ; it also works if I use "start" followed by the copied/pasted
url in command line.
The
url seems to be encoded in UTF-16. I want to be able to write such code :
String
url = "mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/
[email protected]($b423dcd5)/0/Inbox/????????????????????????";
Runtime.getRuntime().exec("cmd.exe /C start " + url);
I doesn't work and I've tried other solutions like :
String start = "start";
String
url = "mapi://{S-1-5-21-1626573300-1364474481-487586288-1001}/
[email protected]($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");
without any success. Using the solution above, the file "test.bat" contains the correct
url and the "start" command, but the run of "test.bat" results in the well known error message :
'¦' is not recognized as an internal or external command, operable program or batch file.
Has anybody an idea to be able to open "mapi://" items from Java ?