delphi2007 教程

delphi2007 教程

首页 新随笔 联系 聚合 管理
  1013 Posts :: 0 Stories :: 28 Comments :: 0 Trackbacks

#

浏览器不支持框架? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061122182930279.html
我用frontpage制作了一些有框架的静态网页作为帮助文件,放在大多数机器上都能正常运行,可是在一台xp机器(ie6.0)上却出现"该浏览器不支持框架"错误,接着显示了网页的源代码,该机器上没有发现病毒,这是什么原因呢,莫非有些ie6.0支持框架,有的ie6.0不支持框架?

那是某个设置的问题吧。    
 

posted @ 2009-05-26 17:28 delphi2007 阅读(329) | 评论 (0)编辑 收藏

程序在运行,当我把网络突然卡断后出现的异常错误 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061122150010280.html
RT  
   
  PS:我写了一个程序,用的是SQL来操作数据库,当我在操作我所写的程序时候,我  
   
  突然把网络断掉了,结果出现一些莫名的异常,无法捕捉到他的异常;试过了用  
   
  applicationEvents这个控件的异常事件,也不行,不知道有什么方法可以解决网络  
   
  断掉后程序连接服务器上的问题,请了解并知道的人不吝赐教!

如果是调试模式,总是会出现。  
  否则,如果try得不到,就是外部程序跳出的错误对话框,楼主再仔细看看。

在异常处理的时候,adoconnection.close;     看似简单,却是真实经验.

adoconnection.close  
   
  哈爷说了一段足以记录在小本子上的话“看似简单,却是真实经验”

听听楼下的看法

总有一些异常是无法完全处理好的(比如突然掉电)

楼上我只是随意说点看法。抛砖引玉嘛。听楼下的吧

看了楼上的贴子,我决定等楼下的回答。

是的     就是突然电断掉   或则我故意把网络卡掉      
   
  因为你还在操作程序   你也不知道它什么时候会断掉     adoconnection.close所以不行  
   
  还请大家不吝赐教    
   
 

没试过喔。。等楼下的。。呵呵。。。

。。。高手来啊   我郁闷死了

最常用的方案:硬件保障(比如:断电-->UPS;   网络-->星形)  
   
  我自己想的但我做不了的方案:向客户端或服务器传数据时直接写硬盘扇区做备份,正常退出程序后再free掉.  
   
  以上只是个人意见

沙发~学习~

lihuasoft(类==大米)(专泡烂贴)    
   
  想法不错   明白点你的意思   可是你说的那玩意可以实现么~~    
   
  偶很菜   希望多帮忙~~~

板凳

学习!!

posted @ 2009-05-26 17:28 delphi2007 阅读(248) | 评论 (0)编辑 收藏

SPCOMM串口通信的小问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061122104545281.html
SPCOMM以  
  1200,8,n,1向下位机发送0X10,并接收0X11(成功),若没收到则表示失败  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
    try  
              Comm1.BaudRate:=1200;  
              Comm1.CommName:=COM1;  
              Comm1.ByteSize:=8;  
              Comm1.ParityCheck:=1  
              Comm1.startcomm;  
        except  
              showmessage('打开失败');  
        end;  
  Comm1.WriteCommData(       );                     //这里如何发送16字节的命令?  
                                                                      //如何接收??谢谢  
   
  Comm1.StopComm;  
  end;

http://mm.blogxp.org/Article/295723/

其实这些问题你自己用google或baidu搜索一下随便找个例子就可以搞定的!

google出来没有发送16位数字的例子。

能否直接写  
  Comm1.WriteCommData('16',1);

procedure   TForm1.Button1Click(Sender:   TObject);  
  var  
    sendbuff:array   of   byte;  
    sendlen:integer;  
  begin  
    try  
              Comm1.BaudRate:=1200;  
              Comm1.CommName:=COM1;  
              Comm1.ByteSize:=8;  
              Comm1.ParityCheck:=1  
              Comm1.startcomm;  
        except  
              showmessage('打开失败');  
        end;  
  sendlen:=1;  
  setlength(sendbuff,1);  
  sendbuff[0]:=16;  
  Comm1.WriteCommData(sendbuff,1);                     //这里如何发送16字节的命令?  
  sleep(100);  
  //如何接收??谢谢  
  你在ONRECEVICEDATA()中写代码吧........  
   
  Comm1.StopComm;  
  end;

接收时我一般声明一个数组,然后用move函数复制过去,在做相应处理

接收与发送要分开,  
    接收  
  ONRECEVICEDATA()  
  var  
      p:pArrayByte;  
  begin  
      p:=buffer;  
      if   p[0]=$11   then    
      showmessage('OK');  
  end;

posted @ 2009-05-26 17:28 delphi2007 阅读(433) | 评论 (0)编辑 收藏

采用TServerSocket组件,非阻塞方式用不用新开线程? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061122102539282.html
服务端采用的是非阻塞模式。用链表维护客户端信息。在Connection事件里面还用不用新开线程来对每个客户端通信了。

使用什么模式和你是否要用线程没有本质关系。  
 

TServerSocket的非阻塞方式,是基于WINDOWS消息的异步选择模式,它的事件是触发于主线程.  
   
 

posted @ 2009-05-26 17:28 delphi2007 阅读(532) | 评论 (0)编辑 收藏

Com+客户须要安装组件吗? 里面有问题超详细描述。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061122102501283.html
现场是这样的:  
  A机:   编写了Com+的组件及相应客户端。  
  B|C|D|E:都安装了由A机导出的COM+组件,并在   A机   上调用正常。  
   
   
  事件的触发:  
  我在   A机   把项目的路径改变了。(也就是编译的对象及COm+组件的文件改变的路径)但没有重新在   A机   安装组件。  
   
  结果:  
  我在   A机   上运行客户端调用B|C|D|E上的组件均报错(Interface   not   suportted)。  
   
  问题:  
  难道在客服机上也须要安装对应组件吗?  
   
   
   
   
   
  还有就是我重新测了一下。  
  我在A机的组件服务中删除了对应组件。  
  在A机上运行客户端正常,但只要把组件DLL所对应的目录改名就有上述错误。  
  哪位同仁见过类似错误?  
 

这个社区有COM+专家:comanche(太可怕)    
   
  请看  
  http://community.csdn.net/Expert/topic/5120/5120181.xml?temp=.8504907  
   
  估计你是类似问题

To:   sanmaotuo(老冯)  
  不是权限的问题。因为权限我是设置及测试过的。几台机子,密码用户名都不一样。而且不保存密码,在开机时不做连接。做的测试。均可进行连接。  
   
  问题是我现在当   A机   是客户端。移去   A机   上的组件文件就产生这个问题。。。。  
  很是郁闷哪!!

另外想问一下,组件工程中生成   *_TLB.pas   文件  
  跟导出类库所生成的   *_TLB.pas   的文件该如何区分使用?

问题自已解决了。

