首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

六行代码,调了一下午没搞定,请帮忙。该怎么处理

2012-02-29 
六行代码,调了一下午没搞定,请帮忙。将网络共享目录映射到本机 Z: 盘Edit1-Text//内容为\\机器名\共享目

六行代码,调了一下午没搞定,请帮忙。
将网络共享目录映射到本机 Z: 盘

Edit1->Text; //内容为 "\\机器名\共享目录" ( \\\\ 和 \\ 我知道什么时候用)
edt_pass->Text; //内容为 "123456"  
edt_id->Text; //内容为 "Administrator"

通过在windows运行输入 \\机器名
再输入用户名密码能访问网上邻居
程序中却怎么也搞不定

请哪位帮我看一下. 


---------------------------------------

NETRESOURCE ns;

ns.dwType = RESOURCETYPE_DISK;
ns.lpLocalName ="Z:" ;  
ns.lpProvider = NULL;
ns.lpRemoteName = Edit1->Text.c_str(); //内容为 "\\机器名\共享目录" ( \\\\ 和 \\ 我知道什么时候用)


if ( WNetAddConnection2(&ns, edt_pass->Text.c_str(), edt_id->Text.c_str(), 1) == NO_ERROR )
  ShowMessage("ok");
else ShowMessage("no");




[解决办法]
将网络共享目录映射到本机 Z: 盘 
这个一个subst命令就搞定的,要写程序么

比如你要把你的\\机器名\共享目录映射为z盘

就输入 

subst z: \\机器名\共享目录

就可以了

解除的话用

\\机器名\共享目录

subst z:/d 就可以

你要是嫌麻烦,就自己把这个写到注册表里去,把下面的存成一个reg文件,执行一下,点文件夹的鼠标右键就能看到了

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Folder\shell\映射Z盘]

[HKEY_CLASSES_ROOT\Folder\shell\映射Z盘\command]
@="C:\\WINNT\\system32\\Subst.exe z: %1"

[HKEY_CLASSES_ROOT\Folder\shell\解除Z盘]

[HKEY_CLASSES_ROOT\Folder\shell\解除Z盘\command]
@="C:\\WINNT\\system32\\Subst.exe z: /d"

[解决办法]
不要直接用c_str()
我试了一下,成功了

void __fastcall TForm1::Button7Click(TObject *Sender)
{
NETRESOURCE ns;
char RemoteName[80];
strcpy(RemoteName, Edit1->Text.c_str());

ns.dwType = RESOURCETYPE_DISK;
ns.lpLocalName = "Z:";
ns.lpProvider = NULL;
ns.lpRemoteName = RemoteName;


if (WNetAddConnection2(&ns, NULL, NULL, CONNECT_UPDATE_PROFILE) == NO_ERROR)
ShowMessage("ok");
else
ShowMessage("no");
}

[解决办法]
mark
[解决办法]
蹭分!!
[解决办法]
MARK

热点排行