Vb6 更新:在windows登录屏幕上与用户交互

Vb6 更新:在windows登录屏幕上与用户交互,vb6,windows-services,authentication,Vb6,Windows Services,Authentication,@更新: 对任何在这个问题上寻求建议的人来说 到目前为止,我发现最好的方法是下载一份2k/XP的GINA,并对其进行修改,对于vista/win7,您需要创建自定义登录凭据(pGina拥有与vista/win7体系结构接口的工具/示例) 为了证实这一点,Novell似乎正在使用Vista/Win7,而不是传统的替代GINA的方法(如2k/XP) 如果其他人想出了在Win7登录屏幕上运行应用程序的方法,请发布 好的,我正在编写一些vb6软件,在用户登录到系统之前需要输入 基本上,我想在Windo

@更新:

对任何在这个问题上寻求建议的人来说

到目前为止,我发现最好的方法是下载一份2k/XP的GINA,并对其进行修改,对于vista/win7,您需要创建自定义登录凭据(pGina拥有与vista/win7体系结构接口的工具/示例)

为了证实这一点,Novell似乎正在使用Vista/Win7,而不是传统的替代GINA的方法(如2k/XP)

如果其他人想出了在Win7登录屏幕上运行应用程序的方法,请发布


好的,我正在编写一些vb6软件,在用户登录到系统之前需要输入

基本上,我想在Windows登录屏幕上运行一个应用程序,用户可以在其中与程序交互。目前,我有一个作为服务运行的应用程序,允许与桌面交互,但它现在仍然显示出来

我知道“允许服务与桌面交互”将在Windows 2000/XP中运行,我正在运行Windows 7-我也知道服务在Windows Vista中无法直接与用户交互-这么说,有没有其他方法可以让我的应用程序在登录屏幕上运行。诺维尔做到了


是否有人有任何其他想法来实现此功能?

只有在您自己验证凭据的情况下才能执行此操作。在Vista之前,这是通过GINA完成的,但由于Vista,您需要自己编写

这背后的原因隐藏在安全原则中——Ctrl-Alt-Del只会显示与登录相关的窗口站(etc),其他应用程序无法访问该窗口站(例如,您不能在顶部创建一个假密码框来刮取密码)


如果不知道为什么您认为您的服务需要与该桌面交互,很难进一步提出建议,但这可能意味着您的设计在某种程度上被破坏了。

服务隔离可能会阻止您从服务执行此操作


vista之前的Novell和类似产品可能会使用GINA,后者在vista中被取代

我知道的唯一方法是编写自己的msgina.dll


不过,在测试过程中可能会出现危险。任何错误都会将操作系统搞得一团糟,需要完全重新安装。

对于Vista之前的系统,您可以实现GINA,如果需要,它可以完全替换登录界面。有关更多信息,请参阅wikipedia文章:然而,这在Vista/Windows 7中似乎不可能实现,但这可能为进一步研究提供了一个良好的起点。基本上,我有一个应用程序,它是一个专有系统,根据登录的用户将专有网络驱动器映射到该系统。我想在登录屏幕上运行的程序允许在用户登录前设置一些关键选项。某些网络登录脚本依赖于登录屏幕上运行的程序的设置。我知道GINA使用2k/xp,但xp不再是一个选项。编写我自己的凭证提供者需要多少工作?这将是重新创建登录屏幕?@neddy你不能通过广告和登录脚本来实现吗?或者这些设置是否为同一用户、同一台机器而更改?不,它们是按用户/pc更改的——基本上,它就像一个迷你novell系统,将用户的驱动器映射到该系统。-因此,一些ad和登录脚本依赖于此系统映射的驱动器…@neddy我对Novell知之甚少,但听起来您似乎在尝试重新实现Active Directory/漫游配置文件“开箱即用”为您提供的功能?是的,如果您使用ad,ad可以做到,我的问题是它无法可靠地跨平台工作,我们通过mysql数据库对用户进行身份验证--我正在考虑使用pgina进行身份验证,但我仍然存在最初的问题…Vista/Win7之前的版本确实使用GINA来替换登录--我已经研究了几个星期了:/如果我错了,请纠正我,但据我所知,msgina.dll已不在win vista/7中。我使用它已有几年了。要让企业用户安装这样一个beast是很难的,所以我们放弃了这个想法。@neddy-你说得对,GINA在Vista和更高版本中被删除,是为了支持微软的凭证提供商。