posted @ 2009-05-26 17:28 delphi2007 阅读(183) | 评论 (0)编辑 收藏

在ics控件中的Client.TimerIsSet();Client.TimerCmp()是做什么用的? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061122101435284.html
在ics控件中的Client.TimerIsSet();Client.TimerCmp()是做什么用的?
posted @ 2009-05-26 17:28 delphi2007 阅读(312) | 评论 (0)编辑 收藏

如何扫描获得网络(域,局域网)上所有电脑已经安装的软件。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061122090126285.html
如题,分数不够可再加。

用WMI轻松搞定

涉及的技术有2,  
  其一是你要知道如何通过网络扫描到网络内所有机器以获取其网络信息(如HOST、IP、MAC等)    
  其二是一旦获取到机器网络信息后就通过WMI来获取其软件、硬件所有信息.

既然楼上都讲到WMI了   那我就找篇资料给LZ吧    
   
  http://www.programfan.com/article/showarticle.asp?id=1364  
   
 

就这样拉?

因为代码贴出来确实太长,你先沿着这个思路做做。有什么具体问题,一定耐心回答

posted @ 2009-05-26 17:28 delphi2007 阅读(1221) | 评论 (0)编辑 收藏

有尝请高手写一个关于ARP欺骗的小程序 QQ-1082 88538 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061122003416286.html
有尝请高手写一个关于ARP欺骗的小程序   QQ-1082   88538

有尝哦?多少啊,有现成的

posted @ 2009-05-26 17:28 delphi2007 阅读(219) | 评论 (0)编辑 收藏

有个很少的C++源码急着需要翻译成其它源码,版主、高手请进。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061121222148287.html
下面的源码是用来判断数据流的编码的,由一个叫jiangsheng的朋友提供,在此先谢谢他。  
  但是我不会用C++,现在急着需要用这个源码,请大虾们帮个忙,帮个忙把下面的源码翻译成vb\delphi或net的,或者做个DLL给我,最好是翻译成VB.NET的,小弟不胜感激,在此先谢谢了。Mail:237019683@qq.com  
 

static   HRESULT   DetectCodePage(  
                  IStreamPtr   spStream,  
                  std::vector<DWORD>&   dwCodePages,  
                  DWORD   dwFlag   =   MLDETECTCP_8BIT,  
                  DWORD   dwPrefWinCodePage   =   0)  
          {  
                  HRESULT   hr   =   S_OK;  
   
                  const   int   N   =   32;                                          
                  INT   nScores   =   N;  
                  DetectEncodingInfo   info[N];  
                  hr   =   DetectCodepageInIStream(  
                          dwFlag,  
                          dwPrefWinCodePage,  
                          spStream,  
                          info,  
                          &nScores);  
                  if   (FAILED(hr))  
                  {  
                          return   hr;  
                  }  
   
                  for   (int   i   =   0;   i   <   nScores;   i++)  
                  {  
                          dwCodePages.push_back(info[i].nCodePage);  
                  }  
   
                  return   S_OK;  
          }  
   
          //   IE5.0   or   lator  
          static   HRESULT   DetectCodepageInIStream(  
                  DWORD   dwFlag,  
                  DWORD   dwPrefWinCodePage,  
                  IStream   *pstmIn,  
                  DetectEncodingInfo   *lpEncoding,  
                  INT   *pnScores)  
          {  
                  HRESULT   hr   =   S_OK;  
   
                  try  
                  {  
                          IMultiLanguage2Ptr   spMultiLanguage2   =   GetMultiLanguage();  
                          if   (spMultiLanguage2   ==   NULL)  
                          {  
                                  return   E_FAIL;  
                          }  
          这个是调用浏览器的spMultiLanguage2接口的一个方法DetectCodepageInIStream  
                          hr   =   spMultiLanguage2->DetectCodepageInIStream(  
                                  dwFlag,  
                                  dwPrefWinCodePage,  
                                  pstmIn,  
                                  lpEncoding,  
                                  pnScores);  
                          if   (FAILED(hr))  
                          {  
                                  return   hr;  
                          }  
                  }  
                  catch   (...)  
                  {  
                          return   E_FAIL;  
                  }  
   
                  return   S_OK;  
          }  
   
          static   IMultiLanguagePtr   GetMultiLanguage()  
          {  
                  HRESULT   hr   =   S_OK;  
   
                  IMultiLanguagePtr   spMultiLanguage;  
                  hr   =   spMultiLanguage.CreateInstance(__uuidof(CMultiLanguage));  
                  if   (FAILED(hr))  
                  {  
                          return   NULL;  
                  }  
   
                  return   spMultiLanguage;  
          }

posted @ 2009-05-26 17:28 delphi2007 阅读(178) | 评论 (0)编辑 收藏

为什么我的控件库里没有TNMHttp控件呢? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061121210013288.html
为什么我的控件库里没有TNMHttp控件呢?  
  求助大家咯,是不是需要import哪个library呀?  
 

自顶一个...

posted @ 2009-05-26 17:28 delphi2007 阅读(290) | 评论 (0)编辑 收藏

如何取出.eml文件中邮件的头部和正文? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061121192750289.html
idmessage.loadfromfile(*.eml),就会出错。

我也想知道这个问题啊  
  谁能告诉我   啊

posted @ 2009-05-26 17:28 delphi2007 阅读(657) | 评论 (0)编辑 收藏

如何使用IdHttp读取远程服务器的文件? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061121170500290.html
初学delphi的网络编程,现在客户端使用IdHttp,需读取远程服务器的ini文件,如何做呢?烦大侠简单地写些代码,对IdHttp的方法着实不熟呀....谢过了...

你去这里下载INDY的演示比什么都好。  
  http://www.atozed.com/Indy/Demos/index.aspx

嗯,多谢楼上的提示咯,这就去cc。。。  
  这方面的书好像好少呀...

一个简单的例子,把文件下载到strFileName这个临时文件中。  
  var  
      temhttp:   TIdHTTP;  
      tStream:   TFileStream;  
  begin  
      temhttp   :=   TIdHTTP.Create(nil);  
      IdAntiFreeze1.OnlyWhenIdle   :=   False;   //设置使程序有反应.  
      if   FileExists(strFileName)   then   //如果文件已经存在  
          tStream   :=   TFileStream.Create(strFileName,   fmOpenWrite)  
      else  
          tStream   :=   TFileStream.Create(strFileName,   fmCreate);  
      try  
          temhttp.Get(strURL,   tStream);   //开始下载  
      except  
      end;  
 

楼上的应该可以了。  
  如果要用   post   ,就麻烦一些,增加参数

嗯,get方法看明白了..  
  get和post的有何区别呢?  
  是否能给个post的小demo咯...谢谢咯..

^

get是请求得到服务器上的数据。  
  而post是发送数据到远程服务器!

posted @ 2009-05-26 17:28 delphi2007 阅读(1202) | 评论 (0)编辑 收藏

