1

就像在 google chrome 中一样,当您下载某些内容时,您可以单击“在资源管理器中打开”或其他内容,它将打开 exlplorer,并突出显示该文件。我将编写一个程序(可能是 ac cmd 程序),在给定位置搜索文件,然后我希望能够直接从程序中单击并打开文件。你有什么方法可以推荐我吗?它不必是 c 甚至是 cmd 程序。

4

6 回答 6

2

要打开文件夹并选择文件夹中的一个或多个项目,该SHOpenFolderAndSelectItems功能就是您要查找的功能。

于 2013-04-01T19:25:58.197 回答
1

如果您下载的文件路径是downloadFilePath

然后

Process.Start(downloadFilePath) 

会做正确的事。基于文件扩展名的打开动词路径,它应该启动文件扩展名的默认应用程序

于 2013-04-01T16:01:53.103 回答
1

我对 c++ 了解不多,但是 VB 和 youtube 对我有很大帮助:)

谢谢克里斯的链接!

ShellExecute(handle, "find", <fully_qualified_path_to_folder>, NULL, NULL, 0);

也感谢其他人的链接!

于 2013-04-01T17:26:13.497 回答
0

您可以使用CreateProcess()WinAPI 中的函数。

http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx

例子:

#include <iostream>
#include <Windows.h>

using namespace std;

int wmain()
{
    STARTUPINFO si;
    PROCESS_INFORMATION pi;

    ZeroMemory( &si, sizeof(si) );
    si.cb = sizeof(si);
    ZeroMemory( &pi, sizeof(pi) );
    //open C:\Windows in Explorer
        CreateProcess
        (
        TEXT("c:\\WINDOWS\\system32\\explorer.exe"),
        " C:\\Windows",NULL,NULL,FALSE,
        CREATE_NEW_CONSOLE,
        NULL,NULL,
        &si,
        &pi
        );
        return 0;
}
于 2013-04-01T16:02:08.047 回答
0

你没有提到你正在使用什么框架,所以我会给你我使用的 Qt 选项。这将适用于 Windows 或 Qt 支持的任何操作系统。我在使用 Visual Studio 构建的 Qt 应用程序中使用它。

QDesktopServices::openUrl(QUrl::fromLocalFile("myfile.xls"));
QDesktopServices::openUrl(QUrl::fromLocalFile("myfile.doc"));
QDesktopServices::openUrl(QUrl::fromLocalFile("myfile.txt"));

文档在这里QDesktopServices::OpenUrl QUrl::fromLocalFile

于 2013-04-01T16:08:01.603 回答
0

system()做事方式:

#include <stdlib.h>

int main() {
    system("explorer /select,C:\\Windows\\notepad.exe");
    return 0;
}

explorer.exe的完整选项列表

于 2013-04-01T17:24:49.040 回答