返回首页

请我我可以使用WNetAddConnection2连接到远程注册表股。 MSDN库中说,它是可能的,但如何:

下面是一个副本从MSDN libray的过去:
NBSP

NBSP

NBSP { BR}
RegConnectRegistry功能

建立连接到1预定义的注册表键在另一台计算机上


龙WINAPI RegConnectRegistry(
NBSP _ innbsp ; NBSP NBSP NBSP NBSP NBSP
NBSP LPCTSTR类型lpMachineName, _ innbsp NBSP HKEY参数hKey,
_ outnbsp NBSP PHKEY phkResult
);

参数
lpMachineName
名称远程计算机。字符串具有下列形式:

\ \ computername的
调用者必须有访问远程计算机或函数失败
NBSP

如果这个。参数为NULL,使用本地计算机的名称
NBSP。
参数hKey
预定义注册表句柄。这个参数可以在远程计算机上的下列预定义键之一。 NBSP


HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_PERFORMANCE_DATA
HKEY_USERS

Windows Me/98/95中: 这个参数可以也有以下值:
NBSP

HKEY_CURRENT_CONFIG HKEY_DYN_DATA
NBSP
phkResult
指针变量,收到遥控器上的键的句柄标识预定义的句柄计算机

返回值如果函数成功,返回值是ERROR_SUCCESS


如果函数失败,返回值是一个非零的错误代码定义在Winerror小时。您可以使用的FORMATMESSAGE与FORMAT_MESSAGE_FROM_SYSTEM标志的功能得到一个错误
NBSP通用描述;
备注
访问远程计算机时,在HKEY_CURRENT_USER键是不能保证的交互式用户。最有可能的是,这将是HKEY_USER \默认
的 。

由RegConnectRegistry返回的句柄不再需要时,它应调用RegCloseKey关闭NBSP
如果计算机是加入到工作组和"部队的网络登录,使用本地帐户的验证为来宾"的政策已启用,该函数将失败。请注意,这个政策是默认启用的,如果计算机加入到工作组
NBSP。
如果当前用户没有适当的访问到远程计算机,RegConnectRegistry调用失败。连接到远程注册表,调用LogonUser的与LOGON32_LOGON_NEW_CREDENTIALS和ImpersonateLoggedOnUser之前调用RegConnectRegistry
NBSP
的Windows 2000。 NBSP,如IPC $的一个可能的解决办法是建立一个会话管理共享使用一组不同的凭据。要指定当前用户的凭据,使用WNetAddConnection2函数连接到的份额。当您完成访问注册表,取消连接。关闭,因为这篇文章是不是一个问题,或尚未在措辞的方式,允许将提供一个合理的答案。报告于2011年9月14日(星期三),7:26。

回答

评论会员:游客 时间:2012/02/06
这是应当从UI类中删除功能的"业务逻辑"代码分离如果你创建一个类来管理所有的数据和功能,那么这个类可以简单地提出任何形式在系统中可以处理的事件。主要形式,将举行以这个数据管理对象的一个​​实例的引用,然后传递引用的报告,报告建设期间将配合从数据管理对象的事件。当RoutineX()内的数据管理对象的运行,它可以调用该报告的对象将响应的事件。当RoutineX()完成其过程,并返回,父窗体仍然可以简单地关闭你现在做的报告
圣保罗Zemek
评论会员:游客 时间:2012/02/06
。问题是,消息只处理后的实际消息处理在您的情况下,所有的消息将完成后的实际方法(可能是点击)进程。为了解决这个问题有很多技巧。使用一个线程(无论是间接地通过一项任务或一个完整的线程)运行RoutineX的将使实际的方法来"完成",使新邮件进行处理,同时执行。但是,那么你将需要处理线程同步问题。如果你想尝试,请致电:ThreadPool.QueueUserWorkItem(RoutineX);您将需要,使RoutineX接收对象类型的参数,即使你不使用它。这将使routinex在另一个线程中运行。