怎样写一个获取数据函数:用TCP/IP通讯,向服务端发送命令,并从服务端获得返回数据. Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061126110916251.html
我想编写一个函数getDataFormSerevr(command:string):string;  
  函数实现的是:用TCP/IP通讯,向服务端发送command,并从服务端获得返回数据作为函数的值.  
  如何处理等待数据返回的问题?  
  如何解决超时问题?  
  希望高手提供解答.

自己设定一个时间,发出指令后,如果到了时间还是一个字也没收到,就提示挂了,请检查网络!如果已经开始收到了,就搞个进度条出来……让大家请稍侯!

先用timer设置一个时间   一般都是500毫秒就够了   用这个时间来处理返回就够了   如果连接不上的话有个返回值写到线程里面去   如果值为-1就是最大~~

我是在一个函数里实现,怎么能用TIMER呢?

首先,基本不用考虑什么超时问题,因为你是先去连接服务器,然后再用这个函数的,tcp连接后除非发生阻塞,一般不会出现问题,   也可以用异常处理来解决  
  另外,等待数据返回的话,需要用线程来发送和接受

可以使用阻塞通讯模式。下面使我写的同步通讯类单元。  
  unit   RCUnit;  
   
  interface  
  uses   Windows,   SysUtils,   WinSock,   ComObj,   ScktComp,SConnect;  
   
  type  
      ESocketConnectionError   =   class(Exception);  
   
      TQiSocketTransport   =   class(TInterfacedObject)  
      private  
          FEvent:   THandle;  
          FAddress:   string;  
          FHost:   string;  
          FPort:   Integer;  
          FClientSocket:   TClientSocket;  
          FSocket:   TCustomWinSocket;  
      protected  
          {   ITransport   }  
          function   GetWaitEvent:   THandle;   stdcall;  
          function   GetConnected:   Boolean;   stdcall;  
          procedure   SetConnected(Value:   Boolean);   stdcall;  
          function   Receive(WaitForInput:   Boolean;Buffer:Pointer):Integer;   stdcall;  
          function   Send(Buffer:Pointer;Count:Integer):   Integer;   stdcall;  
      public  
          constructor   Create;  
          destructor   Destroy;   override;  
          property   Connected:Boolean   read   GetConnected   write   SetConnected;  
          property   Host:   string   read   FHost   write   FHost;  
          property   Address:   string   read   FAddress   write   FAddress;  
          property   Port:   Integer   read   FPort   write   FPort;  
          property   Socket:   TCustomWinSocket   read   FSocket   write   FSocket;  
      end;  
   
   
  implementation  
   
   
  const  
      SIG_EXCEPTION:Integer=$EEEEEEEE;  
      SIG_OK       :Integer         =$00000000;  
      ESocketReadError           ='Socket   read   error.';  
      ENoAddress           ='No   address.';      
   
  var  
      hWinSock2:   THandle;  
   
      WSACreateEvent:   function:   THandle   stdcall;  
      WSAResetEvent:   function(hEvent:   THandle):   Boolean   stdcall;  
      WSACloseEvent:   function(hEvent:   THandle):   Boolean   stdcall;  
      WSAEventSelect:   function(s:   TSocket;   hEventObject:   THandle;   lNetworkEvents:   Integer):   Integer   stdcall;  
   
   
  function   CheckSignature(Sig:Integer):Boolean;  
  begin  
      if   Sig=SIG_EXCEPTION   then  
          Raise   Exception.Create('Remote   call   error!')  
      else  
          Result:=True;  
  end;  
   
  {   TQiSocketTransport   }  
   
  constructor   TQiSocketTransport.Create;  
  begin  
      inherited   Create;  
      FEvent   :=   0;  
  end;  
   
  destructor   TQiSocketTransport.Destroy;  
  begin  
      SetConnected(False);  
      inherited   Destroy;  
  end;  
   
  function   TQiSocketTransport.GetWaitEvent:   THandle;  
  begin  
      FEvent   :=   WSACreateEvent;  
      WSAEventSelect(FSocket.SocketHandle,   FEvent,   FD_READ   or   FD_CLOSE);  
      Result   :=   FEvent;  
  end;  
   
  function   TQiSocketTransport.GetConnected:   Boolean;  
  begin  
      Result   :=   (FSocket   <>   nil)   and   (FSocket.Connected);  
  end;  
   
  procedure   TQiSocketTransport.SetConnected(Value:   Boolean);  
  begin  
      if   GetConnected   =   Value   then   Exit;  
      if   Value   then  
      begin  
          if   (FAddress   =   '')   and   (FHost   =   '')   then  
              raise   ESocketConnectionError.Create(ENoAddress);  
          FClientSocket   :=   TClientSocket.Create(nil);  
          FClientSocket.ClientType   :=   ctBlocking;  
          FSocket   :=   FClientSocket.Socket;  
          FClientSocket.Port   :=   FPort;  
          if   FAddress   <>   ''   then  
              FClientSocket.Address   :=   FAddress   else  
              FClientSocket.Host   :=   FHost;  
          FClientSocket.Open;  
      end   else  
      begin  
          if   FSocket   <>   nil   then   FSocket.Close;  
          FSocket   :=   nil;  
          FreeAndNil(FClientSocket);  
          if   FEvent   <>   0   then   WSACloseEvent(FEvent);  
          FEvent   :=   0;  
      end;  
  end;  
   
  function   TQiSocketTransport.Receive(WaitForInput:   Boolean;Buffer:Pointer):Integer;   stdcall;  
   
  var  
      RetLen,   Sig,   StreamLen:   Integer;  
      P:   Pointer;  
      FDSet:   TFDSet;  
      TimeVal:   PTimeVal;  
      RetVal:   Integer;  
      bFirst:   boolean;  
   
  begin  
      Result   :=   0;  
      TimeVal   :=   NIL;  
      FD_ZERO(FDSet);  
      FD_SET(FSocket.SocketHandle,   FDSet);  
      if   not   WaitForInput   then  
      begin  
          New(TimeVal);  
          TimeVal.tv_sec   :=   0;  
          TimeVal.tv_usec   :=   1;  
      end;  
      RetVal   :=   select(0,   @FDSet,   nil,   nil,   TimeVal);  
      if   Assigned(TimeVal)   then  
          FreeMem(TimeVal);  
      if   RetVal   =   SOCKET_ERROR   then  
          raise   ESocketConnectionError.Create(SysErrorMessage(WSAGetLastError));  
      if   (RetVal   =   0)   then   Exit;  
   
      RetLen   :=   FSocket.ReceiveBuf(Sig,   SizeOf(Sig));  
      if   RetLen   <>   SizeOf(Sig)   then  
          raise   ESocketConnectionError.Create(ESocketReadError);  
      CheckSignature(Sig);  
      RetLen   :=   FSocket.ReceiveBuf(StreamLen,   SizeOf(StreamLen));  
      if   RetLen   =   0   then  
          raise   ESocketConnectionError.Create(ESocketReadError);  
      if   RetLen   <>   SizeOf(StreamLen)   then  
          raise   ESocketConnectionError.Create(ESocketReadError);  
      P   :=   Buffer;  
      if   (StreamLen   >   0)   then     WaitForSingleObject(FEvent,   {INFINITE}60000);  
      bFirst   :=   True;  
   
      while   StreamLen   >   0   do  
      begin  
          RetLen   :=   FSocket.ReceiveBuf(P^,   StreamLen);  
          if   RetLen   =   0   then  
          begin  
              if   not   bFirst   then  
                      raise   ESocketConnectionError.Create(ESocketReadError);  
   
              bFirst   :=   False;  
          end;  
   
          if   RetLen   >   0   then  
          begin  
              Dec(StreamLen,   RetLen);  
              Inc(Integer(P),   RetLen);  
          end;  
   
          if   StreamLen   >   0   then  
          begin  
              if   (WaitForSingleObject(FEvent,   {INFINITE}90000)   =   WAIT_OBJECT_0)   then  
              begin  
                  WSAResetEvent(FEvent);  
              end  
              else  
              begin  
                  raise   ESocketConnectionError.Create('Read   Error   Single   Object   Timeout');  
              end;  
          end;  
   
      end;  
      if   StreamLen   <>   0   then  
          raise   ESocketConnectionError.Create(ESocketReadError);  
  end;  
   
  function   TQiSocketTransport.Send(Buffer:Pointer;Count:Integer):   Integer;   stdcall;  
  var  
      Size:Integer;  
  begin  
      Result   :=   0;  
      Size:=Count;  
      if   Size>0   then  
      begin  
          FSocket.SendBuf(Buffer^,   Count);  
      end;  
  end;  
   
  function   LoadWinSock2:   Boolean;  
  const  
      DLLName   =   'ws2_32.dll';  
  begin  
      Result   :=   hWinSock2   >   0;  
      if   Result   then   Exit;  
      hWinSock2   :=   LoadLibrary(PChar(DLLName));  
      Result   :=   hWinSock2   >   0;  
      if   Result   then  
      begin  
          WSACreateEvent   :=   GetProcAddress(hWinSock2,   'WSACreateEvent');  
          WSAResetEvent   :=   GetProcAddress(hWinSock2,   'WSAResetEvent');  
          WSACloseEvent   :=   GetProcAddress(hWinSock2,   'WSACloseEvent');  
          WSAEventSelect   :=   GetProcAddress(hWinSock2,   'WSAEventSelect');  
      end;  
  end;  
   
  initialization  
      LoadWinSock2;  
  end.  
 

