aardio 官方社区

 找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 17039|回复: 14

求助:aardio能访问局域网内共享文件夹里的文件么?

[复制链接]

18

主题

53

回帖

442

积分

二级会员

积分
442
发表于 2011-12-5 08:43:27 | 显示全部楼层 |阅读模式
aardio能访问局域网内共享文件夹里的文件么?访问这个共享文件夹需要用户名和密码!搜遍网络没找着.....

求助列位大侠!




65

主题

880

回帖

5033

积分

荣誉会员

积分
5033
发表于 2011-12-5 09:48:36 | 显示全部楼层
据说用wmi可以.

27

主题

648

回帖

4138

积分

超级版主

积分
4138
发表于 2011-12-5 10:21:14 | 显示全部楼层
::Mpr := ..raw.loadDll("Mpr.dll")
WNetAddConnection2 = ::Mpr.api(
"WNetAddConnection2A","int(struct lpNetResource,string lpPassword,string lpusername,int dwFlags)")
WNetCancelConnection2 = ::Mpr.api(
"WNetCancelConnection2A","int(string lpName,int dwFlags,bool fForce)")

//声明结构体
class NETRESOURCE {
    INT dwScope;
    INT dwType;
    INT dwDisplayType;
    INT dwUsage;
    string lpLocalName;
    string lpRemoteName;
    string lpComment;
    string lpProvider;
}
  
connectHostShareFolder =
function(  ip, username="", password="", strShareName, showDiskPatition = "X:"){  
   
var  strConnect =  "\\" + ip + "\" + strShareName;
   
var netResource = NETRESOURCE();
    netResource.dwScope = 0x1
/*_RESOURCE_CONNECTED*/;
    netResource.dwType = 0x1
/*_RESOURCETYPE_DISK*/;
    netResource.dwDisplayType = 0x3
/*_RESOURCEDISPLAYTYPE_SHARE*/;
    netResource.lpLocalName = showDiskPatition
    netResource.lpRemoteName = strConnect;
   
var dwRes = WNetAddConnection2( netResource,password,username,0x1/*_CONNECT_UPDATE_PROFILE*/);
   
return (dwRes == 0x0/*_NO_ERROR*/ || dwRes == 0x4C3/*_ERROR_SESSION_CREDENTIAL_CONFLICT*/) )  ;
}

disConnectHostShareFolder =
function(ip, strShareName,bForceClose ){
    strShareName =  
"\\" + ip + "\" + strShareName;
   
var dwResult = WNetCancelConnection2 (strShareName,0x1/*_CONNECT_UPDATE_PROFILE*/,bForceClose);
   
return dwResult == 0x0/*_NO_ERROR*/
}

//创建共享文件夹映射
connectHostShareFolder("IP地址","用户名","密码","共享名")

18

主题

53

回帖

442

积分

二级会员

积分
442
 楼主| 发表于 2011-12-5 14:34:23 | 显示全部楼层
