解决方案 »
- 急!!!winform中combobox绑定怎样设置不让它默认显示第一个记录
- C# socket怎么从client端发送一个byte数组,服务端接收并保存这个数组?
- [挑战C#Winodws编程高手]Form,系统消息相关
- 窗体中picturebox重叠时透明图片不透明的问题
- 在线求问2:有3个文本框,分别输入年月日,我应该用什么办法对这3个文本框输入的值进行校验?最好用同则表达式。
- 100分帮我搞定这个麻烦的socket编程!
- C#插入数据成功后在另外一个IE界面自动刷新?
- 100feng求解16进制转换字符问题
- 很不清楚啊,大家帮
- 高分送了.问题简单,高手快来了.
- 有关DevExpress中chartTable的问题?
- c# c#正则表达式 取指定<img 的src
static class Program
{
private static void Main()
{
var hNotePad = FindWindow("Notepad", null);
if (hNotePad == IntPtr.Zero)
throw new Exception("notepad 没有打开"); IntPtr hDialog = IntPtr.Zero;
EnumWindows((hwnd, lParam) =>
{
var owner = GetWindow(hwnd, GW_OWNER);
if (owner == hNotePad)
hDialog = hwnd;
return true;
}, IntPtr.Zero);
if (hDialog == IntPtr.Zero)
throw new Exception("请先打开字体对话框"); var sb = new StringBuilder(250);
GetWindowText(hDialog, sb, 250);
if (sb.ToString() != "字体")
throw new Exception("打开的不是字体对话框"); var hCombobox = GetDlgItem(hDialog, 0x470); Console.WriteLine("--------- 对话框上的控件列表 --------");
EnumChildWindows(hDialog, (hChild, _) =>
{
var id = GetDlgCtrlID(hChild);
var sb2 = new StringBuilder(250);
GetClassName(hChild, sb, 250);
GetWindowText(hChild, sb2, 250);
Console.WriteLine("0x{0:x} (id = 0x{1:x}) : {2} (\"{3}\")", hChild, id, sb, sb2);
return true;
}, IntPtr.Zero); var item = "华文中宋";
var index = SendMessage(hCombobox, CB_FINDSTRING, 0, item); Console.WriteLine("选取'{0}', index={1}", item, index);
SendMessage(hCombobox, CB_SELECTSTRING, 0, item);
} public delegate bool EnumWindowsProc(IntPtr hwnd, IntPtr lParam); [DllImport("user32.dll")]
private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); [DllImport("user32.dll")]
private static extern IntPtr GetWindow(IntPtr hWnd, int uCmd); [DllImport("user32.dll")]
private static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam); [DllImport("user32.dll")]
private static extern IntPtr GetDlgItem(IntPtr hDlg, int nIDDlgItem); [DllImport("user32.dll")]
private static extern bool EnumChildWindows(IntPtr hwndParent, EnumWindowsProc lpEnumFunc, IntPtr lParam); [DllImport("user32.dll")]
private static extern int GetDlgCtrlID(IntPtr hwndCtl); [DllImport("user32.dll")]
private static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount); [DllImport("user32.dll")]
private static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount); [DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, UInt32 msg, int wParam, IntPtr lParam); [DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, UInt32 msg, int wParam, string lParam); private const int GW_OWNER = 4;
private const int CB_FINDSTRING = 0x014C;
private const int CB_SELECTSTRING = 0x014D;
private const int CB_SETCURSEL = 0x014E;
}