你的函数只需类似这样调用即可:  
  ST:TQiSocketTransport  
  ...  
  创建并连接服务器  
  ..  
   
  getDataFormSerevr(command:string):string  
  begin    
      ST.Send....      
      ST.Receive.......  
  end;  
 

posted @ 2009-05-26 17:27 delphi2007 阅读(398) | 评论 (0)编辑 收藏

MIDAS分布应用程序中的几个问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061126031543252.html
我刚刚学,请大家多关照  
   
  我用ADOConnection,ADOQuery,DataSetProvider1够成服务端  
  用ClientDataSet,DataSource,SocketConnection构成客户端  
   
  1:输入我机器公网IP后可以正确运行,运行客户端的时候服务端会自动运行。但是我把客户端传给我朋友,他却无法运行。  
  2:当我开发服务端的时候DELPHI7自动编译并运行该服务器程序。运行该程序即注册了一个MIDAS的服务器~`由于我是新手实验了好几个,所以就注册了好几个MIDAS请问如何删除机器上的MIDAS??  
   
   
   
   
   
 

个人认为ADOconnection不支持分布式。我都是用socktconnection+代理服务器。或Dcomconnection

2:当我开发服务端的时候DELPHI7自动编译并运行该服务器程序。运行该程序即注册了一个MIDAS的服务器~`由于我是新手实验了好几个,所以就注册了好几个MIDAS请问如何删除机器上的MIDAS??  
  关键这个问题

有人知道吗??

你是指从注册表里删除程序服务器的注册信息吗?

MIDAS   的SERVERNAME

和注册了多个应该没有关系,客户端程序,选择了哪个SERVERNAME,就会执行哪个,  
  远程访问不了,可能和防火墙有关系,如果你使用默认的,服务端程序应该使用211端口,  
  可以看看211端口是否对外开放,如果不对外开放,远程的就访问不了。

不太明白楼主的意思。可以在windows注册表编辑器里搜索serverName关键字,删除相关项。不止一处。

我用的是MIDAS技术实现分布,现在一打开DCOMConnection的server   name就会出现一大堆,可很多都是没用的了~``我怎么删除那些没用的?  
 

可以在windows注册表编辑器里搜索serverName关键字,删除相关项。不止一处  
   
  抱歉,别的办法我不知道

serverName关键字是指你注册的“Server   Name”。主键、值项全删

反注册一下好了啊

regsvr32   -u   程序   就反注册了  
   
  提示下楼主,   现在一般不要用   exe   形态的   server,   com+   完全不能用   exe,   dll   形态的可以完全透明升级到   com+

posted @ 2009-05-26 17:27 delphi2007 阅读(177) | 评论 (0)编辑 收藏

SQL SERVER 如何实现分布C/S两层结构 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061126014640253.html
如题  
  请给出个详细的步骤说明都用到什么控件需要设置些什么。  
  如果可能请举个比较简单的例子,我用的是ADO控件访问SQL   SERVER但是不会实现分布的C/S结构。谢谢了!!!!!

用mssql做服务器   用开发工具开发客户端   嘿嘿

两层的用得好像不多了,不过很实用,用adoconnect连接

posted @ 2009-05-26 17:27 delphi2007 阅读(229) | 评论 (0)编辑 收藏

webBrowser如何利用ExecWB來進行Past貼上的動作呢 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061126005932254.html
WebBrowser1.ExecWB(OLECMDID_past,OLECMDEXECOPT_DODEFAULT,EmptyParam,EmptyParam)   ;  
  想要在第三個textarea   貼上資料,不利移動滑鼠來選擇位置的話  
  要如何貼上呢?

procedure   TForm1.WebBrowser1.DocumentComplete(ASender:   TObject;  
      const   pDisp:   IDispatch;   var   URL:   OleVariant);  
   
  Var   O,H:Olevariant;  
   
  Begin  
                    o   :=   WebBrowser1.oleobject.document.all.item('textareaName',0);   //找到内容  
                    o.value   :=SendContent;  
  End;  
   
  这样是不是简单一点呢??

posted @ 2009-05-26 17:27 delphi2007 阅读(201) | 评论 (0)编辑 收藏

