程序怎么实现访问局域网内机器的文件。 怎么样访问局域网内机器的文件。程序怎么实现 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CString HostName,UserName,Password;//机器名(ip地址),用户,密码// 建立IPC连接HostName.Insert(0,"\\\\");HostName += "\\IPC$";NETRESOURCE param1;param1.dwType = RESOURCETYPE_ANY;param1.lpLocalName = NULL;param1.lpRemoteName = (LPTSTR)(LPCTSTR)HostName;param1.lpProvider = NULL;DWORD ret = WNetAddConnection2(¶m1,(LPCTSTR)Password,(LPCTSTR)UserName,CONNECT_UPDATE_PROFILE);------------------------------------如何获得网上邻居共享的目录和文件名粗略如下:每台机子启动以后,广播他已经启动的消息,其他启动的机子通过他的数据包获得主机名和域名,同时标识其机。每台机子建立一个共享文件,记录本机的共享目录,其他网内主机发送请求后,由其权限发出共享目录名。然后...........用NetServerEnum 列出所有的server再用NetFileEnum枚举出所有的共享文件。void EnumServer(){LPSERVER_INFO_100 pServerEnum; DWORD dwResult, dwRead, dwTotal; dwResult = ::NetServerEnum( NULL, 100, (BYTE**) &pServerEnum, -1, &dwRead, &dwTotal, SV_TYPE_ALL, NULL, 0 ); if ( dwResult == NERR_Success ){ for ( DWORD i=0; i<dwRead; i++ ) m_wndListBox.AddString( CString( (LPCWSTR) pServerEnum[ i ].sv100_name ) ); }}void PrintNetFiles(LPWSTR server){ resumeh = 0; do { buff = NULL; rc=NetFileEnum( (char *) server, NULL, NULL, 3, (BYTE**)&buff, 2048, &read, &total, &resumeh ); if ( rc != ERROR_MORE_DATA && rc != ERROR_SUCCESS ) break; for ( i = 0, curf = buff; i < read; ++ i, ++ curf ) { printf( "%-12S %-15S \n", curf->fi3_username, curf->fi3_pathname ); } if ( buff != NULL ) NetApiBufferFree( buff ); } while ( rc == ERROR_MORE_DATA ); if ( rc != ERROR_SUCCESS ) PrintError( rc );}共享文件需要用户名和密码DWORD WNetAddConnection2( LPNETRESOURCE lpNetResource, // connection details LPCTSTR lpPassword, // password LPCTSTR lpUsername, // user name DWORD dwFlags // connection options); 【求助】关于图像灰度值选取问题,谢谢大家 odbc访问access数据库 cdatabase类对象的定义 请教高手个思路 比COM+更先进的技术是什么 怎样使CFileDialog打开时就指向指定的文件夹 一段简单的代码,可是有问题!还请大侠指教!谢谢!搞定了就给分! 关于CD-RW驱动或刻录软件 (100分!) 200分!!!CStatic与父窗口的关系,我麻烦大了! 用自己做的证书签名ACTIVEX是不是还是会被拦? 大虾指教:SDK中如何使用BEGIN_MSG_MAP呢? 按钮上位图加载问题! MSN Messager接收的汉字怎么是乱码?
// 建立IPC连接
HostName.Insert(0,"\\\\");
HostName += "\\IPC$";
NETRESOURCE param1;
param1.dwType = RESOURCETYPE_ANY;
param1.lpLocalName = NULL;
param1.lpRemoteName = (LPTSTR)(LPCTSTR)HostName;
param1.lpProvider = NULL;
DWORD ret = WNetAddConnection2(¶m1,(LPCTSTR)Password,(LPCTSTR)UserName,CONNECT_UPDATE_PROFILE);------------------------------------
如何获得网上邻居共享的目录和文件名粗略如下:每台机子启动以后,广播他已经启动的消息,其他启动的机子通过他的数据包获得主机名和域名,同时标识其机。
每台机子建立一个共享文件,记录本机的共享目录,其他网内主机发送请求后,由其权限发出共享目录名。
然后...........用NetServerEnum 列出所有的server
再用NetFileEnum枚举出所有的共享文件。void EnumServer()
{LPSERVER_INFO_100 pServerEnum;
DWORD dwResult, dwRead, dwTotal; dwResult = ::NetServerEnum( NULL, 100,
(BYTE**) &pServerEnum,
-1, &dwRead, &dwTotal,
SV_TYPE_ALL, NULL, 0 );
if ( dwResult == NERR_Success ){
for ( DWORD i=0; i<dwRead; i++ )
m_wndListBox.AddString( CString( (LPCWSTR) pServerEnum[ i ].sv100_name ) );
}
}void PrintNetFiles(LPWSTR server)
{ resumeh = 0;
do
{
buff = NULL; rc=NetFileEnum(
(char *) server,
NULL,
NULL,
3,
(BYTE**)&buff,
2048,
&read,
&total,
&resumeh );
if ( rc != ERROR_MORE_DATA && rc != ERROR_SUCCESS )
break;
for ( i = 0, curf = buff; i < read; ++ i, ++ curf )
{
printf( "%-12S %-15S \n",
curf->fi3_username, curf->fi3_pathname
); }
if ( buff != NULL )
NetApiBufferFree( buff ); } while ( rc == ERROR_MORE_DATA ); if ( rc != ERROR_SUCCESS ) PrintError( rc );}共享文件需要用户名和密码
DWORD WNetAddConnection2(
LPNETRESOURCE lpNetResource, // connection details
LPCTSTR lpPassword, // password
LPCTSTR lpUsername, // user name
DWORD dwFlags // connection options
);