96SEO 2026-02-20 06:35 13
右移运算符是将一个数的二进制位全部右移若干位低位移出(舍弃)。

高位的空位补符号位即正数补零负数补1。
2等于2是将数字11的二进制右移2位即00001011------00000010(2)
左移运算符是将一个数的二进制位全部左移若干位低位右补0高位左移后溢出舍弃。
若a15即二进制数00001111左移2位得00111100即十进制数60。
2则是将数字3左移2位。
即00000011-----00001100(12);
U盘、移动硬盘、USB串口的插入和弹出光盘插入和弹出会有相应的响应在这里对于编程的识别进行探讨
应用程序必须检查事件以确保到达的设备的类型是卷dbch_devicetype
DBT_DEVTYP_VOLUME并且更换会影响介质dbcv_flags
同样应用程序必须检查事件以确保要删除的设备是卷并且更换会影响介质。
//prototype/*------------------------------------------------------------------Main_OnDeviceChange(
--------------------------------------------------------------------*/void
(PDEV_BROADCAST_HDR)lParam;TCHAR
DBT_DEVTYP_VOLUME)//驱动类型为逻辑卷{PDEV_BROADCAST_VOLUME
sizeof(szMsg)/sizeof(szMsg[0]),
DBT_DEVTYP_VOLUME)//驱动类型为逻辑卷{PDEV_BROADCAST_VOLUME
sizeof(szMsg)/sizeof(szMsg[0]),
);}}break;default:/*由于其他设备或原因处理其他
}/*------------------------------------------------------------------FirstDriveFromMask(
--------------------------------------------------------------------*/char
驱动器号字母值unitmaskunitmaskunitmask卷号字母10进制数16进制数10进制数二进制数A65112^010^00
0000000000001000E6910162^410^04
0000000000010000F7020322^510^05
0000000000100000G7140642^610^06
0000000001000000H72801282^710^07
0000000010000000I731002562^810^08
0000000100000000J742005122^910^09
0000001000000000K7540010242^1010^10
000001000000000L7680020482^1110^11
000010000000000M77100040962^1210^12
000100000000000N78200080962^1310^13
001000000000000O794000163842^1410^14
010000000000000P808000327682^1510^15
中可以发现只有一个分区的移动U盘和移动硬盘完全没有问题。
但对于移动U盘和移动硬盘有多个分区时程序就无法完整识别Windows
个值第一个值对应多分区的第一个盘符值第二个值就无法用微软提供的程序算法解释了。
通过对多分区移动盘的识别发现如果移动盘符是
当设备被插入/拔出的时候WINDOWS会向每个窗体发送WM_DEVICECHANGE
时表示Media设备被插入并且已经可用如果wParam值等于DBT_DEVICEREMOVECOMPLETE表示Media设备已经被移出。
*PDEV_BROADCAST_HDR;这个结构体仅仅是一个“头”HDR其后还有附加数据dbch_size表示结构体实例的字节数当其中的dbch_devicetype字段值等于DBT_DEVTYP_VOLUME时表示当前设备是逻辑驱动器且lParam实际上指向的应该是DEV_BROADCAST_VOLUME
*PDEV_BROADCAST_VOLUME;其中dbcv_unitmask
字段表示当前改变的驱动器掩码第一位表示驱动器号A第二位表示驱动器号B第三位表示驱动器号C以此类推……
表示驱动器的类别如果等于1则是光盘驱动器如果是2则是网络驱动器如果是硬盘、U盘则都等于0
0x219;//U盘插入后OS的底层会自动检测到然后向应用程序发送“硬件设备状态改变“的消息
//就是用来表示U盘可用的。
一个设备或媒体已被插入一块现在可用。
//审批要求删除一个设备或媒体作品。
任何应用程序也不能否认这一要求并取消删除。
m.WParam.ToInt32();//存储设备插/拔/弹if
(DEV_BROADCAST_HDR)Marshal.PtrToStructure(m.LParam,
(DEV_BROADCAST_VOLUME)Marshal.PtrToStructure(m.LParam,
typeof(DEV_BROADCAST_VOLUME));if
GetVolumes(dbv.dbcv_unitmask);int
summary根据驱动器掩码返回驱动器号数组/summary///
(uint)Math.Floor(Math.Log(Mask,
代码进行测试插入后的多分区移动磁盘可以识别盘符是对系统所有磁盘进行判断不能对插入、拔出进行响应。
summary获取U盘和可移动硬盘盘符名称/summary///
ManagementClass(Win32_DiskDrive);var
(mo.Properties[mediatype].Value
mo.Properties[mediatype].Value.ToString()
mo.Properties[mediatype].Value.ToString()
mo.GetRelated(win32_diskpartition)){foreach
diskpartition.GetRelated(win32_logicaldisk)){lstdisk.Add(disk.Properties[name].Value.ToString());}}//
lstdisk;}综合上述代码总结可以对设备发生变化时进行的相应的程序操作。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback