由C ++制作的.exe在命令行上运行,但不在Java上运行

时间:2017-05-27 23:51:25

标签: java exe

我有一个.exe来静音我的Windows电脑。它是从C ++程序编译的。当我从命令行运行此.exe时,它可以很好地工作,使我的计算机静音或取消静音。但是,我正在尝试从Java程序运行它,我没有得到任何错误,但它实际上也没有运行,或者至少不正确,因为卷没有切换。我一直在四处寻找它可能是什么,没有什么明显的,因为执行.exe的调用返回0并且没有错误。

任何想法都会有所帮助。谢谢。

这是编译成“mute.exe”的c ++代码:

  void VolumeControl::mute() {
        HWND hwnd = GetConsoleWindow();
        SendMessage(hwnd, WM_APPCOMMAND, (WPARAM)hwnd, APPCOMMAND_VOLUME_MUTE << 16);
    }

这是调用它的java代码(我尝试过使用运行时exec以及进程构建器):

 Process p = Runtime.getRuntime().exec("mute.exe");
 int exitVal = p.waitFor();
 System.out.println(exitVal);
 //Process process = new ProcessBuilder("mute.exe", "-u").start();
 //Runtime rt = Runtime.getRuntime() ;
 //rt.exec("mute.exe");

0 个答案:

没有答案