WPF检测设备变化
如果在构造函数中设置会出现为空
HwndSource source = PresentationSource.FromVisual(this) as HwndSource;
此时 source = null,
所以就该放在加载事件中
void Main()
{
var window = new Window
{
Width = 0,
Height = 0,
WindowStyle = WindowStyle.None,
ShowInTaskbar = false,
ShowActivated = false
};
window.Loaded += a_Loaded;
window.Show();
} void a_Loaded(object sender, EventArgs e)
{
var s = (Window) sender;
var source = PresentationSource.FromVisual(s);
if (hwndSource != null)
{
hwndSource.AddHook(newHwndSourceHook(USBDeviceChanged));
}
//...
s.Close();
}
/// <summary>
/// 设备变更
/// </summary>
WM_DEVICECHANGE = 0x219,
/// <summary>
/// 设备树节点变更(新增或删除了设备)
/// </summary>
DBT_DEVNODES_CHANGED = 0x0007,
private IntPtr USBDeviceChanged(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handle)
{
if (msg == WindowsMessage.WM_DEVICECHANGE.GetHashCode())
{
if (wParam.ToInt32() == WindowsMessage.DBT_DEVNODES_CHANGED.GetHashCode())
DeviceUpdate();
}
return IntPtr.Zero;
}
WPF检测设备变化的更多相关文章
- 前端笔记之JavaScript(十二)缓冲公式&检测设备&Data日期
一.JavaScript缓冲公式ease 原生JS没有自己的缓冲公式,但是你要自己推理的话,必须要懂一些数学和物理公式: 让div用100毫秒(帧),从left100px的位置变化到left800px ...
- 转载 iOS全局检测网络变化的实时状态
昨天浏览了cocoaChina,发现了一遍文章是优化Reachablity框架的出来的检测网络类,大家都知道这个Reachablity框架是用来检测网络变化的!但是也是有一点bug,事实上,基于此 ...
- 论wpf的设备无关性 - 简书
原文:论wpf的设备无关性 - 简书 WPF从发布之日起,一直将“分辨率无关(resolution independence)”作为其亮点,声称使用WPF制作的用户界面在轻巧的Ultra-Mobile ...
- Device.js——检测设备平台、操作系统的Javascript 库
http://segmentfault.com/a/1190000000373735 Device.js 是一个可以让你检测设备的平台,操作系统和方向 JavaScript 库,它会自动在 <h ...
- 检测网络变化(wifi、2g、3g、4g)
检测网络变化(wifi.2g.3g.4g) 1.注册广播"android.net.conn.CONNECTIVITY_CHANGE"和"android.net.wifi. ...
- 使用device.js检测设备并实现不同设备展示不同网页
现在很多时候会用@media来控制页面在不同分辨率的设备商展示不同效果,但是有些时候想在直接在PC上展示一个做好的页面,在mobile展示另一个页面.这个时候可以借助device.js来检测设备,然后 ...
- [one day one question] nodejs require 缓存,无法检测文件变化
问题描述: nodejs require 缓存,无法检测文件变化,当文件require引入后,当文件发生变动后即使再次使用require,返回的依然是第一次引入的文件内容,这怎么破? 解决方案: de ...
- 检测设备平台,操作系统,方向 Javascript 库:Device.js
Device.js 是一个可以让你检测设备的平台,操作系统和方向 JavaScript 库,它会自动在 <html> 标签添加一些设备平台,操作系统,方向相关的 CSS class,这样就 ...
- [Swift通天遁地]五、高级扩展-(1)快速检测设备属性:版本、类型、屏幕尺寸
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- js代码检测设备问题:为什么在移动端检测设备的时候会出现pc的页面
为了在手机上也能正常显示页面,所以为之前写的页面又重写了一遍,专门用来在移动端显示,用js代码检测设备,如果是pc就显示pc的页面,如果是移动就显示移动的页面,但遇到一个问题就是在移动端打开会有一个延 ...
随机推荐
- 四数相加II & 赎金信 & 三数之和 & 四数之和
一.四数相加Ⅱ 454. 四数相加 II 1.方法概述 首先定义一个map,key放a和b两数之和,value 放a和b两数之和出现的次数.遍历大A和大B数组,统计两个数组元素之和,和出现的次数,放到 ...
- 使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
使用vs2019学习xamarin时,创建新程序.使用模拟器真机等测试都报错如下图错误: 调整AndroidManifest.xml和设备调试属性,打开[Android SDK和工具]安装可能需要的S ...
- eigen的简单用法汇总
Eigen帮助文档的地址:http://eigen.tuxfamily.org/dox/pages.html Eigen的论坛:http://forum.kde.org/viewforum.php?f ...
- 安卓逆向 HOOK 第一课 XP的安装以及编写
<meta-data android:name="xposedmodule" android:value="true" /> <meta-da ...
- 如何优化线上WebAssembly
如何优化线上WebAssembly WebAssembly部署使用 HTTPS : 为什么?我可以通过一个案例查看 ,下面我们会通过masa docs站点进行测试 打开 http://docs.mas ...
- A*算法小记
\(\text{A*}\) 一种启发式搜索 和暴搜的差别是多了一个估价函数,每次取出一个估算最优的状态以期更高效完成任务 重点在于估价函数 \(\text{h*(n)}\) 的设计,若实际代价为 \( ...
- JZOJ 3736. 【NOI2014模拟7.11】数学题
\(\text{Problem}\) 给出向量 \(\boldsymbol a = (x1,y1), \boldsymbol b = (x2,y2)\) 求 \(|\lambda_1\boldsymb ...
- 解密Prompt系列2. 冻结Prompt微调LM: T5 & PET & LM-BFF
这一章我们介绍固定prompt微调LM的相关模型,他们的特点都是针对不同的下游任务设计不同的prompt模板,在微调过程中固定模板对预训练模型进行微调.以下按时间顺序介绍,支持任意NLP任务的T5,针 ...
- php中 mysql 中文乱码解决办法
首先要保证是utf-8编码或者支持中文的编码 2.Windows下修改方法 MySQL安装目录下的my-default.ini改为my.ini文件 [client]节点 default-charac ...
- javaSE学习三
数组 /*数组的基本特点一.其长度是确定的.数组-旦被创建,它的大小就是不可以改变的.二.其元素必须是相同类型,不允许出现混合类型.三.数组中的元素可以是任何数据类型,包括基本类型和引用类型.四.数组 ...