私はOutlook Object ModelでC#を使用しています(ライセンス供与のため私のオプションではありません)、送信前に電子メールメッセージをプログラムで暗号化できません。インスペクタを使用してOutlook電子メールをプログラムで暗号化
暗号化ボタンを表すCommandBarButtonへの参照を正常に取得できますが(プログラム例ではId 718)、プログラマチックに押し込むことはできません。 CommandBarButton Execute()メソッドとSendKeys(sendkeysがこのコンテキストでも有効であるかどうかわからない)の両方を使用して試しました。すべてのdebug.writelineステートメントは、ボタンがmsoButtonUp状態にあることを示します。
私はこれを数日間楽しんできましたが、それを働かせるようには見えません。どんなアドバイスも大歓迎です!
Outlook.MailItem emailToSend;
...
Microsoft.Office.Core.CommandBarButton cbb = null;
cbb =(CommandBarButton)emailToSend.GetInspector.CommandBars["Standard"].FindControl(Type.Missing, 718, Type.Missing, true, false);
if (cbb != null) {
//it is not null in debugger
if (cbb.Enabled) {
//make sure digital signature is on
cbb.Visible = true;
Debug.WriteLine("State was: " + cbb.State.ToString()); //all debug calls return msoButtonUp
cbb.SetFocus();
SendKeys.SendWait("{ENTER}");
Debug.WriteLine("State was: " + cbb.State.ToString());
SendKeys.SendWait("~");
Debug.WriteLine("State was: " + cbb.State.ToString());
cbb.Execute();
Debug.WriteLine("State was: " + cbb.State.ToString());
}
}
いくつかの追加情報:私がcbb.State = MsoButtonState.msoButtonDownを試してみると、私はHRESULT E_FAILでランタイムCOM例外を取得します。 –