社区
C++ Builder
帖子详情
【第二次提问,如何从网内一台机器的共享目录内复制文件到本地???】
ouyangke
2005-02-24 08:45:52
在局域网内有一台服务器共享目录有一些文件,我现在要做一个ActiveX。
写一个函数,当调用这个函数就可以从服务器共享目录复制文件。
我用了copyfile不行的,可能存在用户登陆的问题,服务器是win2003。
客户机是98或者2000都有可能!
写的ActiveX要能在98,2000下面跑才行,请教高手帮忙!!
解决问题,100分送上。不够可以继续加分!!!
...全文
198
14
打赏
收藏
【第二次提问,如何从网内一台机器的共享目录内复制文件到本地???】
在局域网内有一台服务器共享目录有一些文件,我现在要做一个ActiveX。 写一个函数,当调用这个函数就可以从服务器共享目录复制文件。 我用了copyfile不行的,可能存在用户登陆的问题,服务器是win2003。 客户机是98或者2000都有可能! 写的ActiveX要能在98,2000下面跑才行,请教高手帮忙!! 解决问题,100分送上。不够可以继续加分!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weill
2005-02-28
打赏
举报
回复
另外,重点提示:
windows2003主机默认情况下不许可无密码帐户远程登录(怎么打开,本人不知道,也没兴趣知道,呵呵)。
上面代码中的Edit1中显示出来的字串就是你持行的DOS命令字串,如果你持行不成功,请复制出来,去DOS命令窗中手动持行试试,要是在DOS窗中持行不成功,说明你的字串合成有误,请仔细校核。
以上代码本人在windows2003下本机测试通过。
weill
2005-02-28
打赏
举报
回复
上面代码中
WinExec(LS.c_str(),SW_SHOW);
改成
WinExec(LS.c_str(),SW_HIDE);
程序使用者就无法感觉到你调用了DOS命令了。
weill
2005-02-28
打赏
举报
回复
我来给你一个具体的示例吧,如果要抄下面的代码测试,请在窗体上加两个按钮Button2、Button3,和一个Edit1,并把下面代码放入对应的控件中(不会告诉我看不懂吧)。
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{//新建磁盘影射
String LS = "net use z: \\\\199.100.100.2\\D$ \"MyPass\" /user:Administrator";
//说明:在这儿,主机IP为199.100.100.2,主机已有共享目录为D$
//登录用户为:Administrator,用户帐号为:MyPass。
//请根据你的实际情况修改上面一行代码。在这儿只是测试,
//实际使用,考虑安全,请不要使用Administrator帐号,否则可能持行完后,
//客机可以不打密码直接进主机的一些目录。
Edit1->Text = LS;
WinExec(LS.c_str(),SW_SHOW);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{//删除磁盘影射
String LS = "net use z: /del";
Edit1->Text = LS;
WinExec(LS.c_str(),SW_SHOW);
}
//---------------------------------------------------------------------------
ssyfrank
2005-02-28
打赏
举报
回复
gz
ouyangke
2005-02-28
打赏
举报
回复
我顶啊顶
ouyangke
2005-02-28
打赏
举报
回复
Maconel :
我直接用use net怎么总不行呢?
我的代码是这样的
ShellExecute(Handle, NULL, "net use Z: \\\\10.194.85.56\\共享", NULL, NULL, SW_SHOWNORMAL);
一点反映都没有。如果是
ShellExecute(Handle, NULL, "cmd", NULL, NULL, SW_SHOWNORMAL);
是能出dos命令符形式的~`
错在那里呢???
ouyangke
2005-02-28
打赏
举报
回复
感谢weill的详细描述
我使用你的方法
用WinExec在win2000操作系统成功通过
只是奇怪为什么我用ShellExecute不行呢
Maconel
2005-02-25
打赏
举报
回复
在我的电脑里点“工具” - “映射网络驱动器”,然后输入路径,写用户名密码就可以了。
这样可以把对方的一个文件夹映射成为你的一个磁盘驱动器,你用起来就象用自己的硬盘一样。
在控制台中可以用下边命令做同样工作:
net use z \\ip\文件夹名 "password" /user:username
这样就把对方的文件夹映射成了你的z盘。
net use z /del
断开映射。
如果在程序中使用,可以用WNetAddConnection2函数完成此工作,具体用法看下msdn吧。
这里有篇文章给你参考下(转自:立华软件园):
如何在应用程序中映射网络驱动器
我们知道在WINDOWS的平台上可以实现网络驱动器的映射,但在应用程序中如何映 射呢?以下的这个小程序就是演示如何在用户的应用程序中映射网络驱动器。在这里主 要用到了WINDOWS的两个API函数WNetAddConnection2(建立网络驱动器的映射)和 WNetCancelConnection2(取消网络驱动器的映射)以及一个NETRESOURCE结构(用来设 置网络资源)。---- 为了节省篇幅,我在这里只列出本演示程序的主要部分 OnMountButton (为建立网络驱动器的映射)和OnUnmountButton(为取消网络驱动器 的映射)。其中在下面的出现m_NetpathEdit 和m_DriveEdit 为用VC++定义的CEdit控 键。分别接收输入的网络路径和要建立的本地的驱动器盘符。它们都放置在一个对话框 中,如下图所示(略) ---- 建立网络驱动器的映射。
void CMountDlg::OnMountButton()
{
// TODO: Add your control notification handler code here
char netpath[MAX_PATH];
//输入的网络路径 m_NetpathEdit.GetWindowText(netpath, sizeof(netpath));
char drv[MAX_PATH];
//本地的驱动器盘符 m_DriveEdit.GetWindowText(drv, sizeof(drv));
NETRESOURCE netres; netres.dwScope=RESOURCE_GLOBALNET;
netres.dwType=RESOURCETYPE_ANY;
netres.dwDisplayType=RESOURCEDISPLAYTYPE_GENERIC;
netres.dwUsage=RESOURCEUSAGE_CONNECTABLE;
netres.lpLocalName=drv; netres.lpRemoteName=netpath;
netres.lpComment=NULL; netres.lpProvider=NULL;
DWORD rslt=WNetAddConnection2(&netres, NULL, NULL, 0);
CString str;
str.Format("WNetAddConnection2() return code=%d", rslt);
MessageBox(str);
}
取消网络驱动器的映射
void CMountDlg::OnUnmountButton()
{
// TODO: Add your control notification handler code here
char drv[MAX_PATH];
//本地的驱动器盘符
m_DriveEdit.GetWindowText(drv, sizeof(drv));
DWORD rslt=WNetCancelConnection2(drv, 0, FALSE);
CString str;
str.Format("WNetCancelConnection2() return code=%d", rslt);
MessageBox(str);
//显示信息成功与否 return code =0 成功 否则 建立失败
}
---- 本程序在VC++6.0及windows95/98/nt下编译通过。注意在程序的编译连接中加入 mpr.lib,我们用两个API函数在这个库中。
ouyangke
2005-02-25
打赏
举报
回复
啊 Maconel 那如何建立磁盘映射啊?
没听说过哦代码怎么写!
ouyangke
2005-02-24
打赏
举报
回复
我需要在用户不知情的时候把文件复制到他本机
不能使用磁盘映射的方法!!
Maconel(Maconel) 还有什么好方法啊?
lidawen
2005-02-24
打赏
举报
回复
支持.
Maconel
2005-02-24
打赏
举报
回复
先建立一个磁盘映射,把他的文件夹映射为你的一个盘,然后再copyfile。
mli0080
2005-02-24
打赏
举报
回复
对呀 只要你有权限登录就可以用磁盘映射,然后再复制
Maconel
2005-02-24
打赏
举报
回复
你用磁盘映射也不需要对方的同意呀,只要你有权限
(重要)AIX command 使用总结.txt
AIX常用命令://查看
机器
序列号,IBM的基本信息都可以通过该命令查询得到 #prtconf #oslevel -r == uname -a //操作系统版本 #oslevel //查看操作系统版本ex :5.1.0.0 #oslevel -r //ex:5100-04 == oslevel -q //...
面试互怼
提问
互怼
提问
– 架构优化 1. 主从
复制
的原理是什么?主从
复制
中断了怎么办?主从
复制
出现延迟怎么处理?主库崩溃了怎么办?Mha 原理:原理:主从
复制
一共有三个进程,从库生成两个线程,一个I/O线程,一个SQL线程...
Glasterfs 分布式网络
文件
系统
# Glusterfs是一个开源的分布式
文件
系统, 一般在企业内部或线上公司,多数采用的是其中分布式
复制
卷范式存储数据,因为有数据备份,数据相对安全。同时在性能方面它能够同时处理千数量级的客户端请求。它的主要特性...
IPC
共享
连接精解
IPC
共享
连接精解 一 摘要二 什么是ipc$三 什么是空会话四 空会话可以做什么五 ipc$所使用的端口六 ipc管道在hack攻击中的意义七 ipc$连接失败的常见原因八
复制
文件
失败的原因九 关于at命令和xp对ipc$的限制十 如何...
IPC$命令详解
一 摘要二 什么是ipc$三 什么是空会话四 空会话可以做什么五 ipc$所使用的端口六 ipc管道在hack攻击中的意义七 ipc$连接失败的常见原因八
复制
文件
失败的原因九 关于at命令和xp对ipc$的限制十 如何打开目标的IPC$...
C++ Builder
13,825
社区成员
102,679
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章