2014-09-25 73 views
0

是否可以使用(thunderbird,outlook等)来获取默认邮件客户端的名称? desktop.mail()打开默认的邮件客户端。但是java在哪里读取哪个是默认的邮件客户端?java获取默认邮件程序的名称

此致

+0

我推测会成为Java之外的关注;发送一个'mailto'链接并让操作系统上配置的邮件客户端处理它。 – Makoto 2014-09-25 15:35:24

回答

0

已解决。

我可以得到默认邮件客户端的注册表vaue:

package side_pakets; 

import java.io.IOException; 
import java.io.InputStream; 
import java.io.StringWriter; 

public class Read_Win_Registry 
{ 
    String output; 
    String input; 
    String location = "HKEY_CURRENT_USER\\Software\\Clients\\Mail"; 
    /** 
    * 
    * @param location 
    *   path in the registry 
    * @param /ve returns default registry values 
    * 
    */ 
    public String readRegistry(String location) 
    { 
     try 
     { 
      Process process = Runtime.getRuntime().exec(
        "reg query " + location + " /ve "); 

      StreamReader reader = new StreamReader(process.getInputStream()); 
      reader.start(); 
      process.waitFor(); 
      reader.join(); 
      output = reader.getResult(); 

     } catch (Exception e) 
     { 
      // return null; 
     } 
     return output; 

    } 

    static class StreamReader extends Thread 
    { 
     private InputStream is; 
     private StringWriter sw = new StringWriter(); 

     public StreamReader(InputStream is) 
     { 
      this.is = is; 
     } 

     public void run() 
     { 
      try 
      { 
       int c; 
       while ((c = is.read()) != -1) 
        sw.write(c); 
      } catch (IOException e) 
      { 
      } 
     } 
    } 

}