Re: Send Message(string) c# exe to vc++ exe(unmanaged) using WindowsSendMessage
- From: "Willy Denoyette [MVP]" <willy.denoyette@xxxxxxxxxx>
- Date: Fri, 24 Nov 2006 13:48:29 +0100
"Mayur" <mayur@xxxxxxxxxxxxxxxx> wrote in message news:%23U3gEu7DHHA.3836@xxxxxxxxxxxxxxxxxxxxxxx
I tried followinf but working fine fo int but how to do it for string using
user custome message
in c#
[DllImport("User32.dll")]
public static extern int FindWindow(string strClassName,string
strWindowName);
[DllImport("User32.dll")]
public static extern Int32 SendMessage(
int hWnd, // handle to destination window
int Msg, // message
int wParam, // first message parameter
[MarshalAs(UnmanagedType.LPStr)] string lParam);
public const int WM_APP = 0x8000;
public const int WM_DELETEALL =WM_APP + 0x100;
int wnd=FindWindow(null,"TestMfcSendMsgExe");
Form1.SendMessage(wnd,WM_DELETEALL,0,55);
and MFC Exe is like this
#define WM_DELETEALL WM_APP + 0x100
BEGIN_MESSAGE_MAP(CTestMfcSendMsgExeDlg, CDialog)
ON_MESSAGE (WM_DELETEALL, OnDeleteAll)
END_MESSAGE_MAP()
LRESULT CTestMfcSendMsgExeDlg::OnDeleteAll(WPARAM wParam, LPARAM lParam)
{
MessageBox("Hello","Mayur",MB_OK);
}
I am getting the message box after using SendMessage() in c# exe but i want
to send text(string ) information.
I need help..
Regards,
Mayur.
First you need to correct your API signatures like this:
[DllImport("user32.dll")]
public static extern IntPtr FindWindow(string strClassName,string strWindowName);
[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
When you need to send a string, you'll have to marshal the string to a native buffer and pass it's pointer as lParam, something like this:
IntPtr hWnd = ...FindWindow(..);
string s = "Somestring";
IntPtr sNative = Marshal.StringToHGlobalAuto(s);
IntPtr result = SendMessage(hWnd,..,.., sNative);
Marshal.FreeHGlobal(sNative);
....
Willy.
.
- References:
- Prev by Date: Re: F# programming language
- Next by Date: Re: Problem in LoadPlugins in Application
- Previous by thread: Send Message(string) c# exe to vc++ exe(unmanaged) using WindowsSendMessage
- Next by thread: RE: Send Message(string) c# exe to vc++ exe(unmanaged) using WindowsS
- Index(es):
Relevant Pages
|