为什么接收不到数据 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061125213554255.html
我写的上位机程序,用串口助手可以接收到它发来的数据,问什么它接收不到串口助手发过来的数据,下面是它接收数据的代码,大家帮我看看,谢谢!  
   
  procedure   TForm1.Button7Click(Sender:   TObject);  
   
  var  
  data:string;  
  BufferLength:word;  
  Buffer:Pointer;  
  begin                    
  SetLength(data,BufferLength);  
  move(Buffer^,pchar(data)^,Bufferlength);  
  Memo1.lines.Add(data);  
  Memo1.Invalidate;  
   
  end;

你接收了么??

posted @ 2009-05-26 17:27 delphi2007 阅读(153) | 评论 (0)编辑 收藏

有那位高手能编写好用的游戏密码截取软件,请联系我,月薪高高! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061125183639256.html
有那位高手能编写好用的游戏密码截取软件,请联系我,月薪高高!联系QQ:31303815

能编写好用的密码截取软件,还用给你打工啊?

游戏密码。。。呵呵,一个游戏和一个游戏不一样的。  
  而且,现在游戏密码都不会再传明码了。。。客户端都会去做MD5或其它,就算你知道报文格式,也基本上只有穷举才能得到密码。

汗~~   楼主要做坏事   BS先

强烈BS   楼猪!

去自首吧

别胡思乱想了。

呵呵   偶也BS   LZ~~    
   
  去放木马就可以了嘛   笨

强烈BS

从数据包推测密码的可能性不大

我能做出来。你给多少钱?

特洛伊。我喜欢。呵呵。

如果你想害人,你就是杂种。

顺便╭∩╮(︶︿︶)╭∩╮

恩恩,很9以前作过木马,+我细谈谈

posted @ 2009-05-26 17:27 delphi2007 阅读(144) | 评论 (0)编辑 收藏

