C# WPF 无窗体传递消息】的更多相关文章

WPF如果存在窗体(或至少,在任务栏有图标显示),互相传递消息是很容易的. 寻找目标窗体句柄->WindowsAPI SendMessage/PostMessage->目标窗体AddHook.参见:C# WPF 窗体传递消息 但是,如果窗体不存在,比如说,最小化的时候仅显示一个tray icon,连任务栏的图标都不能用,这个流程就不管用了.因为此时无法获取到目标窗体的句柄. 到达到这个要求,还有几种不同的方法: 1.管道.因为就在本机传递消息,所以匿名管道/命名管道都可以满足要求: 2.TCP…
原文:WPF无边框捕获消息改变窗口大小 文章大部分转载自http://blog.csdn.net/fwj380891124,如有问题,请联系删除  最近一直在学习 WPF,看着别人做的WPF程序那么漂亮,眼红啊- 很多漂亮的程序都是无边框的.于是无边框窗口操作就是最重要的了.无边框窗口的操作一直以来相关的资料就很少.WPF 下的就更少了,有的大多是无边框窗体的移动.在得到群里高人的指点,再查了一些资料之后,终于把问题解决了.       废话不多说,直接来看看如何实现吧!其实现原理很简单:拦截并…
对于存在窗体的WPF程序(或者说,起码在任务栏上有个图标,即ShowInTaskbar = true),互相传递消息是很容易的. 步骤: 1,寻找窗体的句柄 2,运用windows API: SendMessage或PostMessage 3,目标窗体收到消息 这里的代码,展示了一个APP不希望多开所以在启动时检查是否存在一个已经运行的进程.如果进程已经存在,则给对方发送消息并结束自身. 1.判断/获取已经运行的实例 /// <summary> /// 获取当前exe文件的是否已经在电脑上运行…
场景 :需要开发一个通讯组件 流程为:界面-开启接收服务-通过发送组件发送信息到 其他客户端和服务端 接受服务接收其他客户端发送的消息 需要传递给对应组件或者界面 因此会出现类库重复引用问题.因为采用消息队列,和数据库中转来传递消息需要每个组件知道太多其他组件的业务,并且耗损性能和时间更多一下因此都被排除掉.最后采用Windows API传递消息 后续如果有更好地办法再继续更新上来 由于项目进程间和线程间需要进行通讯,因此通过api调用windows底层消息传递   [DllImport("Us…
对于WPF,一旦隐藏了标题栏,就无法移动,这时候需要重写移动方法,下面列举常见的三种方式方式. 方式一:重写OnMouseLeftButtonDown protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) { base.OnMouseLeftButtonDown(e); // 获取鼠标相对标题栏位置 Point position = e.GetPosition(bTop); // 如果鼠标位置在标题栏内,允许拖…
原文:wpf无边框窗体移动和大小调整   using System; using System.Windows; using System.Windows.Interop; namespace Wpftest { public partial class MainWindow : Window { public MainWindow() { this.InitializeComponent(); // 在此点下面插入创建对象所需的代码. } protected override void OnS…
原文:WPF实现无窗体鼠标跟随 上次的弹力模拟动画实现后,我觉得可以把这个弄得更好玩一些,我们可以让小球实时跟随着鼠标,并且还可以让窗口完全消失,让小球在桌面上飞来飞去. 这只需要一些简单的修改就可以完成了: 首先要去掉原有的鼠标点击事件处理,它们现在没用了. 在引用中添加对System.Drawing及System.Windows.Forms的引用: 在处理X.Y坐标变化的代码前加入如下代码: 接下来要修改窗体的属性,以使其覆盖全屏.总在最前.不显示在任务栏且完全透明,这需要进行以下的属性设置…
转自 http://download.csdn.net/detail/xiang348352/3095084 WPF无边框移动窗体,先在<Window>里添加 MouseLeftButtonDown="Window_MouseLeftButtonDown" 然后导航到事件,在事件里添加 if (e.LeftButton == MouseButtonState.Pressed) this.DragMove(); 就可以了,还不懂的话,就下载研究 转自 http://downl…
WPF无边框移动窗体,先在<Window>里添加 MouseLeftButtonDown=”Window_MouseLeftButtonDown” 然后导航到事件,在事件里添加 if (e.LeftButton == MouseButtonState.Pressed) this.DragMove();…
参考文档,下面有转载[非常好的两篇文章]: http://www.cnblogs.com/loveis715/p/4592246.html [跨源的各种方法总结] http://kb.cnblogs.com/page/139725/ [跨域综述]:CORS利用服务器响应头和ajax技术实现跨域消息传递.例外还有其他很多跨域技术,详述如下: ①图像Ping img的src属性不仅可以用来指定图片url,还可以用来跨域传递消息.不过只能是单向向服务器传递,无法访问服务器响应信息.可以用于跟踪广告浏览…