通常我们访问另一台计算机(直接的说是服务器),提示我们需要输入(服务器)的用户名和密码才能进入,这样我们就可以看里面的图片,文件等等。问题就是,在vb里怎样才能用程序做到这一点。比如我想看(服务器)D盘pic目录里的1.jpg图片,用picture控件。
解决方案 »
- 求助一个关于VB6获取richtextbox中内容的问题,还请各位多多指点。
- 如何用VB-API函数去检查WINDOWS系统密码更改情况?急急急!!!
- 如何取得近似值?例如一个动态变化的数字,如何让它接近50的时候停止,前后误差不大于2,可以在48、49或者51、52的时候停下。
- MSHFLEXGRID控件排序后为什么原来设的颜色都没了,怎么解决?急!!!!!!!!
- 请教鼠标模拟的问题
- 急问:format函数
- 正做一个考勤系统,想得到一个好的工资算法,请有经验者赐教!!!
- 名字的处理问题:
- VB分页保存Excel的源代码
- DriveListBox控件能不能不只显示硬盘的盘符,不显示光盘和软驱的盘符。
- Windows中如何获取键盘和鼠标处于空闲状态的时间?
- VC编的DLL中的struct如何输出给VB?
通过网页的形式访问或者ftp
2.最好能给出代码!具个例子,我的油箱[email protected]
1.我现在面临的困难是:服务器系统是windows2000 server版。而客户的机器的操作系统是有三种,windows98,windows2000/p,windows/s。在服务器我完全共享一个文件夹名share$(加$是为了让其隐藏),权限用户aaa,密码bbb。能告诉我怎样在不同的操作系统中用程序访问到这个文件夹里的文件吗?(详细代码)。
2.有个叫“动力港湾 ”提供了mpr.dll的使用方法,可是我试了不成功。问题在call ConnectUserPassword("\\servername", "", "password", "username")中"\\servername"应该填什么?(以我的例子告诉我好吗?我的服务器名server1);第二项""又代表什么?
3.(接2继续问)Public Function ConnectUserPassword(sDrive As String, sService As String, Optional sUser As String = "", Optional sPassword As String = "") As Boolean 一句中的4个函数值与问题2中的call一下的4个函数值好像对不上吧。
4.最后想问一句,你最后成功的访问到远程计算机文件夹。需要和这个计算机在同一个域里面吗?最后致上敬意!
小弟:lntogs(陆楠)
每天晚上都在线等候佳音!
\\servername 应填\\机器名
第二项是真你要映射的驱动器名,可以不填
所以您必须首先解决安全问题,就是保证这台计算机可以正常的访问目标文件夹
也就是说,我可以用Windows实现对目标文件夹的访问。
权限问题解决完之后。就轮到操作系统了。
首先可以肯定,您的服务器共享方式必须是win2000
而客户机建议使用Win9x的方法,我曾经试过,win2k支持win9x的访问方法,但是
反之则不可以。由于win2k的网络是完全的网络,所以网络优势非常明显,可以使用判断
操作系统的办法改善程序的兼容性。
========================
不过,为什么我没有出现您那样的问题?
你有在98下对2000的文件夹访问吗?能行吗?
to alls(搞不定)
能提供我一份你使用成功的例子吗?(原码).谢谢!
servername也可以用ip的吧
我用的是2k<=>2k 98访问NT很容易出现问题(大多数都是设置问题,98得使用网络用户)
再就是我没有条件测试在域管理下是否可以使用(因为我没有win2kServer)
我的测试仅限于 win2k对win2k带密码的那种,以及在win2k下使用win9x的办法访问另一个带密码的主机共享目录
(我家里只有2台机器,其中一台办公用,不能装Server,另一台装不上...)
Public Declare Function InternetFindNextFile Lib "WinInet.dll" Alias _
"InternetFindNextFileA" ( _
ByVal hfind As Long, _
lpvFindData As WIN32_FIND_DATA _
) As Long
Public Declare Function FtpFindFirstFile Lib "WinInet.dll" Alias "FtpFindFirstFileA" ( _
ByVal hFtpSession As Long, _
ByVal lpszSearchFile As String, _
lpFindFileData As WIN32_FIND_DATA, _
ByVal dwFlags As Long, _
ByVal dwContent As Long _
) As LongPublic Declare Function FtpGetFile Lib "WinInet.dll" Alias "FtpGetFileA" ( _
ByVal hFtpSession As Long, _
ByVal lpszRemoteFile As String, _
ByVal lpszNewFile As String, _
ByVal fFailIfExists As Boolean, _
ByVal dwFlagsAndAttributes As Long, _
ByVal dwFlags As Long, _
ByVal dwContext As Long _
) As BooleanPublic Declare Function FtpPutFile Lib "WinInet.dll" Alias "FtpPutFileA" ( _
ByVal hFtpSession As Long, _
ByVal lpszLocalFile As String, _
ByVal lpszRemoteFile As String, _
ByVal dwFlags As Long, _
ByVal dwContext As Long _
) As BooleanPublic Declare Function FtpSetCurrentDirectory Lib "WinInet.dll" Alias _
"FtpSetCurrentDirectoryA" ( _
ByVal hFtpSession As Long, _
ByVal lpszDirectory As String _
) As BooleanPublic Declare Function FtpCreateDirectory Lib "WinInet.dll" Alias _
"FtpCreateDirectoryA" ( _
ByVal hConnect As Long, _
ByVal lpszDirectory As String _
) As Long'Public Declare Function FtpDeleteFile Lib "WinInet.dll" Alias _
' "FtpDeleteFileA" ( _
' ByVal hConnect As Long, _
' ByVal lpszFileName As String _
') As Boolean
' Initializes an application's use of the Win32 Internet functions
Public Declare Function InternetOpen Lib "WinInet.dll" Alias "InternetOpenA" ( _
ByVal sAgent As String, _
ByVal lAccessType As Long, _
ByVal sProxyName As String, _
ByVal sProxyBypass As String, _
ByVal lFlags As Long _
) As Long' User agent constant.
Public Const scUserAgent = "vb wininet"' Use registry access settings.
'Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0
Public Const INTERNET_OPEN_TYPE_DIRECT = 1
Public Const INTERNET_OPEN_TYPE_PROXY = 3
'Public Const INTERNET_INVALID_PORT_NUMBER = 0
'Public Const FTP_TRANSFER_TYPE_ASCII = &H1
'Public Const FTP_TRANSFER_TYPE_BINARY = &H1
'Public Const INTERNET_FLAG_PASSIVE = &H8000000' Opens a HTTP session for a given site.
Public Declare Function InternetConnect Lib "WinInet.dll" Alias "InternetConnectA" ( _
ByVal hInternetSession As Long, _
ByVal sServerName As String, _
ByVal nServerPort As Integer, _
ByVal sUsername As String, _
ByVal sPassword As String, _
ByVal lService As Long, _
ByVal lFlags As Long, _
ByVal lContext As Long _
) As Long' Closes a single Internet handle or a subtree of Internet handles.
Public Declare Function InternetCloseHandle Lib "WinInet.dll" ( _
ByVal hInet As Long _
) As Integer=============declare========================
=============================================Private hConnection As Long
Private hOpen As LongPrivate Function FInternetOpen(FtpIp As String) As Long
On Error GoTo ErrorProcess
'If Len(Proxy) <> 0 Then '设置代理服务器
'hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PROXY, txtProxy.Text, vbNullString, 0)
'Else '没设置代理服务器
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
'End If FInternetOpen = hOpen
Normal_Exit:
Exit Function
ErrorProcess:
cgsb_ErrorProcess "FtpFunModule1.FInternetOpen()"
'' For debug
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#If intDebugFlag = 1 Then
Resume Next
#End If
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'' Fail
FInternetOpen = 0
End Function
Public Function Connect(FtpIp As String, strUserName As String, strPassWord As String) As BooleanOn Error GoTo ErrorProcess Dim hOpenC As Long
Dim g_IntPort As Long
hOpenC = FInternetOpen(FtpIp)
g_IntPort = 21
If Not (oActiveSession) And hOpenC <> 0 Then
Dim nFlag As Long
nFlag = 0
'hConnection = InternetConnect(hOpenC, FtpIP, INTERNET_INVALID_PORT_NUMBER, _
strUserName, strPassWord, INTERNET_SERVICE_FTP, nFlag, 0)
hConnection = InternetConnect(hOpenC, FtpIp, g_IntPort, _
strUserName, strPassWord, INTERNET_SERVICE_FTP, nFlag, 0)
If hConnection = 0 Then
oActiveSession = False
Connect = False
Else
oActiveSession = True
Connect = True
End If
Else
If oActiveSession = True Then Connect = True
End If
Normal_Exit:
Exit Function
ErrorProcess:
cgsb_ErrorProcess "FtpFunModule1.Connect()"
'' For debug
#If intDebugFlag = 1 Then
Resume Next
#End If
'' Fail
Connect = False
End FunctionPrivate Function Rcd(pszDir As String) As Boolean
On Error GoTo ErrorProcess
If pszDir = "" Then
MsgBox "Please enter the directory to CD"
Exit Function
Else
Dim sPathFromRoot As String
Dim bRet As Boolean
Rcd = FtpSetCurrentDirectory(hConnection, pszDir)
End If
Normal_Exit:
Exit Function
ErrorProcess:
cgsb_ErrorProcess "FtpFunModule1.Rcd()"
'' For debug
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#If intDebugFlag = 1 Then
Resume Next
#End If
'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'' Fail
Rcd = False
End Function''path 格式为 //dir1/dir2/
''strfilename 为远程FTP上的文件名 没有路径 eg: word1.doc
''strLDir 为本地上的文件名 有路径和文件名 eg: d:\word2.doc
function mainFunction(byval path as string,byval strFileName as string,byval strLDir as string)
If Connect(strFtpIP, strUserName, strPassWord) Then
if rcd(path) then
FtpGetFile(hConnection, strFileName, strLDir , hFlag, 0, INTERNET_FLAG_RELOAD, 0) ''此函数用于下载 FTP服务器上的一个文件成功返回True 否则返回 False
end if end ifend function下载到本地后再作处理,代码不全需补充