我正在尝试使用C#根据windows search protocol触发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.StartWithShellExecuteEx(的ProcessStartInfo startI nfo)
在System.Diagnostics.Process.Start()
在 System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
在 System.Diagnostics.Process.Start(String fileName)
在 ProcessStart.Program.Main(String [] args)in e:\ WorkSpace \ ProcessStart \ Proc essStart \ Program.cs:第15行
我做错了什么,Win7和Win8有关搜索协议的区别是什么?谢谢!
答案 0 :(得分:0)
你需要传递位置 像
const string searchQuery = "search:search:query=seattle&crumb=location:C://MyFolder";
Process.Start(searchQuery);