使用32位JRE打开64位Windows的虚拟键盘

发布于 2024-12-18 14:09:32 字数 678 浏览 1 评论 0原文

我需要从我的应用程序中打开 Windows 的虚拟键盘,该应用程序将在 Windows 32 位平台(即 win32 JRE)上使用 Eclipse RCP 进行部署。

按照帖子的答案 在 Java 程序中打开 Windows 虚拟键盘,应用程序在 32 位 Windows 操作系统上正确执行此操作,但拒绝在 64 位 Windows 操作系统上运行。

我使用的解决方案如下:

//          String sysroot = System.getenv("SystemRoot"); //$NON-NLS-1$
//          Runtime.getRuntime().exec("cmd.exe /c "+sysroot + "\\system32\\osk.exe /n"); //$NON-NLS-1$ //$NON-NLS-2$
            Runtime.getRuntime().exec("osk");

有没有办法在不使用 64 位部署的情况下解决此问题? (只要我使用不支持此环境的库,我就无法创建它)。

谢谢

I need to open the Windows's virtual keyboard from my application, which will be deployed using Eclipse RCP on the windows 32 bit platform (i.e. win32 JRE).

Following the answers to the post open the Windows virtual keyboard in a Java program , the applications does so correctly on a 32 bit Windows OS, but refuses to work on a 64 bits Windows OS.

The solution I am using is the following ones:

//          String sysroot = System.getenv("SystemRoot"); //$NON-NLS-1$
//          Runtime.getRuntime().exec("cmd.exe /c "+sysroot + "\\system32\\osk.exe /n"); //$NON-NLS-1$ //$NON-NLS-2$
            Runtime.getRuntime().exec("osk");

Is there a way to fix this without using a 64 bit deploy? (which I can't create, as long as I am using a library that does not support this environment).

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

零崎曲识 2024-12-25 14:09:32

试试这个代码。不确定它会起作用。但值得一试。

Desktop desktop = null;
if (Desktop.isDesktopSupported()) 
{
    desktop = Desktop.getDesktop();
}
String sysroot = System.getenv("SystemRoot");
desktop.open(new File(sysroot+"/system32/osk.exe"));

我是这个桌面课程的新手,我想知道该课程是否有效;)

Try this code. not sure it will work. but worth a try.

Desktop desktop = null;
if (Desktop.isDesktopSupported()) 
{
    desktop = Desktop.getDesktop();
}
String sysroot = System.getenv("SystemRoot");
desktop.open(new File(sysroot+"/system32/osk.exe"));

I am new to this Desktop class, and i would like to know if the class does the trick ;)

爱你不解释 2024-12-25 14:09:32

不。您将无法从 32 位 Java 应用程序和/或 32 位操作系统使用 64 位库。
您必须部署您的应用程序 x64。

No. You won't be able to use the 64-bit library from a 32-bit Java app and/or a 32-bit OS.
You'll have to deploy your app x64.

苦行僧 2024-12-25 14:09:32

这是我的解决方法:

FileOutputStream fileOutputStream = new FileOutputStream(new File("C:/TEMP/RUN.BAT"));

        String file = "START C:/Windows/System32/osk.exe" + '\n'
                + "EXIT";
        fileOutputStream.write(file.getBytes());
        fileOutputStream.close();
        Runtime.getRuntime().exec("CMD /C START C:/TEMP/RUN.bat");
        Runtime.getRuntime().exec("CMD /C DEL C:/TEMP/RUN.bat");

this is my workaround:

FileOutputStream fileOutputStream = new FileOutputStream(new File("C:/TEMP/RUN.BAT"));

        String file = "START C:/Windows/System32/osk.exe" + '\n'
                + "EXIT";
        fileOutputStream.write(file.getBytes());
        fileOutputStream.close();
        Runtime.getRuntime().exec("CMD /C START C:/TEMP/RUN.bat");
        Runtime.getRuntime().exec("CMD /C DEL C:/TEMP/RUN.bat");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文