0

尝试让 Outlook 打开新窗口进行搜索时(在我的 Outlook 加载项中单击按钮时),我在 Outlook 2013 中遇到了“怪癖”。搜索未启动;搜索词出现在框中,但只显示收件箱内容(尽管如果与收件箱项目相关,则会突出显示我的搜索词)。如果我然后更改搜索框中的任何内容(例如添加然后删除引号),它会正确启动(即过滤输出到我的搜索)。

我无法在 Outlook 2010 中重现此问题,也无法通过独立的 EXE 调用相同的代码。此外,如果我将搜索启动到现有的资源管理器窗口,它也可以正常工作。

这是我的代码(简化):

OutlookApp  := GetActiveOleObject(OUTLOOK_APPLICATION_CLASS);
OLNameSpace := OutlookApp.GetNameSpace(MAPI_NAMESPACE);
OLNameSpace.Logon;
objFolder := OLNameSpace.GetDefaultFolder(olFolderInbox);
objExplorer := OutlookApp.Explorers.Add(objFolder, olFolderDisplayNoNavigation);
objExplorer.Search(sSearchText, olSearchScopeAllFolders);
objExplorer.Activate;
...

在调试时,我尝试过:

  • 更改新资源管理器窗口的显示选项 (olFolderDisplayNormal)
  • 搜索前调用 ClearSearch
  • 预先执行替代搜索
  • 甚至在通话之间睡觉:-o

我想听听任何关于解决方法的建议,或者我错过的任何东西......

谢谢

4

1 回答 1

0

通过延迟 objExplorer.Search() 解决(通过创建新的资源管理器并将消息发布到窗口,然后执行 objExplorer.Search)。丑陋,但有效:-(

于 2014-05-23T01:07:50.877 回答