我们有一个服务器/客户端网吧管理应用程序,它曾经在Windows XP和Vista上正常运行,但现在无法在Windows 7上运行。
客户应该在Cybercafe的客户端PC上获得“锁定”,这意味着它通过更改注册表项取代了Windows资源管理器
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell"
到客户端应用程序的EXE文件的路径。
这在Windows XP上工作得很好,现在在Windows 7上,Explorer.exe和Client.exe都没有运行,只显示一个空白的蓝屏。
我们认为这可能与UAC有关,所以我们禁用它,没有运气。 当我们设法通过另一台计算机在客户端PC上启动Explorer.exe,并使用资源管理器窗口打开Client.exe时,客户端就开始运行了。
(请注意,运行Explorer.exe无法启动Windows Shell,只是打开了一个资源管理器窗口,因为注册表项指向Client.exe并且Shell无法启动,除非注册表项指向Explorer.exe) / p>
想法,每个人? XP和7在这个领域有什么大不同?
答案 0 :(得分:3)
修正了它。希望有人觉得这很有用:
在64位Windows上运行的32位应用无法访问Windows注册表的某些区域。访问该部分的请求被路由到其他一些密钥。这就是我们的应用程序无法锁定Windows 7(它是64位Windows)的原因。 在Visual Studio中将Client.exe从x86更改为“任何CPU”解决了这个问题。
但是,仍然需要禁用UAC以允许客户端工作。