0

我正在尝试使用 C# 根据windows 搜索协议触发 windows 通用桌面搜索。实现这一点是非常简单的代码。

    static void Main(string[] args)
    {
        const string searchQuery = "search:";
        Process.Start(searchQuery);
    }

以上对 Win7 和 Win8 都适用,会出现一个搜索窗口。但是当我按照文档中的说明添加查询时:

    const string searchQuery = "search:query=a";
    Process.Start(searchQuery);

它只是没有反应,也不例外。之后我尝试在查询中添加位置信息:

    const string searchQuery = "search:query=a&crumb=location:\\";
    Process.Start(searchQuery);

奇怪的是,这适用于 Win7,搜索窗口提示,并按预期开始搜索“a”。但只是在Win8中失败并抛出了一个执行:

未处理的异常:System.ComponentModel.Win32Exception:系统找不到 在 System.Diagnostics.Process.Start() at System.Diagnostics.Process.Start(ProcessStartInfo
)指定的驱动器startInfo) 在 System.Diagnostics.Process.Start(String fileName) 在 ProcessStart.Program.Main(String[] args) 在 e:\WorkSpace\ProcessStart\Proc essStart\Program.cs:line 15



我做错了什么,Win7和Win8在搜索协议上有什么区别?谢谢!

4

1 回答 1

0

你需要像这样传递位置

const string searchQuery = "search:search:query=seattle&crumb=location:C://MyFolder";
Process.Start(searchQuery);
于 2015-09-08T09:43:08.423 回答