c语言获取窗口句柄 c语言 C#操作窗口类(句柄操作)

导读:爱华网网友为您分享以下“C#操作窗口类(句柄操作)”的资讯,希望对您有所帮助,感谢您对aIhUaU.com的支持!

C#写个类操作窗口(句柄操作)

实现过程:

过程一:找到当前鼠标位置的句柄

您的使用2个WinAPI(俺喜欢自己封装下来用): View Code

[DllImport("user32.dll", EntryPoint = "GetCursorPos")]

public static extern bool GetCursorPos(out Point pt);

[DllImport("user32.dll", EntryPoint = "WindowFromPoint")]

public static extern IntPtr WindowFromPoint(Point pt);

//鼠标位置的坐标

public static Point GetCursorPosPoint()

{

Point p = new Point();

if (GetCursorPos(out p))

{

c语言获取窗口句柄 c语言 C#操作窗口类(句柄操作)

return p;

}

return default(Point);

}

/// <summary>

/// 找到句柄

/// </summary>

/// <param name="p">坐标</param>

/// <returns></returns>

public static IntPtr GetHandle(Point p)

{

return WindowFromPoint(p);

}

过程二:改变窗口的Text

您的使用1个WinAPI: View Code

[DllImport("user32.dll", EntryPoint = "SendMessage")]

private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);

/// <summary>

/// 给窗口发送内容

/// </summary>

/// <param name="hWnd">句柄</param>

/// <param name="lParam">要发送的内容</param>

public static void SetText(IntPtr hWnd, string lParam)

{

SendMessage(hWnd, WM_SETTEXT, IntPtr.Zero, lParam);

}

private const int WM_SETTEXT = 0x000C; 通过这个方法就能改变Text的值了。

思考:如果俺把这个窗口的句柄记录下来,下次不用鼠标获取,直接就能改变值不蛮好的嘛。

例如:我有个桌面系统老叫我输入用户名,密码。我记录用户名和密码的窗口句柄,然后改变他们的输入值,这样多省事。(只是举例,不考虑安全性) 问题:你会告诉我,窗口句柄的每次重建会变的呀,咋办。

回答:类名不变呀。

过程三:您的准备一些工具吧,例如:句柄找类名呀,类名找句柄什么的等等,下面会用到一些WinAPI View Code

[DllImport("user32.dll", EntryPoint = "FindWindow")]

private static extern IntPtr FindWindow(string IpClassName, string IpWindowName);

[DllImport("user32.dll", EntryPoint = "FindWindowEx")]

private static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string

lpszClass, string lpszWindow);

[DllImport("user32.dll", EntryPoint = "GetParent")]

public static extern IntPtr GetParent(IntPtr hWnd);

[DllImport("user32.dll", CharSet = CharSet.Auto)]

public static extern int GetClassName(IntPtr hWnd, StringBuilder lpClassName, int nMaxCount);

/// <summary>

/// 找到句柄

/// </summary>

/// <param name="IpClassName">类名</param>

/// <returns></returns>

public static IntPtr GetHandle(string IpClassName)

{

return FindWindow(IpClassName, null);

}

/// <summary>

/// 子窗口句柄

/// </summary>

/// <param name="hwndParent">父窗口句柄</param>

/// <param name="hwndChildAfter">前一个同目录级同名窗口句柄</param>

/// <param name="lpszClass">类名</param>

/// <returns></returns>

public static IntPtr GetChildHandle(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass)

{

return FindWindowEx(hwndParent, hwndChildAfter, lpszClass, null);

}

/// <summary>

  

爱华网本文地址 » http://www.aihuau.com/a/346751/984364232204.html

更多阅读

小小军团合战三国新手 新手卖家的一点小小经验推荐

    这两天我经常看到社区的很多新手卖家在说自己的生意不好啊,店铺流量很低啊,但是请问您,知道自己的原因出在那里了吗?     1.你的店铺装修过吗?用旺铺了吗?     当然,很多朋友在开店以后都在想,反正都是免费开店,我何必去花

意大利蔬菜汤 圣诞节平安夜晚餐菜谱――意大利蔬菜汤

  意大利蔬菜汤  原料:  1、土豆丁、胡萝卜丁、圆白菜丁、洋葱丁、芹菜丁。  2、丁。  3、番茄酱、黄油。  做法:  1、将以上各种菜料一齐放入水中煮至烂熟,可以少放一点儿盐。  2、放入番茄酱搅拌均匀,用中火煮

爱国卫生手抄报资料 爱国卫生月手抄报内容

&#160;关于爱国卫生月的手抄报内容:  爱国卫生月校园广播稿  甲:各位同学!大家中午好!校园广播站今天又如约和大家见面了!  乙:**年4月是第**个全国爱国卫生月,今年的主题为“**”。  **年3月18日,全国爱国卫生运动委员会办

五一劳动节小学生作文 小学生快乐五一作文大全

&#160;  劳动节见闻作文400字  五月一日是劳动节,是全世界劳动人民争取自由的纪念日,是对我们来说,是盼望已久的节日,同时也是我们在寒假过后又一次长假,有这么长的假期,我又可以快快乐乐地地,自由的打发和支配属于自己的时间空间了。

猫耳朵的做法大全 猫耳朵的做法

  猫耳朵是一种在山西、陕西、等地流行的汉族传统面食。其并非如名字所说用猫耳制成,只是因形似猫耳故名。以下是爱华网小编为大家整理的关于猫耳朵的做法,供大家参考!  猫耳朵做法一:  白面:用精粉一斤,水五两。先将面粉倒进

声明:《c语言获取窗口句柄 c语言 C#操作窗口类(句柄操作)》为网友唯情此生不换分享!如侵犯到您的合法权益请联系我们删除