• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBで、Outlookのデスクトップ通知と同等の機能を制作しようとして)

VBでOutlookのデスクトップ通知機能を制作する方法

このQ&Aのポイント
  • VBでOutlookのデスクトップ通知機能を制作するためには、4つの要件があります。
  • 現在、Form1を使用して通知を表示していますが、フォーカスの移動やボタンの作成に問題があります。
  • 解決策やアドバイスをいただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

開いたフォームをアクティブにしないにはWindows APIのShowWindowを使用すれば良いと思います。 VB6 Private Declare Function ShowWindow Lib "user32" _ (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long VB.NET Private Declare Function ShowWindow Lib "user32" _ (ByVal hwnd As IntPtr, ByVal nCmdShow As Long) As Long 詳細はヘルプを見ていただくとして第一引数に対象のウインドウハンドル、第二引数にウインドウの状態を指定します。 第二引数に 8 を指定すると対象のウインドウをアクティブにしないで開くことが出来ます。 以下、簡単なサンプル(VB.NET) プロジェクトにForm1とForm2を追加してForm1にButton1を追加します。 '--Form1 Public Class Form1  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click   Dim frm As New Form2   frm.ShowNoActivate()  End Sub End Class '--Form2 Public Class Form2  Private Declare Function ShowWindow Lib "user32" _   (ByVal hwnd As IntPtr, ByVal nCmdShow As Long) As Long  Private Const SW_SHOWNA As Integer = 8  Public Sub ShowNoActivate()   Dim ret As Long   ret = ShowWindow(Me.Handle, SW_SHOWNA)  End Sub End Class ボタンを押す度、新しいウインドウ(Form2)が非アクティブで開きます。

sche_911
質問者

お礼

なるほど!とても参考になりました。 欲しかった回答が、そのまま頂けました。 ありがとうございました。

関連するQ&A