怎样才能获得本地网上的用户名,组,或计算机名。 http://www.csdn.net/expert/topic/784/784649.xml?temp=.3798334 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 WNetOpenEnumWNetEnumResource下面式一段VC代码 你用API改一下就OK了 HANDLE hEnum = 0; DWORD dwScope = RESOURCE_GLOBALNET ; if( dwFlags_p & CONNECTED ) dwScope = RESOURCE_CONNECTED ; else if( dwFlags_p & REMEMBERED ) dwScope = RESOURCE_REMEMBERED ; // else GLOBALNET ... DWORD dwType = RESOURCETYPE_ANY ; if( dwFlags_p & TYPE_DISK ) dwType = RESOURCETYPE_DISK ; else if( dwFlags_p & TYPE_PRINT ) dwType = RESOURCETYPE_PRINT ; // else TYPE_ANY ... DWORD dwResult = WNetOpenEnum( dwScope, // scope of enumeration dwType, // resource types to list 0, // enumerate all resources lpNetRC_p, // pointer to resource structure (NULL at first time) &hEnum // handle to resource ) ; if( dwResult != NO_ERROR ) return NetError(dwResult, TEXT("WNetOpenEnum")); DWORD dwBuffer = 16384 ; // 16K is reasonable size DWORD dwEntries = 0xFFFFFFFF ; // enumerate all possible entries LPNETRESOURCE lpnrLocal = 0; BOOL bRet = TRUE; try { do { // first allocate buffer for NETRESOURCE structures ... lpnrLocal = (LPNETRESOURCE) GlobalAlloc( GPTR, dwBuffer ) ; dwResult = WNetEnumResource( hEnum, // resource-handle &dwEntries, lpnrLocal, &dwBuffer ) ; if( dwResult == NO_ERROR ) { for( register DWORD i = 0 ; i < dwEntries ; i++ ) { ::AfxMessageBox(lpnrLocal[i].lpRemoteName); if( ! OnHitResource( lpnrLocal[i] ) ) { TRACE0("CNetwork::Enumerate(): OnHitResource() breaks enumeration\n"); throw CNetworkBreak(FALSE) ; } //判断读出来的数据是否是网络上的网络组 //如果是网络组的话就将该网络组的信息为标准循环查询 if( RESOURCEUSAGE_CONTAINER == (lpnrLocal[i].dwUsage & RESOURCEUSAGE_CONTAINER) && lpnrLocal[i].dwDisplayType != RESOURCEDISPLAYTYPE_SERVER ) if( !Enumerate( &lpnrLocal[i], dwFlags_p ) ) { TRACE0( "CNetwork::Enumerate(): recursiv call failed\n" ); throw CNetworkBreak(FALSE); } } } else if( dwResult != ERROR_NO_MORE_ITEMS ) { throw CNetworkError(NetError(dwResult, TEXT("WNetEnumResource"))); } } while( dwResult != ERROR_NO_MORE_ITEMS ); } catch( CNetworkError err ) { bRet = err.m_bRet; } if( lpnrLocal ) GlobalFree((HGLOBAL) lpnrLocal) ; WNetCloseEnum(hEnum) ; return bRet;} 用API GETUSER函数取得用户名 GETCOMPUTERNAME函数取得计算机名 用WshNetwork.username 和WshNetwork.ComputerName,wsh.UserDomain也可以完成,其中WshNetwork是Window script host 运行库中的类 用winsock对象,winsock1.localhostname获得用户计算机名winsock1.localip获得本机ip vb调用word无法使用了,问题出在哪里呢?各位大哥帮我。搞了两天了。 朋友门请告诉我个方法谢谢了~ 內存佔用 关于DLL,大家进来看看~~ 一个很菜的问题,刚学vb不久。。。。 怎样用ado取得dbf表中有删除标记的数据? 求教!toolsbar 的问题! 有谁做过分销管理系统,如何实现上传和下载数据? 我写了一个控件,聚集了VB的技巧精华.如果有可能也不排除公开源代码.要吗? 打开文件对话框? 使用API函数,如何传递API的指针类型的参数? 主页问题(online)......
WNetEnumResource
下面式一段VC代码 你用API改一下就OK了
HANDLE hEnum = 0;
DWORD dwScope = RESOURCE_GLOBALNET ;
if( dwFlags_p & CONNECTED ) dwScope = RESOURCE_CONNECTED ;
else if( dwFlags_p & REMEMBERED ) dwScope = RESOURCE_REMEMBERED ;
// else GLOBALNET ... DWORD dwType = RESOURCETYPE_ANY ;
if( dwFlags_p & TYPE_DISK ) dwType = RESOURCETYPE_DISK ;
else if( dwFlags_p & TYPE_PRINT ) dwType = RESOURCETYPE_PRINT ;
// else TYPE_ANY ... DWORD dwResult = WNetOpenEnum(
dwScope, // scope of enumeration
dwType, // resource types to list
0, // enumerate all resources
lpNetRC_p, // pointer to resource structure (NULL at first time)
&hEnum // handle to resource
) ; if( dwResult != NO_ERROR )
return NetError(dwResult, TEXT("WNetOpenEnum")); DWORD dwBuffer = 16384 ; // 16K is reasonable size
DWORD dwEntries = 0xFFFFFFFF ; // enumerate all possible entries
LPNETRESOURCE lpnrLocal = 0; BOOL bRet = TRUE; try {
do {
// first allocate buffer for NETRESOURCE structures ...
lpnrLocal = (LPNETRESOURCE) GlobalAlloc( GPTR, dwBuffer ) ; dwResult = WNetEnumResource(
hEnum, // resource-handle
&dwEntries,
lpnrLocal,
&dwBuffer
) ; if( dwResult == NO_ERROR ) {
for( register DWORD i = 0 ; i < dwEntries ; i++ ) {
::AfxMessageBox(lpnrLocal[i].lpRemoteName);
if( ! OnHitResource( lpnrLocal[i] ) ) {
TRACE0("CNetwork::Enumerate(): OnHitResource() breaks enumeration\n");
throw CNetworkBreak(FALSE) ;
}
//判断读出来的数据是否是网络上的网络组
//如果是网络组的话就将该网络组的信息为标准循环查询
if( RESOURCEUSAGE_CONTAINER ==
(lpnrLocal[i].dwUsage & RESOURCEUSAGE_CONTAINER) &&
lpnrLocal[i].dwDisplayType != RESOURCEDISPLAYTYPE_SERVER )
if( !Enumerate( &lpnrLocal[i], dwFlags_p ) ) {
TRACE0( "CNetwork::Enumerate(): recursiv call failed\n" );
throw CNetworkBreak(FALSE);
} }
} else if( dwResult != ERROR_NO_MORE_ITEMS ) {
throw CNetworkError(NetError(dwResult, TEXT("WNetEnumResource")));
}
} while( dwResult != ERROR_NO_MORE_ITEMS );
} catch( CNetworkError err ) {
bRet = err.m_bRet;
} if( lpnrLocal )
GlobalFree((HGLOBAL) lpnrLocal) ;
WNetCloseEnum(hEnum) ; return bRet;
}
GETCOMPUTERNAME函数取得计算机名
winsock1.localhostname获得用户计算机名
winsock1.localip获得本机ip