我有一个奇怪的问题,就是使用String [] exec从Java启动Windows Photo Viewer(实际上我使用的是Commons Exec,但内部却去了那里)
String exec = "C:\\WINDOWS\\System32\\rundll32.exe \"C:\\Program Files\\Windows Photo Viewer\\PhotoViewer.dll\", ImageView_Fullscreen c:\\temp\\foo.png";
String[] params = new String[] {"C:\\WINDOWS\\System32\\rundll32.exe", "\"C:\\Program Files\\Windows Photo Viewer\\PhotoViewer.dll\", ImageView_Fullscreen", "c:\\temp\\foo.png"};
Process process = Runtime.getRuntime().exec(exec);
int result = process.waitFor();
System.out.println(result);
如果我运行它,该程序产生的很好但是如果我尝试exec(params)我立即返回0。
我认为这个问题出现在"引用的dll",操作部分,但我还没有能够确定它。指针?
提前致谢, NIK
答案 0 :(得分:0)
似乎有一些错误引用:
可以在没有附加引号的情况下设置dll的路径。 ImageView_Fullscreen也可以作为单独的参数提供
String[] params = new String[] {"C:\\WINDOWS\\System32\\rundll32.exe", "C:\\Program Files\\Windows Photo Viewer\\PhotoViewer.dll", "ImageView_Fullscreen", "c:\\temp\\foo.png"};
这应该打开文件。