C#怎么做个桌面监控
我想用C#做个桌面的一个监控,我只监控我桌面某一处的变化,就比方说是(0,0,100,100)这个区域的监控,并且将图像放大,再显示在(500,0,700,200)这个区...
我想用C#做个桌面的一个监控,我只监控我桌面某一处的变化,就比方说是(0,0,100,100)这个区域的监控,并且将图像放大,再显示在(500,0,700,200)这个区域。我本来想实时截图,但是这样会导致很大的延迟,所以请求大侠帮忙,看看有没有好的方法。
我的这个程序只在本地运行的,不是远程的。
1楼说的放大镜我没用过,不过性质是这样的
我有邮箱,邮箱是980177174@qq.com
非常感谢你 展开
我的这个程序只在本地运行的,不是远程的。
1楼说的放大镜我没用过,不过性质是这样的
我有邮箱,邮箱是980177174@qq.com
非常感谢你 展开
2个回答
展开全部
类似windows的放大镜程序?
等待楼下。
等待楼下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有邮箱吗 发你邮箱,
希望对你有帮助。。。
正好我在学习Graphics
就帮你做了一个。。。
我用的是visual studio 2008
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Drawing.Drawing2D;
namespace TabletopMonitor
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
initData();
}
private Thread th;
delegate void SetImageCallBack(Image img);
private void initData()
{
th = new Thread(new ThreadStart(newThread));
}
private void newThread()
{
while (true)
{
try
{
copyscreen();
//Thread.Sleep(100);
}
catch
{
break;
}
}
}
private void MainForm_Load(object sender, EventArgs e)
{
th.Start();
}
public void copyscreen()
{
Rectangle rec = Screen.PrimaryScreen.Bounds;
Bitmap img = new Bitmap(100, 100);
Graphics g = Graphics.FromImage(img);
g.CopyFromScreen(rec.Location, new Point(0, 0), new Size(100, 100));//拷屏
img = KiResizeImage(img, 200, 200);
SetImage(img);
}
private void SetImage(Image img)
{
if (this.pbxMain.InvokeRequired)
{
SetImageCallBack set = new SetImageCallBack(SetImage);//委托实现刷新图片
this.pbxMain.Invoke(set, img);
}
else
{
this.pbxMain.Image = img;
}
}
private Bitmap KiResizeImage(Bitmap bmp, int newW, int newH)//图片缩放
{
Bitmap b = new Bitmap(newW, newH);
Graphics g = Graphics.FromImage(b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
g.Dispose();
return b;
}
}
}
希望对你有帮助。。。
正好我在学习Graphics
就帮你做了一个。。。
我用的是visual studio 2008
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.Drawing.Drawing2D;
namespace TabletopMonitor
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
initData();
}
private Thread th;
delegate void SetImageCallBack(Image img);
private void initData()
{
th = new Thread(new ThreadStart(newThread));
}
private void newThread()
{
while (true)
{
try
{
copyscreen();
//Thread.Sleep(100);
}
catch
{
break;
}
}
}
private void MainForm_Load(object sender, EventArgs e)
{
th.Start();
}
public void copyscreen()
{
Rectangle rec = Screen.PrimaryScreen.Bounds;
Bitmap img = new Bitmap(100, 100);
Graphics g = Graphics.FromImage(img);
g.CopyFromScreen(rec.Location, new Point(0, 0), new Size(100, 100));//拷屏
img = KiResizeImage(img, 200, 200);
SetImage(img);
}
private void SetImage(Image img)
{
if (this.pbxMain.InvokeRequired)
{
SetImageCallBack set = new SetImageCallBack(SetImage);//委托实现刷新图片
this.pbxMain.Invoke(set, img);
}
else
{
this.pbxMain.Image = img;
}
}
private Bitmap KiResizeImage(Bitmap bmp, int newW, int newH)//图片缩放
{
Bitmap b = new Bitmap(newW, newH);
Graphics g = Graphics.FromImage(b);
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.DrawImage(bmp, new Rectangle(0, 0, newW, newH), new Rectangle(0, 0, bmp.Width, bmp.Height), GraphicsUnit.Pixel);
g.Dispose();
return b;
}
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询