㈠ VC 如何读取网上邻居某台电脑下的共享目录
C:\>net help view
此命令的语法是:
NET VIEW
[\\computername [/CACHE] | /DOMAIN[:domainname]]
NET VIEW /NETWORK:NW [\\computername]
NET VIEW 用于显示一个计算机上共享资源的列表。当不带选项使用本命令时,它就会显示
当前域或网络上的计算机上的列表。
\\computername 指用户希望浏览其共享资源的计算机。
/DOMAIN:domainname 指定用户希望浏览有效的计算机所在的域。如果省略了域名,
就会显示局域网络上的所有域。
/NETWORK:NW 显示 NetWare 网络上所有可用的服务器。如果指定了一个计算
机名,就会显示 NetWare 网络中那个计算机上的可用资源。
/CACHE 显示指定计算机上的脱机客户资源缓存设置
㈡ 如果不用net use的方法,vb.net 有办法访问共享文件或者共享文件夹吗
我不会VB,但是都是.net。c#的代码稍微转换一下就可以了。
C#实现访问网络共享文件夹,使用WNetAddConnection2A和WNetCancelConnection2A。
在目标服务器建立共享文件夹,建立访问账号test;
publicenumERROR_ID
{
ERROR_SUCCESS=0,//Success
ERROR_BUSY=170,
ERROR_MORE_DATA=234,
ERROR_NO_BROWSER_SERVERS_FOUND=6118,
ERROR_INVALID_LEVEL=124,
ERROR_ACCESS_DENIED=5,
ERROR_INVALID_PASSWORD=86,
ERROR_INVALID_PARAMETER=87,
ERROR_BAD_DEV_TYPE=66,
ERROR_NOT_ENOUGH_MEMORY=8,
ERROR_NETWORK_BUSY=54,
ERROR_BAD_NETPATH=53,
ERROR_NO_NETWORK=1222,
ERROR_INVALID_HANDLE_STATE=1609,
ERROR_EXTENDED_ERROR=1208,
ERROR_DEVICE_ALREADY_REMEMBERED=1202,
ERROR_NO_NET_OR_BAD_PATH=1203
}
publicenumRESOURCE_SCOPE
{
RESOURCE_CONNECTED=1,
RESOURCE_GLOBALNET=2,
RESOURCE_REMEMBERED=3,
RESOURCE_RECENT=4,
RESOURCE_CONTEXT=5
}
publicenumRESOURCE_TYPE
{
RESOURCETYPE_ANY=0,
RESOURCETYPE_DISK=1,
RESOURCETYPE_PRINT=2,
RESOURCETYPE_RESERVED=8,
}
publicenumRESOURCE_USAGE
{
RESOURCEUSAGE_CONNECTABLE=1,
RESOURCEUSAGE_CONTAINER=2,
RESOURCEUSAGE_NOLOCALDEVICE=4,
RESOURCEUSAGE_SIBLING=8,
RESOURCEUSAGE_ATTACHED=16,
RESOURCEUSAGE_ALL=(RESOURCEUSAGE_CONNECTABLE|RESOURCEUSAGE_CONTAINER|RESOURCEUSAGE_ATTACHED),
}
publicenumRESOURCE_DISPLAYTYPE
{
RESOURCEDISPLAYTYPE_GENERIC=0,
RESOURCEDISPLAYTYPE_DOMAIN=1,
RESOURCEDISPLAYTYPE_SERVER=2,
RESOURCEDISPLAYTYPE_SHARE=3,
RESOURCEDISPLAYTYPE_FILE=4,
RESOURCEDISPLAYTYPE_GROUP=5,
RESOURCEDISPLAYTYPE_NETWORK=6,
RESOURCEDISPLAYTYPE_ROOT=7,
RESOURCEDISPLAYTYPE_SHAREADMIN=8,
RESOURCEDISPLAYTYPE_DIRECTORY=9,
RESOURCEDISPLAYTYPE_TREE=10,
RESOURCEDISPLAYTYPE_NDSCONTAINER=11
}
[StructLayout(LayoutKind.Sequential)]
publicstructNETRESOURCE
{
publicRESOURCE_SCOPEdwScope;
publicRESOURCE_TYPEdwType;
publicRESOURCE_DISPLAYTYPEdwDisplayType;
publicRESOURCE_USAGEdwUsage;
[MarshalAs(UnmanagedType.LPStr)]
publicstringlpLocalName;
[MarshalAs(UnmanagedType.LPStr)]
publicstringlpRemoteName;
[MarshalAs(UnmanagedType.LPStr)]
publicstringlpComment;
[MarshalAs(UnmanagedType.LPStr)]
publicstringlpProvider;
}
publicclassNetworkConnection
{
[DllImport("mpr.dll")]
(NETRESOURCE[]lpNetResource,stringlpPassword,stringlpUserName,intdwFlags);
[DllImport("mpr.dll")]
(stringsharename,intdwFlags,intfForce);
publicstaticintConnect(stringremotePath,stringlocalPath,stringusername,stringpassword)
{
NETRESOURCE[]share_driver=newNETRESOURCE[1];
share_driver[0].dwScope=RESOURCE_SCOPE.RESOURCE_GLOBALNET;
share_driver[0].dwType=RESOURCE_TYPE.RESOURCETYPE_DISK;
share_driver[0].dwDisplayType=RESOURCE_DISPLAYTYPE.RESOURCEDISPLAYTYPE_SHARE;
share_driver[0].dwUsage=RESOURCE_USAGE.RESOURCEUSAGE_CONNECTABLE;
share_driver[0].lpLocalName=localPath;
share_driver[0].lpRemoteName=remotePath;
Disconnect(localPath);
intret=WNetAddConnection2A(share_driver,password,username,1);
returnret;
}
publicstaticintDisconnect(stringlocalpath)
{
returnWNetCancelConnection2A(localpath,1,1);
}
调用方式:
()
{
stringlocalpath="X:";
//intstatus=NetworkConnection.Connect(@"\192.168.0.2 est",localpath,@"test","test");
intstatus=NetworkConnection.Connect("\\192.168.0.2\test",localpath,@"test","test");
if(status==(int)ERROR_ID.ERROR_SUCCESS)
{
FileStreamfs=newFileStream(localpath+@"\123.txt",FileMode.OpenOrCreate);
using(StreamWriterstream=newStreamWriter(fs))
{
stream.WriteLine("你好呀,成功了");
stream.Flush();
stream.Close();
}
fs.Close();
}
else
{
Console.WriteLine(status);
}
NetworkConnection.Disconnect(localpath);
}
㈢ VC以指定用户和密码访问网络共享文件夹
有个变通的方式:
1、创建一个作业(CreateJobObject);
2、使用CreateProcess("net use...")代替system调用,然后调用AssignProcessToJobObject将进程附加到作业;
3、CreateProcess("explorer...")并指定CREATE_SUSPENDED标识,然后将进程添加到作业并ResumeThread开始执行。
另外,使用CreateProcessWithLogonW应该也可以实现(该函数具体调用方法请网络)
㈣ 请教一下“VB 访问网络共享文件夹并新建文件”您是怎么做的谢谢!
VB访问网络共享文件夹与访问本地文件夹是没有什么区别的,比如你要打开与你的电脑同一个局域网的另一台名为“abcd”的电脑的共享文件夹“xxx”中的文本文件“123.txt”,可以这样:
Open "\\abcd\xxx\123.txt" For Input As #1
也可以用IP地址,比如:
Open "\\192.168.1.103\xxx\123.txt" For Input As #1
㈤ VC中不同工程间的资源怎么共享
有2种共享途径
1.是源码级的共享。直接讲哪个rc文件拷贝到另外一个工程里面,同时resource文件里面的内容也赋值到另外一个工程的 resource.h文件里面(注意修改ID不要冲突)。或者 以文本方式打开 .rc文件( rc文件上右键,打开方式-》源代码文本编辑器)打开后,将你需要的资源(比如字符串对话框位图光标等都可以分块拷贝到另外一个工程的rc文件里面。然后将resource.h里面的ID也拷贝过去修改值就行了。
2.运行时候进程间资源的共享。一样不难,GetMoleHandle 得到模块句柄,FindResource 搜索模块的资源数据,返回你所需要的资源类型句柄。LoadResource 装入(映射),那个模块的资源数据到当前进程空间来。然后使用返回的 HGLOBAL 就可以得到资源的详细数据了。
直接用 LoadBitmap/ LoadString 等也有一样的的效果
㈥ 如何访问共享的文件夹
访问共享文件夹,有很多种方式,以下分别为不同操作系统中的常用方法:
一、通过UNC路径
1、开始—运行—IP地址或计算机名
㈦ 怎样vc编程实现设置共享目录并设置权限
(我在“本地用户和组“中,新建了几个新用户,用户名和全程均为领导机子的计算机名,没有密码) 这个你要设置密码,用户名和领导的计算机名一样不一样都不影响,关闭guest账号,可以一共设置两个账号就可以了,两个账号的 一个账号给予读写权限 ...
㈧ 用VB或VC实现搜索共享文件夹的功能
using : NetShareEnum
The NetShareEnum function retrieves information about each shared resource on a server.
NET_API_STATUS NetShareEnum(
LPWSTR servername,
DWORD level,
LPBYTE *bufptr,
DWORD prefmaxlen,
LPDWORD entriesread,
LPDWORD totalentries,
LPDWORD resume_handle
);
the second parameter is to specify the level data eg:share names or share informations...
the third parameter is the return pointer to a struct or a buffer include the share infos
if level = 0 then bufptr is a pointer to a SHARE_INFO_0 struct (the shared info)
㈨ 如何VC编程实现访问共享文件
和本地文件一样的,路径是\\共享机器的ip\相对文件位置
㈩ VC++ MFC 读文件 共享为例
方法一:
CFile file;
if ( file.Open("c://data.txt",CFile::modeRead))
{
AfxMessageBox("OK");
file.Close();
} else {
AfxMessageBox("文件已被打开或打开失败!");
}
方法二:
HANDLE hFile;
hFile = CreateFile("d://pos.txt",GENERIC_READ|GENERIC_WRITE,
FILE_SHARE_READ|FILE_SHARE_DELETE,NULL,OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL);
if(hFile == INVALID_HANDLE_VALUE )
{
AfxMessageBox("该文件已被打开或打开失败!")
return 0;
}
.....
CloseHandle(hFile);