卤煮注意, 你的问题应该不是登陆的账号问题,
通过你的描述“但直接以user打开和直接以Administrator账号登录后打开都没有问题”可以肯定你的问题应该就是“以管理员身份运行”的时候出现bug, 如果你要找bug, 以管理园运行与直接运行的区别在于, 你获取当前程序的路径是不一样的, 直接获取的就是你真实的目录, 以管理员运行获取的却是windows目录, 这样可能造成你操作windows目录的时候被阻止。
还有一些环境变量的值也会不一样
一个简单的例子, 把下面的代码拷贝出来,保存成一个bat文件, 你直接运行和以管理员运行可以看到获取的当前目录是不一样的:
@echo off
echo %cd%
pause
通过你的描述“但直接以user打开和直接以Administrator账号登录后打开都没有问题”可以肯定你的问题应该就是“以管理员身份运行”的时候出现bug, 如果你要找bug, 以管理园运行与直接运行的区别在于, 你获取当前程序的路径是不一样的, 直接获取的就是你真实的目录, 以管理员运行获取的却是windows目录, 这样可能造成你操作windows目录的时候被阻止。
还有一些环境变量的值也会不一样
一个简单的例子, 把下面的代码拷贝出来,保存成一个bat文件, 你直接运行和以管理员运行可以看到获取的当前目录是不一样的:
@echo off
echo %cd%
pause
这个问题比较复杂,再说一些细节:
问题出现在:
1)32位Windows Vista/7/8/2008系统,但64位系统下是好好的,怎么换用户都没问题
2)以一个不叫Administrator的用户名登录(不管这个用户是不是admin组),然后“以管理员身份运行”(不管“以管理员身份运行”后用哪个用户名),这时会出问题,但直接以Administrator用户名登录就没有任何问题,即使“以管理员身份运行”也一样。
3)具体问题是我调用一个Windows的钩子,在出问题的系统环境下,我只有把鼠标移到我的软件的界面上,这个钩子才工作...没出问题的话,我的鼠标无论在那儿,钩子都工作...
1.在win7系统中加入LowLevelHooksTimeout时间,如[HKEY_CURRENT_USER\Control Panel\Desktop]"LowLevelHooksTimeout"=dword:00002710
2.在安装钩子尽量在一个独立的线程中进行,并且钩子处理过程尽量用较短的时间,其他任何较长时间的处理都放在别的线程中异步处理。(尽量不要写花时间的hook代码)http://www.cnblogs.com/braver/articles/2557961.html其实win7/vista下钩子失败问题有好多案例:
http://q.cnblogs.com/q/12582/
http://bbs.eyuyan.com/read.php?tid=225076