首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# winapi SendMessage 或 PostMessage 怎麽發送一個鍵啊如F1 setText這個會用了但是發送鍵不會怎麽發送一個鍵啊解决方案

2012-04-12 
C# winapiSendMessage 或 PostMessage 怎麽發送一個鍵啊,如F1 setText這個會用了但是發送鍵不會怎麽發送一

C# winapi SendMessage 或 PostMessage 怎麽發送一個鍵啊,如F1 setText這個會用了但是發送鍵不會怎麽發送一個鍵啊
[code=C#] 
  void fun()
  { 
   
  IntPtr PanentWindow = winapi.FindWindow(null, "计算器");
  if (PanentWindow != IntPtr.Zero)
  {
   
  IntPtr ChileWindow = winapi.FindWindowEx(PanentWindow,IntPtr.Zero,"Edit",null);
   
  if (ChileWindow != IntPtr.Zero)
  {
  MessageBox.Show("找到孖窗口");
  winapi.SendMessage(ChileWindow, WM_SETTEXT, "Edit", "10005");
  }
  }code]

[解决办法]
public struct COPYDATASTRUCT
{
public IntPtr dwData;
public int cbData;
[MarshalAs(UnmanagedType.LPStr)]
public string lpData;
}

[DllImport("User32.dll", EntryPoint = "SendMessage")]
private static extern int SendMessage(
IntPtr hWnd, // handle to destination window
int Msg, // message
int wParam, // first message parameter
ref COPYDATASTRUCT lParam // second message parameter
);



COPYDATASTRUCT cds;
cds.dwData = (IntPtr)100;
cds.lpData = "Test Message";
cds.cbData = 14;

SendMessage(hwnd_win, WM_SETTEXT, 0, ref cds);

[解决办法]
Google
SendInput
[解决办法]
PostMessage(WindowHandle, 256, 112, 0);
[解决办法]
发送F1按键。

热点排行