Отказ от ответственности: я понимаю, что это не для Outlook 2010, но это может дать вам достаточно вдохновения о том, как строить на основе структуры Outlook 2007.
Примечание . Следующий пример может быть создан с использованием макроса VBA или плагина Outlook.
Если вы обнаружите, где "Связанные сообщения" существуют в иерархии CommandBar
(структура меню Outlook), вы можете использовать механизм Copy
и поместить существующий CommandBarButton
в стандартную CommandBar
(в случае Outlook 2007). После этого вы можете переименовать Caption
и назначить другую горячую клавишу (см. Ниже ссылку). В этом примере мы можем использовать Alt+M, чтобы вызвать диалоговое окно расширенного поиска "Связанные сообщения".
Справочник ВСТО
Outlook.Explorer explorer = Application.ActiveExplorer();
// retrieve menu toolbar for this explorer
CommandBar menuBar = explorer.CommandBars.ActiveMenuBar;
for (int i = 1; i <= menuBar.Controls.Count; i++)
{
if (menuBar.Controls[i].Caption == "&Tools")
{
var toolsMenu = menuBar.Controls[i] as CommandBarPopup;
for (int j = 1; j <= toolsMenu.Controls.Count; j++)
{
if (toolsMenu.Controls[j].Caption == "&Instant Search")
{
var searchMenu = toolsMenu.Controls[j] as CommandBarPopup;
for (int k = 1; k <= searchMenu.Controls.Count; k++)
{
if (searchMenu.Controls[k].Caption == "&Related Messages...")
{
var related = searchMenu.Controls[k] as CommandBarButton;
var relatedClone = related.Copy(explorer.CommandBars["Standard"]);
relatedClone.Caption = "Related &Messages";
}
}
}
}
}
}
В Outlook 2010 вы можете просто попытаться сделать следующее, так как нет стандартной панели команд (она была заменена пользовательским интерфейсом ленты). Тогда использование будет Alt+M и затем Enter, чтобы вызвать диалоговое окно расширенного поиска "Связанные сообщения". Однако - это еще не было проверено.
var relatedClone = related.Copy(menuBar);
VBA Reference
Sub AddRelatedMessages()
Dim menuBar As CommandBar
Dim toolsMenu As CommandBarPopup, searchMenu As CommandBarPopup
Dim related As CommandBarButton, relatedClone As CommandBarButton
Set menuBar = Application.ActiveExplorer().CommandBars.ActiveMenuBar
Dim i As Integer, j As Integer, k As Integer
For i = 1 To menuBar.Controls.Count Step 1
If (menuBar.Controls(i).Caption = "&Tools") Then
Set toolsMenu = menuBar.Controls(i)
For j = 1 To toolsMenu.Controls.Count Step 1
If (toolsMenu.Controls(j).Caption = "&Instant Search") Then
Set searchMenu = toolsMenu.Controls(j)
For k = 1 To searchMenu.Controls.Count Step 1
If (toolsMenu.Controls(k).Caption = "&Related Messages...") Then
Set related = searchMenu.Controls(k)
Set relatedClone = related.Copy(Explorer.CommandBars("Standard"))
relatedClone.Caption = "Related &Messages"
End If
Next k
End If
Next j
End If
Next i
End Sub