如何检测多个显示器及对其进行设置,以及如何在窗体中模拟鼠标点击

hb1122 2011-01-19 07:24:34
电脑显卡有两个输出接口连接了显示器,桌面在其中的一个接口显示,另一个显示展示窗体界面,问题是,如何找到本机的显示器,以及如何把窗体显示到某个屏幕上去。
如何在窗体中模拟鼠标点击。

不胜感激!
...全文
254 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
龍过鸡年 2011-01-19
  • 打赏
  • 举报
回复
Screen 类

Cursor.Position 属性


Cursor.Position = new Point(
Screen.Bounds.Width / 2,
Screen.Bounds.Height / 2);
  • 打赏
  • 举报
回复
Screen [] screens = Screen.AllScreens;
if( screens[0].Primary)
Console.WriteLine("screens[0] is Primary Screen!");

Console.writeline(screens[0].DeviceName);
还有些有用的属性和方法可查MSDN
wuyq11 2011-01-19
  • 打赏
  • 举报
回复
http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/f629d161-023a-4e5c-b5ea-6cc9f5f7accb
using System.RunTime.InteropServices;

private const int WM_LBUTTONDOWN = 513; // 0x0201
private const int WM_LBUTTONUP = 514; // 0x0202
[System.Runtime.InteropServices.DllImport( "user32.dll ")]
static extern bool SendMessage(IntPtr hWnd, Int32 msg, Int32 wParam, Int32 lParam);

private void SetNoCurrentCell()
{

SendMessage(Form2.Handle, WM_LBUTTONDOWN, 0, 0);
SendMessage(Form2.Handle, WM_LBUTTONUP, 0, 0);
}
dylike 2011-01-19
  • 打赏
  • 举报
回复
Screen.PrimaryScreen '主显示器
将界面显示到另一个显示器没试过,可能可以通过矩形区域来实现,如同鼠标拖窗口到另一屏幕思路.

模拟鼠标事件:
Private Declare Sub mouse_event Lib "user32" Alias "mouse_event" (ByVal dwFlags As Integer, ByVal dx As Integer, ByVal dy As Integer, ByVal cButtons As Integer, ByVal dwExtraInfo As Integer)

Const MOUSEEVENTF_RIGHTDOWN = &H1
Const MOUSEEVENTF_RIGHTUP = &H2
Const MOUSEEVENTF_LEFTDOWN = &H3
Const MOUSEEVENTF_LEFTUP = &H4

示例:

mouse_event(&H3, 0, 0, 0, IntPtr.Zero)
鼠标左键按下
JavaAlpha 2011-01-19
  • 打赏
  • 举报
回复
可以买一个接口连接多显示器就可以了。
JavaAlpha 2011-01-19
  • 打赏
  • 举报
回复
可以买一个接口连接多显示器就可以了。
hb1122 2011-01-19
  • 打赏
  • 举报
回复
求救!

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