windows7编程注意事项与兼容性

 

 

 

经常听到,自己也经常遇到一种情况  那就是同样的系统XP下运行的好好的,怎么到了win7或者win server2008就怎么也运行不起来。是win7的兼容性不好,经过一段时间的信息搜索,发现不尽然! win7系统下开发是有需要注意的地方的,下面记一下 ,我所了解到得情况。。

 

 

1.在系统启动开头一定要检测操作系统的版本号,这是一个好习惯。

具体的检测方法有相应的API

 

2.尽量将数据保存在非系统盘(包括软件的安装路径也要注意这个)

 

3.win7系统对注册表是有保护的(所谓的UAC,有时间了解下),因此如果要操作注册表,可以考虑在HKEY_CURRENT_USER\Software下进行。

 

WINDOWS 7兼容性问题一般是由UAC机制导致的,先在不妨简单了解下UAC

 

从windows vista, windows 7开始微软引入了UAC的机制,使得操作系统的标准普通用户被限制访问一些核心文件,文件夹和注册表键值。

WINDOWS VISTA 为了改善对于普通用户应用程序的兼容性,同时又不失去安全性,就利用UAC(虚拟化访问技术)将应用程序的写操作重新定向到一个预先在用户的配置文件中定义的目录。UAC 分为文件虚拟,和注册表虚拟两项。例如,当一个普通用户运行一个应用程序尝试写入数据到 C:\Program Files\Contoso\Settings.ini时,这个写入操作将被重新定向到C:\Users\Username\AppData\Local\VirtualStore\Program Files\Contoso\settings.ini。这就是为什么我们在写入的时候没有任何错误,但是在相应的目录下找不到我们创建的文件。同样的,对注册表HKLM\Software的写入操作也会被重新定向到HKCU\Software\Classes\VirtualStore。下图1展示了整个UAC Virtualization的流程。

 

 

 

  这里需要注意的是,UAC Virtualization仅作用于32位的应用程序对系统文件/目录、注册表的读写。64位程序、非交互式程序、模拟程序(Processes that impersonate)、内核调用者、Manifest中含有requestedExecutionLevel属性的可执行文件不包含在Virtualization的作用范围内。

 

 

 

在位windows7开发应用程序时,我们应该始终开发与标准用户权限相适应的一个用程序,而不应该总是幻想着总是在管理员的权限下运行你的程序,同时也应该更多的在普通用户下测试你的程序!

 

 

在windows7下开发是的原则:

(1)在运行的时候,程序应该只会将数据保存到每个用户预先定义的位置或者是%alluserprofile%中定义的普通用户拥有访问权限的位置

(2)确定你要写入数据的“已知文件夹”(Knownfolders)。通常,所有用户共用的公共数据文件应该写入到一个全局的公共的位置,这样所有用户都可以访问到。而其它数   据 则应该写入每个用户自己的文件夹。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值