WNetAddConnection2问题
exe使用管理员权限开打并运行WNetAddConnection2函数,打开资源管理器不显示盘符,驱动器;当我使用管理员cmd执行net use命令是可以看见WNetAddConnection2执行成功的,就是资源管理器不显示图标。
使用非管理员权限执行WNetAddConnection2,资源管理器中可以正常显示。
有没有人遇到过这样的问题,网络查了很多并没有什么好的解决办法。
都说不要使用管理员权限,但是程序中有其他地方需要管理员权限才能使用。
WNetAddConnection2问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- m0_54204465 2023-01-11 18:03关注
WNetAddConnection2是Windows API中的一个函数,它允许程序连接到远程共享资源。在你的情况中,你已经成功地使用了这个函数(根据您的说法,net use命令显示已成功),但是在资源管理器中没有显示驱动器图标.
这种情况可能是因为您在使用管理员权限运行程序时,资源管理器运行在不同的用户上下文中,因此您在程序中连接的共享资源不可见。
为了解决这个问题,您可以尝试在不使用管理员权限的情况下运行程序并调用WNetAddConnection2,或者,您可以使用Windows任务计划程序在启动时运行您的程序并在其中提供管理员凭据。
下面是一个简单的C++程序示例,它使用WNetAddConnection2函数连接到远程共享资源:#include <Windows.h> #include <Winnetwk.h> #include <iostream> using namespace std; int main() { WCHAR remoteName[] = L"\\\\RemoteServer\\ShareName"; WCHAR userName[] = L"Username"; WCHAR password[] = L"Password"; DWORD result; result = WNetAddConnection2( &NETRESOURCE { 0 }, password, userName, 0); if (result != NO_ERROR) { cout << "WNetAddConnection2 failed: " << result << endl; } else { cout << "Connection successful!" << endl; } return 0; }
这里假设您要连接的远程共享的名称为“\RemoteServer\ShareName”,用户名为“Username”,密码为“Password”。当您运行这个程序时,如果连接成功,将会输出“Connection successful!”,否则会输出错误代码。
注意这里是一个仅提供示例,代码中很多地方可能需要根据实际情况进行修改。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 软件供应链安全是跟可靠性有关还是跟安全性有关?
- ¥15 电脑蓝屏logfilessrtsrttrail问题
- ¥20 关于wordpress建站遇到的问题!(语言-php)(相关搜索:云服务器)
- ¥15 【求职】怎么找到一个周围人素质都很高不会欺负他人,并且未来月薪能够达到一万以上(技术岗)的工作?希望可以收到写有具体,可靠,已经实践过了的路径的回答?
- ¥15 Java+vue部署版本反编译
- ¥100 对反编译和ai熟悉的开发者。
- ¥15 带序列特征的多输出预测模型
- ¥15 Python 如何安装 distutils模块
- ¥15 关于#网络#的问题:网络是从楼上引一根网线下来,接了2台傻瓜交换机,也更换了ip还是不行
- ¥15 资源泄露软件闪退怎么解决?