C# 에서 FindWindow 

        [DllImport("user32.dll")]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        IntPtr h_wnd = FindWindow(null, "target window name");
        if (h_wnd != IntPtr.Zero)
        {
           // do something
        }

 

 

 

 

C# 에서 SendMessage 로 WM_COPYDATA 송신 

주의 : 하기 코드 SendMessage 실행은 되나 상대방 (C++ 로 제작된것) 에서 수신 안되었음. 

    public struct COPYDATASTRUCT
    {
        public uint dwData;
        public uint cbData;
        public IntPtr lpData;
    }

    
    class CyWin32API
    {
        public const int WM_COPYDATA = 0x4A;

        [DllImport("user32.dll")]
        public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);

        [DllImport("user32.dll")]
        public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, ref COPYDATASTRUCT lParam);

        public static void Send_WMCOPYDATA(ref COPYDATASTRUCT cds)
        {
            IntPtr h_wnd = FindWindow(null, "CyFinSystem::Connect-1");
            if (h_wnd != IntPtr.Zero)
            {
                SendMessage(h_wnd, WM_COPYDATA, IntPtr.Zero, ref cds);
                Console.WriteLine("Send_Data Completed");
            }           
        }

    }

 

 

 

 

연관 

 

 

WM_COPYDATA.

개요 2개의 프로세스 사이에 SendMessage 함수로 메시지 송/수신과 동시에 구조체자료형 COPYDATASTRUCT 를 전송가능한 것. 즉 메시지 송신측에서 SendMessage 함수인자를 아래처럼 호출하면 HWND 에 해당

igotit.tistory.com

 

 

 


첫 등록 : 2020.10.28

최종 수정 : 

단축 주소 : https://igotit.tistory.com/2670

 


 

Posted by 리치굿맨

댓글을 달아 주세요