上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页
摘要: 在Windows中,用鼠标右键单击文件或者文件夹时弹出的那个菜单便称为上下文相关菜单。要动态地在上下文相关菜单中增添菜单项,可以通过写Context Menu Handler来实现。比如大家所熟悉的WinZip和UltraEdit等软件都是通过编写Context Menu Handler来动态地向菜单中增添菜单项的。如果系统中安装了WinZip,那么当用右键单击一个名为abc的文件(夹)时,其上下文相关菜单就会有一个名为Add to abc.zip的菜单项。本文要实现的Context Menu Handler与WinZip提供的上下文菜单相似,它将在任意类型文件的上下文菜单中增加一个名为“用写 阅读全文
posted @ 2013-05-01 15:15 小天1981 阅读(288) 评论(0) 推荐(0) 编辑
摘要: unit ContextMenuHandler;interfaceusesWindows, ActiveX, ComObj, ShlObj, Classes, Dialogs, Forms;typeTContextMenu = class(TComObject, IShellExtInit, IContextMenu)privateFFileName: array[0..MAX_PATH] of Char;protectedfunction IShellExtInit.Initialize = SEIInitialize; // Avoid compiler warningfunction S 阅读全文
posted @ 2013-05-01 15:14 小天1981 阅读(982) 评论(0) 推荐(0) 编辑
摘要: ======================server============================unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, IdBaseComponent, IdComponent, IdTCPServer, StdCtrls;typeTForm1 = class(TForm)Memo1: TMemo;Edit1: TEdit;Button1: TButton;IdTCPServer1: TId 阅读全文
posted @ 2013-05-01 15:12 小天1981 阅读(1358) 评论(0) 推荐(0) 编辑
摘要: 用idTCPServer,客户端接上来时,如何取得客户端的IP?IP:=AThread.Connection.Binding.PeerIP;Port:=AThread.Connection.Binding.PeerPort; 尝试解答你的疑问:问题一:在Form1中放入IDTCPServer控件,一旦有socket连接,IDTCPServer自动建立一个线程与之建立一个TCP/IP连接,我们在IDTCPServer.OnExecute中写入自己的代码就可以在这个独立的线程中完成我们所希望的动作吗?解答:一旦有socket连接,IDTCPServer 不仅建立一个线程,更需要把这个建立的线程保存 阅读全文
posted @ 2013-05-01 15:10 小天1981 阅读(552) 评论(0) 推荐(0) 编辑
摘要: 用户异常掉线检测 David.Zhu 2005/6/1 目前主要有三种方法来实现用户掉线检测:SO_KEEPALIVE ,SIO_KEEPALIVE_VALS 和Heart-Beat线程。下面我就上面的三种方法来做一下介绍。(1)SO_KEEPALIVE 机制 这是socket库提供的功能,设置接口是setsockopt API: BOOL bSet=TRUE; setsockopt(hSocket,SOL_SOCKET,SO_KEEPALIVE,(const char*)&bSet,sizeof(BOOL)); 根据MSDN的文档,如果为socket设置了KEEPALIVE选项,TC 阅读全文
posted @ 2013-05-01 15:09 小天1981 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 有开发网络应用经历的人都知道,网络中的接收和发送数据都是使用WINDOWS中的SOCKET进行实现。但是如果此套接字已经断开,那发送数据和接收数据的时候就一定会有问题。可是如何判断这个套接字是否还可以使用呢? 有人一定想到使用Send函数中的返回结果来进行判断。如果返回的长度和自己发送出去的长度一致,那就说明这个套接字是可用的,否则此套接字一定出现了问题。但是我们并不是无时无刻的发送数据呀。如何解决呢? 其实TCP中已经为我们实现了一个叫做心跳的机制。如果你设置了心跳,那TCP就会在一定的时间(比如你设置的是3秒钟)内发送你设置的次数的心跳(比如说2次),并且此信息不会影响你自己定义的协议.. 阅读全文
posted @ 2013-05-01 14:55 小天1981 阅读(356) 评论(0) 推荐(0) 编辑
摘要: 内容概述:在p2p通信领域中,由NAT(Network Address Translation,网络地址转换)引起的问题已经众所周知了,它会导致在NAT内部的p2p客户端在无论以何种有效的公网ip都无法访问的问题。虽然目前已经发展出多种穿越NAT的技术,但相关的技术文档却很少,用来证明这些技术的稳定性和优点的实际数据更少。本文的目的在于描述和分析在实际中运用得最广泛、最可靠同时也是最简单的一种NAT穿越技术,该技术通常被称为“打洞”技术。目前,“打洞”技术已经在UDP通信领域中得到了广泛的理解和应用,在此,也将讨论如何利用它实现可靠的p2p的TCP流通信。在收集了大量的“打洞”技术可以穿越的N 阅读全文
posted @ 2013-05-01 14:54 小天1981 阅读(292) 评论(0) 推荐(0) 编辑
摘要: 前奏:A,B登陆服务器S,获得对方的公网IP Port. 后继:如果A需要和B通讯。 步骤一: A把连接申请递交给服务器S。 步骤二: S把A的连接申请通知B,并且把A的公I和Port也告知B。 步骤三: B对A(IP,Port)方向打洞,且通知S 步骤四: S把B打洞信息通知给A,且把B的公网IP也告知A。 步骤五: A开始和B直接通讯。 阅读全文
posted @ 2013-05-01 14:53 小天1981 阅读(981) 评论(0) 推荐(0) 编辑
摘要: 如果要求提交版本库时必须写日志,设置如下VisualSVNServer下右键项目“所有任务”》“ManageHooks”》选中Pre-commithook然后edit编辑,添加如下代码@echooff::::Stopscommitsthathaveemptylogmessages.::@echooffsetlocalremSubversionsendsthroughthepathtotherepositoryandtransactionidsetREPOS=%1setTXN=%2remcheckforanemptylogmessagesvnlooklog%REPOS%-t%TXN%|finds 阅读全文
posted @ 2013-05-01 14:50 小天1981 阅读(631) 评论(0) 推荐(0) 编辑
摘要: Delphi开发ocx苦于调试,网上看了下大概配置:IE调用ocx调试配置,在当前ocx工程run-->parameters-->hostapplication里面配置IE的程序地址(C:\ProgramFiles\InternetExplorer\iexplore.exe)Parameters里面是要访问的调用ocx文件的页面(...文件目录\JsInterface.htm)关于IE8设置断点无法进入的问题regedit→HKEY_LOCAL_MACHINE→SOFTWARE→Microsoft→InternetExplorer→Main。在Main里新建一个DWORD类型名为T 阅读全文
posted @ 2013-05-01 14:49 小天1981 阅读(183) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 16 下一页