quicker 发表于 2011-12-5 10:21
::Mpr := ..raw.loadDll("Mpr.dll")
WNetAddConnection2 = ::Mpr.api("WNetAddConnection2A","int(struct ...

还是版主比较牛逼啊,谢谢了!

18

主题

53

回帖

442

积分

二级会员

积分
442
 楼主| 发表于 2011-12-5 14:40:07 | 显示全部楼层
本帖最后由 dong706 于 2011-12-5 14:48 编辑
quicker 发表于 2011-12-5 10:21
::Mpr := ..raw.loadDll("Mpr.dll")
WNetAddConnection2 = ::Mpr.api("WNetAddConnection2A","int(struct ...


不知道这段代码怎么使用....

我把相关参数都传进connectHostShareFolder里了,执行了没反应。

另:1.共享文件夹里有一个excel文件,我能通过aau打开这个excel文件吗?
       2.我能通过aau运行这个excel文件里的宏吗?
未命名.jpg 我测试了这样是不行的。

18

主题

53

回帖

442

积分

二级会员

积分
442
 楼主| 发表于 2011-12-5 14:55:02 | 显示全部楼层
本帖最后由 dong706 于 2011-12-5 14:55 编辑
dong706 发表于 2011-12-5 14:40
不知道这段代码怎么使用....

我把相关参数都传进connectHostShareFolder里了,执行了没反应。


第1点要求已经实现了,通过命令行直接就可以了,代码如下:
  1. import console;//打开控制台
  2. execute("net use \\192.168.0.100\tools 123456 /user:administrator") //123456是共享文件夹密码
  3. execute("\\192.168.0.100\tools\test\nn.xls")
  4. ;//关闭控制台
复制代码


至于第二点,尚未有思路。

27

主题

648

回帖

4138

积分

超级版主

积分
4138
发表于 2011-12-5 15:01:54 | 显示全部楼层
上面的代码是连接共享文件目录, 创建一个虚拟分区 X:
connectHostShareFolder() 成功会返回true

创建分区以后,你就可以象本地文件一样操作了.
代码已测试可用, 你仔细看一下参数是否错误

18

主题

53

回帖

442

积分

二级会员

积分
442
 楼主| 发表于 2011-12-5 15:52:58 | 显示全部楼层
本帖最后由 dong706 于 2011-12-5 17:34 编辑
quicker 发表于 2011-12-5 15:01
上面的代码是连接共享文件目录, 创建一个虚拟分区 X:
connectHostShareFolder() 成功会返回true
  1. console.log(connectHostShareFolder("192.168.0.100","administrator","123456","tools") )
复制代码


为什么返回的是false.....我确认ip、用户名、密码、路径均正确!

42

主题

628

回帖

3765

积分

版主

积分
3765
发表于 2011-12-5 17:17:21 | 显示全部楼层
路径写错了,虚拟分区怎么可能指向一个文件?

你这样试试:
  1. connectHostShareFolder("192.168.0.100","administrator","123456","tools")
复制代码

42

主题

628

回帖

3765

积分

版主

积分
3765
发表于 2011-12-5 17:19:45 | 显示全部楼层
对于编程,“我确认............正确”不具有可靠性。

只有电脑确认为正确的,才算是正确,电脑永远会忠实执行你的指令,并且他总是对的。

18

主题

53

回帖

442

积分

二级会员

积分
442
 楼主| 发表于 2011-12-5 17:33:22 | 显示全部楼层
本帖最后由 dong706 于 2011-12-5 17:36 编辑
编程 发表于 2011-12-5 17:17
路径写错了,虚拟分区怎么可能指向一个文件?

你这样试试:
  1. connectHostShareFolder("192.168.0.100","administrator","123456","tools")
复制代码


你这个我也试过了,也是返回false。在tools后边加个  \  也不行。

42

主题

628

回帖

3765

积分

版主

积分
3765
发表于 2011-12-5 18:12:20 | 显示全部楼层
看一下WNetAddConnection2返回的错误码是多少,百度一下

18

主题

53

回帖

442

积分

二级会员

积分
442
 楼主| 发表于 2011-12-6 20:54:18 | 显示全部楼层
  1. connectHostShareFolder("192.168.0.100","administrator","123456","tools")
复制代码
杯具了,这样调用是可以的...

之前返回false是因为我已经成功虚拟了一个X盘,再调用的肯定返回false了!

18

主题

53

回帖

442

积分

二级会员

积分
442
 楼主| 发表于 2011-12-14 17:56:57 | 显示全部楼层
quicker 发表于 2011-12-5 10:21
::Mpr := ..raw.loadDll("Mpr.dll")
WNetAddConnection2 = ::Mpr.api("WNetAddConnection2A","int(struct ...

disConnectHostShareFolder 方法的   bForceClose 参数该传什么值?我试了true和false都不行。

0

主题

5

回帖

92

积分

一级会员

积分
92
发表于 2012-2-21 00:16:33 | 显示全部楼层
2.我能通过aau运行这个excel文件里的宏吗?


创建Excel宏时,指定一个快捷键.然后在打开excel时模拟一下按键,就可以执行宏了.
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|aardio.com|aardio 官方社区 ( 皖ICP备09012014号 )

GMT+8, 2025-3-20 04:42 , Processed in 0.068334 second(s), 25 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

快速回复 返回顶部 返回列表