朋友们,大家好,相信很多人对pcanywhere_局域网远程桌面软件都不是特别了解,因此今天我来为大家分享一些关于pcanywhere_局域网远程桌面软件的知识,希望能够帮助大家解决一些困惑。
本文目录一览
VB驱动pcAnyWhere进行文件传输
PCAnyWhere的使用非常简单,它的使用方法在网上有非常详细的介绍,我就不再多说,我介绍一下利用VB驱动PCAnyWhere的方法。
在我的一个项目中有特别的应用,有五个处于不同地方的计算机,有实时数据采集文件,我需要定时拔号上去,将上面的数据文件下载下来,这些数据文件随时间的不同就有不同,所以没有办法做固定的自动文件传输,为此我分别研究了软件提供script与OLE ,最终决定选用OLE。
一、利用OLE进行远程连接
在OLE 上,将OLE驱动写得十分明白,我只要将我的连接代码帖上来,应该十分明白。
1、检查MODEM是否在使用,由于PCAnyWhere启动后不能再由程序控制,我们必须检查MODEM是否是空闲才能确保拔号可以顺利外拔。检查MODEM空闲可能通过打开MODEM所在的串口是否成功来判断。
2、生成RemoteDataManager对象
3、进入C:DocumentsandSettingsAllUsersApplicationDataSymantecpcAnywhere,由于 PCAnyWhere安装时将配置文件都放在这个目录下,我们将运行路径切换到这个目录下,可以更方便地使用。
4、生成RemoteData对象,这要求在配置文件路径下有对应CHF文件上,这是在PCAnyWhere中配置的,只要名称与连接方式相同就可以了。
5、设置拔号的电话号码,设置登录的用户名与密码,设置进行自动传输的ATF文件,并将RunOnConnect设为TRUE,并将这此配置的修改进行保存。
6、开始拔号并自动传输文件。
7、延时,判断MODEM是否空闲,空闲则这一次拔号、文件传输完毕(也有可能失败)。判断已下载的文件,如果修改时间已更新,则这次是成功的。否则是失败的。
8、将RemoteData、RemoteDataManager对象释放。
9、拔下一个点。
IfcheckMODEMIdleThen
showBegin注释:显示开始信息
注释:CreateCRemoteDataManagerobject
SetRemoteDataManager=CreateObject("WINAWSVR.RemoteDataManager")
RemoteDataManager.ChangeDirectory"C:DocumentsandSettingsAllUsersApplicationDataSymantecpcAnywhere"
S=RemoteDataManager.CurrentDirectory()
CHFile=xProfile.GetValue(WatchPoint(nowRunID),"CHFFILE")注释:用于拔号的配置
SetRemoteData=RemoteDataManager.RetrieveObject(CHFile,2,0)
RemoteData.PhoneNumber=xProfile.GetValue(WatchPoint(nowRunID),"PHONENUM")
RemoteData.AutoXferFile=filename
RemoteData.AutoLoginName=xProfile.GetValue(WatchPoint(nowRunID),"USERNAME")
RemoteData.AutoLoginPassword=xProfile.GetValue(WatchPoint(nowRunID),"PSW")
RemoteData.RunOnConnect=True
RemoteData.WriteObject(0)
S=RemoteData.PhoneNumber
RemoteData.Launch
Sleep30000
Do
IfcheckMODEMIdleThenExitDo
DoEvents
Sleep5000
Loop
注释:取文件结束,要进行转存处理
moveDBFDatalocalpath
SetRemoteData=Nothing
SetRemoteDataManager=Nothing
nowRunID=nowRunID 1
EndIf
注意:一次完毕后必须将RemoteData、RemoteDataManager对象释放,不然会出现错乱的现象。
好了,拔号自动文件传输已经实现了,但这个文件传输是在PCANYWHERE中配置好的不变的自动文件传输,不能实现我要的根据时间不同下载不同文件的要求。
二、动态生成自动文件传输文件
为了动态生成自动文件传输,自然要修改自动文件传输文件的配置,可OLE中没有给出这方面的功能,我不得不另辟蹊径了。
用文本编辑器打开ATF文件(自动文件传输文件),发现全是乱码,只有路径可以识别。灵机一动用UltraEdit-32打开并用十六进制打开,哈,秘密全在其中。
ATF的系统文件格式如下:
04404154460100010100010101010001注释:第八位:00表示增量下载,01全部重新下载
000000000000000100FFFF0000110043注释:第八位:00表示文件传输完毕后不挂断,01表示文件传输完毕后不挂断言C
4175746F586665725F436F6D6D616E64AutoXfer_Command
0113453A5C55534242414B5C32303033第一位是传输方式:00发到主机01从主机接收02同步第二位是本地文件路径长度,后面的是本地文件路径
312E64626614443A5C71746461746131注释:第六个主机文件路径长度,后面的是主机文件路径
5C32303033312E646266
有了文件的组成格式,生成这么一个文件就不在话下了。只要用二进制方式生成这个文件,就一切OK了。
PublicSubmakeATFFile(ByVallocalpathAsString,ByValremotepathAsString,ByValfilenameAsString)
Dimtx()AsByte
DimiiAsInteger
Dimlen1,len2AsInteger
len1=Len(localpath)
len2=Len(remotepath)
ReDimtx(0To48 len1 len2 2)
注释:04404154460100010100010101010001注释:第八位:00表示增量下载,01自然下载
注释:000000000000000100FFFF0000110043C
注释:4175746F586665725F436F6D6D616E64AutoXfer_Command
注释:0113453A5C55534242414B5C32303033第一位是传输方式:00发到主机01从主机接收02同步第二位是本地文件路径长度
注释:312E64626614443A5C71746461746131注释:第六个主机文件路径长度
注释:5C32303033312E646266
tx(0)=H4
tx(1)=H40
tx(2)=H41
tx(3)=H54
tx(4)=H46
tx(5)=H1
tx(6)=H0
tx(7)=H1
tx(8)=H1
tx(9)=H0
tx(10)=H1
tx(11)=H1
tx(12)=H1
tx(13)=H1
tx(14)=H0
tx(15)=H1
tx(16)=H0
tx(17)=H0
tx(18)=H0
tx(19)=H0
tx(20)=H0
tx(21)=H0
tx(22)=H0
tx(23)=H1
tx(24)=H0
tx(25)=HFF
tx(26)=HFF
tx(27)=H0
tx(28)=H0
tx(29)=H11
tx(30)=H0
tx(31)=H43
注释:4175746F586665725F436F6D6D616E64AutoXfer_Command
tx(32)=H41
tx(33)=H75
tx(34)=H74
tx(35)=H6F
tx(36)=H58
tx(37)=H66
tx(38)=H65
tx(39)=H72
tx(40)=H5F
tx(41)=H43
tx(42)=H6F
tx(43)=H6D
tx(44)=H6D
tx(45)=H61
tx(46)=H6E
tx(47)=H64
注释:0113453A5C55534242414B5C32303033第一位是传输方式:00发到主机01从主
tx(48)=H1
tx(49)=len1
Forii=1Tolen1
tx(49 ii)=Asc(Mid(localpath,ii,1))
Nextii
tx(49 len1 1)=len2
Forii=1Tolen2
tx(49 ii len1 1)=Asc(Mid(remotepath,ii,1))
Nextii
注释:二进制文件打开
OnErrorResumeNext
OpenfilenameForBinaryAs#1
Forii=0To48 len1 len2 2
Put#1,,tx(ii)
Nextii
Close1
EndSub
输入本地文件路径,主机文件路径,ATF文件名,就可生成这么一个文件,再将RemoteData.AutoXferFile设成新生成的ATF文件,你就可以想传什么就传什么文件了,不过,有一点要注意:这两个文件路径都是必须存在的,不然会出错。
结论:
利用VB驱动pcAnyWhere是一件非常简单的事件,但不是很好,首先它无法完成由程序控制,还有是在拔号与文件传输时会出现操作界面,无法将其置为一个后台程序,而人工的干预也过于容易,不过,在解决我当前的问题方面,它是一个非常好的选择。
PcAnyWhere是什么软件?
PcAnywhere是一款远程控制软件
你可以将你的电脑当成主控端去控制远方另一台同样安装有pcANYWHERE的电脑(被控端),你可以使用被控端电脑上的程序或在主控端与被控端之间互传文件。你也可以使用其闸道功能让多台电脑共享一台MODEM或是向网路使用者提供打进或打出的功能。
一、被控方式 (HOST)
1. 在需要被远程控制的计算机上建立被控端
打开 PcAnyWhere 的管理界面,在工具栏上选择被控端,主窗口中选择添加被控端。
添加被控端(客户端)
首选需要选择连接设备,这里指定直接使用 TCP/IP 进行连接。
设置身份验证,设置密码时尽量使用多种字符组合。
被控端和主控端的加密级别必须相同,否则无法进行连接。
可以将该被控端设置为随 Windows 一起启动。
二、主控方式 (Remote)
1. 添加主控端
以 TCP/IP 控制被控端
输入被控端的地址,可以是 IP 也可以是域名或计算机名
加密级别需与被控端一样
被控端和主控端都设置好后就可以进行远程控制了。在连接前,需要确认被控端是否已运行。
打开刚才设置的主控端连接
输入在被控端上设置的用户名和密码
已成功连接
在 PcAnyWhere 主控端上按下 Alt + Enter 还可以在全屏下对被控端进行远程操作,感觉就和正在使用远程的计算机一样,而且远程的计算机的鼠标、图形等即时的屏幕信息都会在主控端和被控端上表现出来;同时,受控端如果有操作人员在现场,他会看到屏幕发生的变化,并可以向主控端发出谈话请求,利用这个功能可以很简单就做到遥距教学了。
如果配合动态域名解释,无论在什么时候,家里有没有人在,只要电脑启动了并已接入网络,用户就可以远程完全控制自己的计算机了 。
如果您觉得本文对您有所帮助,请在文章结尾处点击“顶一下”以表示您的支持。如果您对本文有任何意见或建议,请点击“踩一下”,以便我们改进该篇文章。如果您想了解更多相关内容,请查看文章下方的相关链接。