多线程下载问题(IDHTTP) Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061125181049257.html
小弟写了一个多线程下载的程序,总是有死循环的迹象,不过我认为可能是产生了死锁。可是当单步跟踪的时候产生错误大家帮小弟看看啊:  
          unit   IndyMThread;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls,   ComCtrls,   IdBaseComponent,   IdComponent,  
      IdTCPConnection,   IdTCPClient,   IdHTTP;  
   
  type  
      TForm1   =   class(TForm)  
          BtnDowload:   TButton;  
          BtnCancel:   TButton;  
          EdtURL:   TEdit;  
          Label1:   TLabel;  
          REdtMess:   TRichEdit;  
          IdHTTP1:   TIdHTTP;  
          procedure   BtnDowloadClick(Sender:   TObject);  
          procedure   FormCreate(Sender:   TObject);  
          procedure   FormDestroy(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
      TThreadLoad   =   class(TThread)  
          private  
            {private   declatation}  
              m_sURL:string;  
          protected  
            {protected   declaration}  
                procedure       GetFile(var   sFileName:string);  
                procedure       REditAdd;  
                procedure       Execute;override;  
          public  
            {Public   declarations   }  
              REdt:TRichEdit;  
              Constructor   Create(bWait:Boolean;const   URL:string);  
   
              //   Destructor     Destroy;override;  
      end;  
  var  
      Form1:   TForm1;  
      m_ArrayImage:   Array[0..4]of   string;  
      g_i:integer;  
      CriticalSec:TRTLCriticalSection;  
  implementation  
   
  {$R   *.dfm}  
  procedure   TThreadLoad.GetFile(var   sFileName:string);  
  var  
      i:integer;  
  begin  
      for   i:=0   to   4   do  
          begin  
              if   m_arrayimage[i]=''   then   continue;  
              sFileName:=m_arrayimage[i];  
              m_arrayimage[i]:='';  
              exit;  
          end;  
  end;  
   
  procedure   TThreadLoad.REditAdd;  
  begin  
      REdt.Lines.Append('正在保存');  
  end;  
  procedure   TThreadLoad.Execute;  
  var  
   
      IDHttp2:TIDHttp;  
      file_name:string;  
      Streamfile1:TMemoryStream;  
  begin  
   
      while   not   terminated   do  
          begin  
              EnterCriticalSection(CriticalSec);//进入临界段  
                  try  
                      GetFile(File_name);  
                      IDHttp2:=TIDHttp.Create(nil);  
                          try  
                              StreamFile1:=TMemoryStream.Create;  
                                  try  
                                      IDHttp2.Head(m_sURL);  
                                      IDHttp2.Get(m_sURL,StreamFile1);  
                                      StreamFile1.SaveToFile('d:\'+file_name);  
                                  finally  
                                      StreamFile1.Free;  
                                  end;  
                          finally  
                              idhttp2.Free;  
                          end;  
                    //   synchronize(REditAdd);  
                  finally  
                      LeaveCriticalSection(CriticalSec);  
                  end;  
              if   file_name=''   then   exit;  
          end;//begin  
   
  end;  
   
  procedure   TForm1.BtnDowloadClick(Sender:   TObject);  
  var  
    i,k:integer;  
    ThreadArray:array[0..4]of   TThreadLoad;  
  begin  
    for   i:=0   to   4   do  
      begin  
      ThreadArray[i]:=tthreadLoad.Create(true,EdtURL.Text+'/'+m_arrayimage[i]);  
      ThreadArray[i].REdt:=REdtMess;  
      end;  
      for   k:=0   to   4   do     ThreadArray[k].Resume;  
    end;  
   
  Constructor   TThreadLoad.Create(bWait:boolean;const   URL:string);  
  begin  
      inherited   create(bWait);  
      m_sURL:=URL;  
  end;  
   
  {Destructor     TThreadLoad.Destroy;  
  begin  
      inherited   Destroy;  
  end;   }  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      m_ArrayImage[0]:='aa.bmp';  
      m_arrayImage[4]:='4.jpg';  
      m_arrayimage[2]:='1.jpg';  
      m_arrayimage[3]:='2.jpg';  
      m_arrayimage[1]:='3.jpg';  
      g_i:=0;  
      InitializeCriticalSection(CriticalSec)  
  end;  
   
  procedure   TForm1.FormDestroy(Sender:   TObject);  
  begin  
      DeleteCriticalSection(CriticalSec);  
  end;  
   
  end.  
  {==============================================================}  
  delphi的单步跟踪的时候产生错误错误提示,有的时候会整个delphi都死  
  掉  
   
   
  {==============================================================}

{=======================}  
  {=问题已经解决,代码如下=}  
  {=======================}  
  unit   IndyMThread;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls,   ComCtrls,   IdBaseComponent,   IdComponent,  
      IdTCPConnection,   IdTCPClient,   IdHTTP;  
   
  type  
      TForm1   =   class(TForm)  
          BtnDowload:   TButton;  
          BtnCancel:   TButton;  
          EdtURL:   TEdit;  
          Label1:   TLabel;  
          REdtMess:   TRichEdit;  
          IdHTTP1:   TIdHTTP;  
          procedure   BtnDowloadClick(Sender:   TObject);  
          procedure   FormCreate(Sender:   TObject);  
          procedure   FormDestroy(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
      TThreadLoad   =   class(TThread)  
          private  
            {private   declatation}  
              m_sURL:string;  
               
          protected  
            {protected   declaration}  
                procedure       GetFile(var   sFileName:string);  
                procedure       REditAdd;  
                procedure       Execute;override;  
                function   GetFileName(const   sURL:string):string;  
          public  
            {Public   declarations   }  
              REdt:TRichEdit;  
              Constructor   Create(bWait:Boolean;const   URL:string);  
        end;  
  var  
      Form1:   TForm1;  
      m_ArrayImage:   Array[0..4]of   string;  
      CriticalSec:TRTLCriticalSection;  
  implementation  
   
  {$R   *.dfm}  
  function   TThreadLoad.GetFileName(const   sURL:string):string;  
  var  
    URlName:string;  
    i:integer;  
  begin  
      URLName:=sURL;  
      i:=Pos('/',URLName);  
      while   i<>0   do  
      begin  
          i:=Pos('/',URLName);  
          delete(URLName,1,i);  
      end;  
    Result:=URLName;  
  end;  
  procedure   TThreadLoad.GetFile(var   sFileName:string);  
  var  
      i:integer;  
  begin  
      sFileName:='';  
      for   i:=0   to   4   do  
          begin  
              if   m_arrayimage[i]=''   then   continue;  
              sFileName:=m_arrayimage[i];  
              m_arrayimage[i]:='';  
              exit;  
          end;  
  end;  
   
  procedure   TThreadLoad.REditAdd;  
  begin  
      REdt.Lines.Append('正在保存');  
  end;  
  procedure   TThreadLoad.Execute;  
  var  
   
      IDHttp2:TIDHttp;  
      file_name:string;  
      Streamfile1:TMemoryStream;  
      filename1:string;  
  begin  
      while   not   terminated   do  
          begin  
              EnterCriticalSection(CriticalSec);//进入临界段  
                  try  
                      GetFile(File_name);  
                      filename1:=GetFileName(File_name);  
                  finally  
                      LeaveCriticalSection(CriticalSec);   //退出临界段  
                  end;  
              if   file_name=''   then   exit;  
              IDHttp2:=TIDHttp.Create(nil);  
                  try  
                      StreamFile1:=TMemoryStream.Create;  
                          try  
                              IDHttp2.Head(File_name);  
                              IDHttp2.Get(File_name,StreamFile1);  
                              StreamFile1.SaveToFile('d:\'+filename1);  
                          finally  
                              StreamFile1.Free;  
                          end;  
                  finally  
                      idhttp2.Free;  
                  end;  
              synchronize(REditAdd);  
          end;//while  
  end;  
   
  procedure   TForm1.BtnDowloadClick(Sender:   TObject);  
  var  
    i,k:integer;  
    ThreadArray:array[0..4]of   TThreadLoad;  
  begin  
    for   i:=0   to   4   do  
      begin  
      ThreadArray[i]:=tthreadLoad.Create(true,trim(REdtMess.Text));  
      ThreadArray[i].REdt:=REdtMess;  
      end;  
      for   k:=0   to   4   do     ThreadArray[k].Resume;  
    end;  
   
  Constructor   TThreadLoad.Create(bWait:boolean;const   URL:string);  
        begin  
          inherited   create(bWait);  
          m_sURL:=URL;  
        end;  
   
  procedure   TForm1.FormCreate(Sender:   TObject);  
  begin  
      m_ArrayImage[0]:='http://localhost/Test/123/aa.rar';  
      m_arrayImage[4]:='http://localhost/Test/123/4.jpg';  
      m_arrayimage[2]:='http://localhost/Test/123/1.jpg';  
      m_arrayimage[3]:='http://localhost/Test/123/2.jpg';  
      m_arrayimage[1]:='http://localhost/Test/123/3.jpg';  
      InitializeCriticalSection(CriticalSec)  
  end;  
   
  procedure   TForm1.FormDestroy(Sender:   TObject);  
  begin  
      DeleteCriticalSection(CriticalSec);  
  end;  
   
  end.

^

JF

学习!!

你的   “临界段”   保持的时间太久了  
   
  其他进程访问不到资源就死掉了  
  建议参照TThreadList类封装需要保护的对象

posted @ 2009-05-26 17:27 delphi2007 阅读(791) | 评论 (0)编辑 收藏

有关ScktSvr.exe在双核下的问题,进来看一下。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061125153509258.html
服务端用的是ScktSvr.exe程序,在单核超线程上是好的。换成双核服务器会并死掉。就是客户端没响应了,换成Dcom在双核下又是可以的,但Dcom配置很麻烦。所以想找一解决方案,谢谢!!  
 

帮顶,学习。

scktsrvr.exe在delphi目录下有源码,你可以研究一下。我的水平是看不懂它。

可能软件的问题大一些,我的一个软件服务端是双CPU的,没有这个问题,可能双核的和双CPU有区别。

scktsrvr.exe在BDN上有新版本,支持双CPU.

Borland   Socket   Server   Beta   Fix   2.00   (mparma@usa.net)  
   
  你可以找搜这样的一个版本。。。  
  如果找不到,请联系我。

楼上的朋友,我没有找到你说的版本。麻烦你发我一份。谢谢  
    halenbbs@hotmail.com

我都需要,可以发一份给我吗??  
  dragon18888@163.com

这儿有,可下载  
  http://www.chinacodes.net/downinfo/15359.html

楼上的兄弟谢了,不过我们现在就用的这个版本,多CPU,超线程。都没问题。  
    现在是双核,就有问题了。

哦,是双核啊  
  CPU的种类越多,对偶们可是越麻烦

自已顶一下,分不够,还可以给100分。  
 

不是吧,没有知道?

posted @ 2009-05-26 17:27 delphi2007 阅读(573) | 评论 (0)编辑 收藏

用控件spcomm写的上位机程序 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061125143154259.html
我先用上位机给单片机发数据,单片机接收到数据后在发给上位机并显示出来.问什么上位机接收不到单片机发给的数据,怎么知道上位机已经给单片机发数据了.我的单片机程序好用我已经用串口助手调试过了,谢谢  
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls,   SPComm;  
   
  type  
      TForm1   =   class(TForm)  
          Memo1:   TMemo;  
          Button1:   TButton;  
          Button2:   TButton;  
          Button3:   TButton;  
          Button4:   TButton;  
          Button5:   TButton;  
          ComboBox1:   TComboBox;  
          Label1:   TLabel;  
          Button6:   TButton;  
          Comm1:   TComm;  
          Edit1:   TEdit;  
          procedure   Button3Click(Sender:   TObject);  
          procedure   Button2Click(Sender:   TObject);  
          procedure   Button1Click(Sender:   TObject);  
          procedure   Button4Click(Sender:   TObject);  
          procedure   Comm1ReceiveData(Sender:   TObject;Buffer:pointer;BufferLength:Word);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
  var  
      Form1:   TForm1;  
   
   
  implementation  
   
  {$R   *.dfm}  
   
  procedure   TForm1.Comm1ReceiveData(Sender:   TObject;Buffer:pointer;BufferLength:Word);  
  var  
  data:string;  
  begin                   //接收数据  
  SetLength(data,BufferLength);  
  move(Buffer^,pchar(data)^,Bufferlength);  
  Memo1.lines.Add(data);  
  Memo1.Invalidate;  
   
  end;  
  procedure   TForm1.Button3Click(Sender:   TObject);  
  begin  
  Form1.Close;  
  end;  
  procedure   TForm1.Button2Click(Sender:   TObject);  
  begin  
  comm1.StopComm   ;  
  button1.Enabled:=true   ;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
  try  
  //comm1.CommName:='com'+inttostr(combobox1.ItemIndex);     //选择端口号  
  comm1.CommName=com1;  
  comm1.BaudRate:=9600;  
  comm1.StartComm;  
  button1.Enabled:=false;  
  button2.Enabled:=true;  
  button3.Enabled:=true;  
  button4.Enabled:=true;  
  button5.Enabled:=true;  
        except  
              ShowMessage('打开串口错误!');  
  end;  
  end;  
   
  procedure   TForm1.Button4Click(Sender:   TObject);  
  var  
  str:string;  
  begin                           //发送数据  
  str:=   Edit1.Text;  
  form1.comm1.writecommdata(pchar(str),length(str));  
  end;  
  end.

用双串口或虚拟串口调试  
  另外你的spcomm控件的属性值设置正确了没?

spcomm的所有bool属性都设成false   试试

posted @ 2009-05-26 17:27 delphi2007 阅读(418) | 评论 (0)编辑 收藏

求 超市计费系统思路! Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061125125947260.html
如标题        
        我在图书馆借了本书上面有一个超市管理系统的     他的做发是用DELPHI+SQL   SERVER     一个DATA   MODULE层负责连接数据库(ADOquery,ADOconnection,datasetprovider)然后封装了一些类负责具体功能,再然后就是客户端了(clientdataset,datasource)   !    
        我这是毕业设计,但是老师说让做成网络版的,马上就到期限了我很着急,他要求在两个机器上进行演示!一个装客户端一个装服务端       我不大明白这个网络版的怎么实现!请诸位给我个思路,然后告诉我用什么控件实现!是超市几费系统的。的越详细越好!  
          谢谢了!!!!!!

你所说的也可以试试!  
  也可以到网上找例子,学习!

自己顶一下!有人回答我吗

我晕啊!没人理我嘛???

???????????????

一台客户端的话,还分什么网络版单机版。你这个老师也是吃干饭的,把数据库放在另一台机器上,把你的程序直接连一下数据库。糊弄一下就行了。

大部分大学老师的都只懂理论、忽悠......

你说的是三层的三发啊。  
  有COM+/COBRA/WEB   SERVICES这几种实现技术  
  DELPHI有一组MIDAS中间层组件(CLIENTDATASET就是了)用来实现。  
  你可以参考一些这方面的资料啊。

老师有病啊,这个东西也做三层,一个数据库一个终端不就结了。

1先装一个SQLSERVER服务器,做为数据库服务器  
  2然后正常开发,用ado联接就行,开发方式像单机版一样.  
  1与2在同一台机器上就行.  
   
  3找一个机器装个sqlserver客户端配置好,保证他能联到服务器上.  
  4把2中开发的可执行文件拷过来,执行就行.

posted @ 2009-05-26 17:27 delphi2007 阅读(154) | 评论 (0)编辑 收藏

如何实现串口控制 我刚开始学delphi 希望得到帮助 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061124212852261.html
界面上MaskEdit输入个4位数字  
   
   
   
  最后该4位数字的2进制作为高16位,它们的反码作为低16位,传输到指定串口,先传高位后传低位.  
   
  传输前置低电平一定时间表示开始传输,传输完毕后置高电平.  
   
  请问如何实现?  
   
  另外   是不是XP操作系统不允许   内嵌汇编直接对串口操作  
   
  我的需求是不是应该用API函数来实现?

mscomm可以实现,spcomm也可以  
   
  串口的第4和7脚可以作为数字量输出,也就是作为状态给外面  
  MSComm1.DTREnable   :=   true  
  MSComm1.DTREnable   :=   False  
  就可以表示高低电平了  
 

intME   :integer;  
  lowME,highME:integer;  
   
  lowME   :=   intME   and   &FFFF;  
  highME:=   (intME   and   &FFFF0000)   shr   16;  
   
  传输前先MSComm1.DTREnable   :=   False表示第4脚低电平  
   
  传输后先MSComm1.DTREnable   :=   true表示第4脚高电平  
   
   
 

highME:=   (intME   and   &FFFF0000)   shr   16;  
  右移   直接   highME:=   intME     shr   16;

posted @ 2009-05-26 17:27 delphi2007 阅读(228) | 评论 (0)编辑 收藏

请大家支招 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061124203130262.html
我想编个小软件,监视一个网站是否有更新,有的话就通知我,并且把更新的页面地址显示出来,具体该怎么做呢,希望大虾们指点一二

是哪个地址更新??

每隔一段时间把网页内容get下来,跟原来的比较,内容不一致,就表示有更新。这样?

ls的方法   可行    
  另外就是   网站提供其他接口   象rss   =

能否说的详细些呢?大的方向我也知道的

能否说的详细些呢?大的方向我也知道的  
   
   
  要多具体,具体的实现只有根据你现有的技术积累来决定,完成一个软件目标,往往并非只有一条路可以走。

posted @ 2009-05-26 17:27 delphi2007 阅读(138) | 评论 (0)编辑 收藏

过路的,还是进来看看吧。 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061124202604263.html
大家好。有谁有   Nokia   tool   by   Rolis   Var   1.8   这个软件。能否把里面用DELPHI做的源代码发给在下。在下不剩感激。  
      或者是把里面有一种叫M   BUS   语言指令能否也发给在下。希望各大高手的支持。因为在下是初学DELPHI,不懂敬请原谅。谢谢。
posted @ 2009-05-26 17:27 delphi2007 阅读(153) | 评论 (0)编辑 收藏

小灵通短信猫,请高手支着 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061124165523264.html
我这里有个这样的短信猫,但是发短信息的时候,似乎不稳定;  
  我是通过   直接写入AT指令的方法编写程序,现在,等待时间为8秒时大概是可以发送短信息,而且返回的成功和失败的结果似乎也正确;  
  但是有个问题,如果我发送失败的太多了,短信猫好像是死机了一个样,  
  手工的把电源关掉,然后再打开猫的电源好像又可以用了;  
   
  我想解决这个问题,能不能用软件来控制reset;  
  不知道那位高手知道怎样解决;不胜感激!!  
 

呵呵   占个沙发关注     推荐LZ下个程序看看人家如何实现的    
   
  http://www.2ccc.com/article.asp?articleid=2371  
   
  http://www.2ccc.com/article.asp?articleid=129  
   
 

你用的小灵通猫是哪个厂家的一般厂家应该提供一些调用的库

我的短信猫是   sms_218   请问如何,实现短信猫的下电和上电呢;如何控制它的工作状态呢?

好像,没有人知道阿?

这种高级货,只有用过的人才知道啊,呵呵,帮你顶!

谢谢,大家,我看csdn的大虾们是不是变得吝啬了?

750元销售诺亚短信群发软件,短信猫,短信设备,小灵通设备/短信猫池    
   
   
   
  您好:  
  诺亚短信群发器(短信猫)(全国最低价)=750元/台  
  诺亚短信群发软件(支持40通道)=950元    
  诺亚短信开发接口(无时间和使用次数的限制)=800元  
  我公司现面向全国诚征短信产品代理商,全线代理我公司产品,代理我公司产品具有投资少,见效快,收益高等特点!有意者请速与我公司联系:13391791746/010-87416460,谢谢!  
  我公司郑重承诺:诺亚短信开发接口与诺亚短信设备(短信猫)无任何绑定限制(无时间和使用次数的限制):即第一次买入后,以后无需再次购买此开发接口,请广大用户在购买时注意咨询,如有疑问,欢迎来电咨询!诺亚短信设备(短信猫)为全国最低价!    
  我公司还供应以下软件产品(短信群发/群发短信/短信群发软件/短信开发接口/短信开发包/短信群发软件/短信卡/短信猫/小灵通短信猫/短信群发器/短信群发机):  
  诺亚·短信开发接口        诺亚·短信群发·办公版  
  诺亚·短信防伪·系统   诺亚·短信群发·广告版    
  诺亚·短信查询·系统   诺亚·短信群发·网络版  
  诺亚·短信家校通·版   诺亚·短信群发·物流版  
  诺亚·短信群发卡(短信卡)诺亚·网站·防恶点软件(诺亚网站卫士可防百度,GOOGLE,YAHOO等恶意点击行为)(500元/年,标配容量:5万条)  
  诺亚·短信群发·集团版(群发短信资费:8分/条)  
  注:全部产品售后服务为:3年包换!  
  我公司可为广大用户办理货到付款业务!

深圳方寸科技提供专业硬件短信接口  
   
  1.方寸GSM-Modem   短信平台  
   
  GSM-Modem   短信平台,无需联网,只需一台电脑,一个短信猫(或手机),一个短信开发接口,就可轻松建立短信服务器,可实现短信收发,短信互动等功能,一台电脑可以连接多个短信猫硬件,从而提高吞吐量。  
   
  2.方寸短信数据库接口(手机短信接口,短信二次开发控件)  
   
  通过本数据库接口,能使你现有的系统(如OA、CRM、ERP等系统)轻松实现无线办公功能,无论你用的是哪种开发语言(VB\VC\VFP\asp\jsp\java\pb\delphi...),只要你的系统能读写数据库即可对接!你仅需要在指定的表中添加记录,本接口程序就自动进行发送短信了,收到的短信会自动保存到数据库里,所以,您不需要了解任何有关数据通信方面的知识,就可实现手机短信的收发等功能!    
   
  3。买方寸短信猫送短信接口,短信群发软件  
   
  电话:0755-25996144  
  联系人:陈先生  
  网址:http://www.fcwww.com  
  qq:393376247

本人有一套wavecom短信猫收发短信和语音呼叫系统,短信单/群发,语音单/多呼叫,自动支持超过70文字的短信,运行稳定,可靠!  
  联系QQ:258350674   石先生  
  13073425033  
 

posted @ 2009-05-26 17:27 delphi2007 阅读(248) | 评论 (0)编辑 收藏

哪位高手知道如何做网络校时 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061124153436265.html
网上有网络校时的小软件,不知如何做,请高手指导一下,感谢先!

获取-设置   over

用IdSNTP   获取时间服务器上的时间,然后修改系统时间.  
  调用IdSNTP1.SyncTime,如果调用成功则IdSNTP1.DateTime是时间服务器上的时间  
  IdSNTP1.Host:='time.windows.com';  
  IdSNTP1.Port:=123;  
  if   IdSNTP1.SyncTime   then  
  begin  
      变量:=IdSNTP1.DateTime;  
  end

谢谢楼上的指点,我用time.nist.gov获取成功!

posted @ 2009-05-26 17:27 delphi2007 阅读(341) | 评论 (0)编辑 收藏

Delphi调用C#写的WebService时中文乱码的问题? Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061124145709266.html
C#中WebMethod代码如下:  
  [WebMethod]  
  public   string   Test(string   strSend)  
  {  
        return   strSend;  
  }  
   
  可在Delphi下调用该WebService时,strSend如果带有中文的话,就返回的乱码。  
  比如strSend="中国"   返回却是??  
   
  这个应该怎么解决呢?

这样看,   delphi   这边的定义应该是     functon   (   strSend:   Widestring):   WideString;   的吧

对啊,delphi   这边的定义就是     functon   (   strSend:   Widestring):   WideString;   的吧

没调用过   路过   帮顶~~

更改属性  
   
  HTTPRIO1.converter.options.soUTF8inHeader   :=   True  
   
  HTTPRIO1.httpwebnode.useUTF8inHeader   :=   True

posted @ 2009-05-26 17:27 delphi2007 阅读(1163) | 评论 (1)编辑 收藏

请问怎么获取对方IP地址 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061124121746267.html
请问怎么获取对方IP地址?

ping   对方

对方是谁?如何联系的?

posted @ 2009-05-26 17:27 delphi2007 阅读(502) | 评论 (0)编辑 收藏

网站自动登陆、数据下载问题!紧急求助 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiNetwork/html/delphi_20061124111611268.html
各位高手,本人正在编制一个网站资料自动下载程序,程序要求如下:  
  1、自动登录到资料发布的网站  
  2、自动填写用户密码后,自动点击登陆到网站中  
  3、下载指定页面数据中的数据内容  
      不知各位高手是否能够提供解决问题的思路,感谢各位高手!  
  我目前已经通过webbrowse控件解决了单纯页面数据下载的问题,但是自动点击登陆问题还没有解决,请高手帮忙!

我开发了一套网站数据采集系统:  
  本系统可采集网站的产品、新闻等信息,保存到数据库中。系统功能强大,操作方便,容错性高。  
  1、可以定义多个要采集数据的网站;  
  2、可以定义采集数据的页面深度,及采集参数;  
  3、可以处理复杂的翻页情况;  
  4、支持采集任务保存,可以控制采集任务的停止和继续;  
  5、支持将采集数据的网页存为图片,以备人工检查数据;  
  6、支持常用的编码转换;  
  7、支持多种界面风格;  
  8、如果需要可以增加自动登录功能;  
  有意者,请联系QQ:17092674

posted @ 2009-05-26 17:27 delphi2007 阅读(177) | 评论 (0)编辑 收藏

仅列出标题
共34页: 1 2 3 4 5 6 7 8 9 Last