• PB11制作的基于UDP协议的局域网聊天程序

    这是我用PB11制作的,利用UDP协议技术,在局域网聊天的工具,刚开始想加入文件传输功能,后来尝试了一下觉得利用UDP来传输文件控制和校验太复杂了,这部分注释掉了。聊天程序还是很完善的。希望高人能够完善文件传输部分的功能。 Kair QQ:55092518

    4
    139
    3.06MB
    2010-07-02
    9
  • PB调用PB自己制作的COM组件

    2010.7.2 在QQ朋友菠菜/yun(1216297)的引导下接触到了PB制作COM组件应用。 1、文件夹A下用COM的向导制作了一个不可视的object,制作了最简单的函数,最后打包成dll文件。 2、利用regsvr32注册了这个dll。 3、文件夹B下用ole方式调用这个dll,并调用里面的方法,测试正常。 注意要点:经过测试可以调用普通函数取得返回值,而当调用函数中有open窗口的语句后,虽然也能打开窗口正常看到窗体中的控件,并且窗口的open事件也能成功执行,哪怕是dw中的数据也能正常显示。但是当鼠标点击任何控件都会报非法操作的提示,关闭窗口也是如此。而文本框的getfocus,losefocus,modify等事件也不会被触发。最后判断为PB调用PB制作的com组件时,只能调用非可视的object做的,而如果含有窗体的,就会经常报非法操作。估计是此种方法不被支持。 测试环境pb11,当A文件夹下程序编译成dll时如果报错,请删掉A目录下生成的没用的dll及其他文件,即可。 如果有哪位高人成功调用了PB下的可视化窗体又不会报错的,请不吝赐教,QQ联系方式如下。 Kair 2010.7.2 QQ:55092518

    4
    785
    53KB
    2010-07-02
    47
  • ADSL+SoftEtherV1.0安装及经验说明

    ADSL如何将SOFTETHER和花生壳结合起来组建局域网?2008年02月19日 星期二 20:4520世纪70年代出生的人对国产动画都情有独钟,还记得有部叫《崂山道士》的动画片,里面有个法术叫“穿墙术”——只要口中念着咒语,凡人都能穿墙而过。要是内网用户也能掌握这种“穿墙”之术,穿过重重防火墙,岂不快哉。 笔者所在的学校有数十台计算机,通过教育网接入互联网。每台计算机都使用教育网分配的固定IP,如10.10.*.*。校内有台安装Windows 2000 Server的文件服务器,常常需要维护。而笔者家中计算机安装的是Windows 2000专业版,使用2Mbps的ADSL,有公网IP。 如果在家中能控制单位的服务器,那就方便了。在网上闲逛时,不料竟发现一个能解决上述问题的关键软件——SoftEther,中文名称叫虚拟网卡。 下面就是笔者使用SoftEther和Remote Administrator以及花生壳三个工具控制内网计算机的过程。 第一步:花生壳的使用 首先在家中的计算机上安装花生壳软件。利用这个软件,无论IP怎么变,始终都有个固定的域名,会极大方便SoftEther的登录。 在安装花生壳软件前,必须到网域科技的网站注册域名(如:abc.vicp.net)。由于步骤简单,这里不再详述了。以后每次开机并上网后,花生壳都会自动登录服务器。 第二步:SoftEther的设置 现在就该主角SoftEther上场了,它的下载地址是http://www.softether.com/jp/,最新正式版是1.0,测试版是2.0,1.0的正式版有汉化版。 下载后先进行安装,安装方法跟大部分软件一样(可参见2004年第4期《电脑报》G1版)。重启计算机后,运行开始菜单里的SoftEther Virtual HUB Administration就可以进行虚拟Hub的管理和设置了。 在弹出的登录界面上选择“This Computer(localhost)”,再单击“Connect”。会出现一个命令行窗口(图1)。由于是第一次登录,软件会要求你正确输入两次密码,下次再进行Hub的管理时需要这个密码。接着为即将连接到这个虚拟Hub的用户创建用户名和密码。选择菜单里的命令1后再选择命令2 (Create User),依次创建两个用户“USER1”和“USER2”并设定好密码,接下来的“Virtual Hub ID”一项是虚拟Hub的编号,必须都输入1,这样两个用户才会都连接到Hub1上(据该软件的介绍,SoftEther能同时管理256个虚拟Hub)。 最后是有关用户权限的设置,按照默认一路回车就行了,至此用户创建成功。Hub1上就有了两个用户,一个用户给家中的计算机使用,另一个就给单位的计算机使用。连续输入两次“9”,退出Hub的管理设置界面。 接下来该把本机的虚拟网卡连接到虚拟Hub1上了。打开SoftEther Connection Manager,你会看见里面已经有一个软件默认的SoftEther.com Sample Hub,这个虚拟的Hub位于日本波筑大学,是软件作者的所在学校(出于安全考虑,建议将这个Hub删除)。 依次打开“Account”菜单中的“New Account”,新建一个连接(图2)。“Name”一项填上“Hub1”,然后选中“Use authentication to connect to the Virtual Hub”,并输入用户名“USER1”和密码。紧接着选中“Direct TCP/IP Connection”协议,并单击“Configure”进行设置。“Address”一项填入本机IP地址:127.0.0.1,Port为默认。 完成以上设置后双击“Hub1”图标进行连接,稍等一会儿就提示“Connection Established”,表明已经连接到虚拟的Hub1了。 而单位服务器的SoftEther软件安装后不需要对SoftEther Virtual Hub Administration进行设置,只需要运行SoftEther Connection Manager进行相似的设置即可。 其中有两处不一样:一是“Use authentication to connect to the Virtual Hub”一项的用户名应填USER2;二是Direct TCP/IP Connection协议配置里的“Address”一项填入“abc.vicp.net”,这个域名是用花生壳申请的免费域名。 在确保家中计算机在线的情况下,双击连接图标,稍候也会出现“Connection Established”的提示,说明USER2用户也连接到Hub1上了。 接下来的工作就是在两台计算机的“网络和拨号连接”里找到“SoftEther Virtual LAN Connection”连接,分别把家中的计算机IP地址设定为192.168.0.1,单位服务器的IP地址设成192.168.0.2,子网掩码都为255.255.255.0。至此,两台计算机实际上已经在同一个局域网里了。不信,你打开网上邻居,是不是看见了对方的计算机名呢? 第三步:Remote Administrator的使用 既然两台计算机已经在同一个局域网里了,那么只需要找一款远程控制软件就可以控制单位的服务器了。这里我选择了小巧的Remote Administrator。 该软件的下载地址是http://www.radmin.com/。这款软件除了能对远程计算机进行桌面操作以外,还能在两台计算机中进行文件传输。下面就来看看它的强大威力。 同样也是在两台计算机上分别安装该软件。安装后会要求你正确输入两次密码,密码的长度不少于8位,这个密码就是远程控制的密码了。 该软件在安装后会把服务器端加入Windows的开机自启动项内,每次开机它都处于等待连接的状态。现在,我们就可以在家中的计算机上运行Remote Administrator(图3),单击“Connect to address”添加IP地址为192.168.0.2后点连接,在输入密码后就能看见单位服务器的桌面了,就像操作本地计算机一样,真是激动人心。 其他功能 除了以上功能之外,SoftEther还能帮助内网计算机突破防火墙限制,如MSN和QQ的语音聊天,访问受限的网站等等。要实现这些功能只要将单位服务器虚拟网卡的网关和DNS都填上192.168.0.1。并且把家中计算机的虚拟网卡启用Internet连接共享就行了。 结语 因为把单位服务器的虚拟网卡连接设定为“Set to Startup Connection”,它会在计算机开机后每3秒钟对abc.vicp.net发出一次连接。只要家中计算机上的花生壳运行正常,单位的计算机就会随时登录到家中的虚拟Hub上。另外,如果家中的ADSL是用路由方式上网的,那就需要为三个软件分别做好端口映射。花生壳的端口是5050,SoftEther的端口是7777,Remote Administrator的端口是4899。

    0
    308
    2.47MB
    2009-09-26
    15
  • 在c# 2005中编写com组件,供PB11调用实例(附说明和源码)

    在c# 2005中编写com组件,供PB11调用实例,研究了一下午,终于成功了,分享给大家 前言:c#中写的dll直接是不能被pb调用的,只有写成com组件才可以调用,所以用c#写dll时要注意。 1、c#2005中新建项目,类型为类库,项目名为AddCom确定。   配置:右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COM Interop注册(_P)” 2、打开AssemblyInfo.cs文件,设置[assembly: ComVisible(true)],如果不改则不能被其他程序调用 3、编写com组件会用到guid(全球唯一ID),编写com组件必须要用到。c#会默认生成一个放在AssemblyInfo.cs,如没有生成,网上下一个生成guid的软件,有很多呢。 4、c#中源代码如下,按如下方法编写代码后生成工程,/bin/release中得到AddCom.dll。 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace AddCom { [Guid("298D881C-E2A3-4638-B872-73EADE25511C")] public interface AddComInterface { [DispId(1)] int iadd(int a, int b); } [Guid("2C5B7580-4038-4d90-BABD-8B83FCE5A467")] [ClassInterface(ClassInterfaceType.None)] public class AddComService : AddComInterface { public AddComService() { } public int iadd(int a, int b) { int c = 0; c = a + b; return c; } } } 5、dos下利用 e:\regasm AddCom.dll 命令注册com组件,可以理解为非.net平台下的regsvr32注册dll组件。提示注册成功即可。 6、pb11中利用ole调用来调用com组件,注意,此com组件无法用create ole control的browse查看到,只能利用如下的方法直接动态调用。 integer li_a,li_b,li_total //----------注册c#生成的com组件------------ OleObject ole_AddCom ole_AddCom = Create OLEObject li_rc = ole_AddCom.ConnectToNewObject("AddCom.AddComService") //AddCom为c#中namespace,AddComService为c#中namespace中的class if li_rc <> 0 then MessageBox("ConnectToNewObject", string(li_rc) ) return end if //----------调用com组件中的函数-------------- li_total = ole_AddCom.iadd(li_a, li_b) //iadd为c#中namespace(AddCom为c)中class(AddComService为c)中的函数(iadd()) 完毕 *以上为个人经验,欢迎大家发邮件沟通。 email: kair-china@vip.sina.com qq: 55092518

    5
    266
    30KB
    2009-02-27
    35
  • 持续创作

    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
关注 私信
上传资源赚积分or赚钱