窓のプロセス間通信

WPFと例えば

プロセスコードを受け取ります

受信トリガイベントを追加します。1.

this.Title = "フォーム名";

this.SourceInitialized + =新しいEventHandlerの(win_SourceInitialized)。

2.受信方法

ボイドwin_SourceInitialized(オブジェクト送信者、のEventArgs電子)
{
HwndSourceとしてHwndSource hwndSource = PresentationSource.FromVisual(本)
(!hwndSource = null)の場合は
{
hwndSource.AddHook(新しいHwndSourceHook(WndProcメソッド));
}
}

民間のconst int型WM_COPYDATA = 0x004A; //別のアプリケーション・コードは固定変更できない場合、アプリケーションは、データ転送にこのメッセージを送信する
保護された仮想のIntPtrのWndProc(のIntPtr HWND、INT MSG、のIntPtr wParamに、のIntPtr lParamに、処理さBOOL REF)
{
スイッチ(MSG)
{
ケースWM_COPYDATA:
//あなたのコード
HandleCollector(HWND、lParamに);
取扱= trueに、
BREAK;
}
IntPtr.Zeroを返します。
}

//によって必要とされるWM_COPYDATAメッセージデータ構造
パブリック構造体COPYDATASTRUCT
{
公共のIntPtr dwData;
公共INT CBDATA。

[MarshalAs(UnmanagedType.LPStr)]
パブリック文字列lpData。
}

プライベートボイドHandleCollector(System.IntPtr HWND、System.IntPtrのlParam)
{
COPYDATASTRUCT MMI =(COPYDATASTRUCT)Marshal.PtrToStructure(lParamに、typeof演算(COPYDATASTRUCT))。
(mmi.lpData == "最大化")であれば
{
this.ShowInTaskbar = TRUE。
ショー();
アクティブ();
this.WindowState = WindowState.Maximized。
}
}

 

送信者

//によって必要とされるWM_COPYDATAメッセージデータ構造
パブリック構造体COPYDATASTRUCT
{
公共のIntPtr dwData;
公共INT CBDATA。

[MarshalAs(UnmanagedType.LPStr)]

公共の文字列lpData。
}

公共CONSTはWM_COPYDATA = 0x004A INT;アプリケーションが別のアプリケーションにデータを渡すためのメッセージを送信する//固定コードは変更できない場合

//ウィンドウハンドルのウィンドウタイトルに目を通す
[DLLIMPORT( "User32.dllの"、エントリーポイント= "FindWindowを")]
プライベート静的にextern int型のFindWindow(lpClassName文字列、文字列lpWindowName)。

// DLLライブラリ機能でメッセージを送信します
[DLLIMPORT( "User32.dllの"、エントリーポイント= "のSendMessage")]
プライベート静的にextern int型のSendMessage

int型のハンドルhWndを、//ターゲットウィンドウ
//ここではメッセージ、int型WM_COPYDATA
INTのwParam、//最初のメッセージパラメータ
COPYDATASTRUCTのlParam //第2のメッセージパラメータREF
)。

 

トリガーの送信方法

VaRのMSG = "最大化";
COPYDATASTRUCTのCDS;
cds.dwData =(のIntPtr)1; //ここではいくつかのカスタムデータを渡されたが、唯一の4バイトの整数
cds.lpData = MSG; //文字のメッセージ文字列
cds.cbData = System.Text.Encoding.Default.GetBytes(MSG).LENGTH + 1; // ここで注目すべきは、カウントするバイト単位の長さである
のSendMessage(のFindWindow(NULL、 "名前の形式")、WM_COPYDATAを、0、REF CDS)。

おすすめ

転載: www.cnblogs.com/smalldragon-hyl/p/11911063.html