相关疑难解决方法(0)

如何使用默认关联程序打开文件

如何使用Java中的默认关联程序打开文件?(例如电影文件)

java desktop

81
推荐指数
1
解决办法
6万
查看次数

如何启动文件/目录/ URL的关联应用程序?

Linux似乎很简单:xdg-open <file/directory/URL>.

显然,Mac是相似的:open应该用来代替xdg-open.我无法访问Mac,因此无法测试它.

对于Windows,我发现了4个不同的建议,而我尝试过的建议失败了.

我已经尝试的第一个3 system()QProcess::startDetached(),并"http://www.stackoverflow.com"作为参数,但都失败了; start但是从命令行工作得很好.我还没有尝试过ShellExecute.

什么是Windows相当于xdg-open在我看来,这是start为什么我的尝试start失败了?

ShellExecute我唯一的选择吗?


编辑我认为QDesktopServices::openUrl()仅适用于网页,因为它不适用于文件或目录.

一些调试后,我想通了,如果我取代\\/在Windows上的路径,它适用于文件,但该目录还没有打开.我有什么想法我做错了吗?

QDir dir("C:/Documents and Settings/ali");

qDebug() << "Exists? " << dir.exists();

qDebug() << dir.absolutePath();

QDesktopServices::openUrl(QUrl(dir.absolutePath()));

qDebug() << …
Run Code Online (Sandbox Code Playgroud)

c++ winapi qt cross-platform shellexecute

11
推荐指数
1
解决办法
7159
查看次数

JavaFx 8:在浏览器中打开链接而不引用Application

有一个超链接.单击时,我想要在外部浏览器中打开一个链接.

网上引用的常用方法似乎是:

final Hyperlink hyperlink = new Hyperlink("http://www.google.com");
hyperlink.setOnAction(t -> {
    application.getHostServices().showDocument(hyperlink.getText());
});
Run Code Online (Sandbox Code Playgroud)

但是我没有参考Application.所述链路是从对话,这是从一个控制器,其经由FXML文件打开打开打开,从而获得到应用程序对象的引用将是相当痛苦.

有谁知道这样做的简单方法?

干杯

java javafx javafx-8

11
推荐指数
2
解决办法
8808
查看次数

是否有非java,跨平台的方式来启动某个文件类型的关联应用程序?

首先,我发现了几个特定java的问题和答案.我正在寻找更多"本机",但跨平台的解决方案,使用C,C++,某种shell脚本,或者在我的情况下,Qt.

所以问题是,是否存在标准的,跨平台的,以编程方式打开某些文件类型的关联应用程序的方法.或者至少要找出是否有关联的应用程序,并能够找到并启动它们?

跨平台我指的是Windows,OSX和linux(gnome/kde).该用例是一个数据库,其中存储的文件为blob,将在三个不同的目标上读取.

c++ scripting qt cross-platform launch

9
推荐指数
2
解决办法
2442
查看次数

如何使用Java查找默认文件打开程序?

我需要找到Windows上给定文件的默认文件打开器,以便我可以自定义命令参数并使用默认的opener/viewer打开文件.

我的实际使用场景是使用用户的默认媒体播放器打开多个多媒体文件,以便将所有文件添加到用户的播放列表中(对于可以在同一个媒体上打开多个文件的播放器).对于Windows以外的操作系统我使用Desktop.open(File file)方法(我根本不关心为Windows以外的操作系统打开多个文件功能),我找不到任何方法可以打开多个文件而不是自定义命令参数并使用exec()方法运行它运行时类.我使用类似于此的somethig:

private void playItems2(List<File> fileList, String playerBinary) {
    String args = " ";
    for (File file : fileList) {
        args += "\"" + file.getAbsolutePath() + "\" ";
    }

    try {
        String command = playerBinary + args;
        Runtime rt = Runtime.getRuntime();
        Process p = rt.exec(command);
    } catch (Exception exc) {/*handle exception*/
        System.err.println("Run Player Exc:" + exc.getMessage());
    }
}
Run Code Online (Sandbox Code Playgroud)

我正在使用用户指定的路径playerBinary,我需要的是自动检测第一项的默认播放器fileList并将其用作playerBinary.

我还查看了Rundll32.exe和cmd.exe/start解决方案,但它们对我的使用场景不起作用.

这个问题不应该与这个这个.

java winapi desktop

5
推荐指数
1
解决办法
1691
查看次数

启动关联的程序或显示另一个程序的“打开方式”对话框

在第七窗口中,以下命令显示一个对话框,然后终止而没有任何其他操作,为什么?

预期效果是启动关联程序Notepad++或至少启动Notepad

RUNDLL32.EXE SHELL32.DLL,OpenAs_RunDLL D:\doc\toto.txt
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

java windows rundll32 shell32.dll

3
推荐指数
2
解决办法
1668
查看次数

让用户选择打开文件的应用程序

我需要我的java代码来打开基于默认应用程序的文件.感谢 如何为给定文件打开用户系统首选编辑器?这表明了一种质量方法

Runtime.getRuntime().exec("RUNDLL32.EXE SHELL32.DLL,OpenAs_RunDLL "+file);
Run Code Online (Sandbox Code Playgroud)

但问题是,一旦我选择要打开它的应用程序,它就不会打开文件.我不知道它的原因.

谢谢

编辑:

Desktop.getDesktop().open(file);
Run Code Online (Sandbox Code Playgroud)

这将在默认应用程序中打开 我希望用户选择要打开它的应用程序

java windows file-io swing jdesktop

1
推荐指数
1
解决办法
646
查看次数