CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

如何在一个局域网内控制其它电脑的开关?

楼主wj211sz()2003-11-04 19:32:52 在 Delphi / VCL组件开发及应用 提问

在一个局域网内,如何控制其他机器的开机、关机,并且运行相关程序? 问题点数:0、回复次数:16Top

1 楼saien(精益求精)回复于 2003-11-04 19:55:32 得分 0

在Coms里设置即可,但必须的主板支持才行。Top

2 楼vagerent(上午的绝缘杯)回复于 2003-11-04 20:21:56 得分 0

如果想让其他电脑运行相关程序就得在对方机子上装木马阿Top

3 楼zhourongbiao(Edward)回复于 2003-11-04 20:53:39 得分 0

用个Server和client不就好了,在其他机器上装Server,控制机上装client,不过涉及知识较多,比如不同操作系统(98,2000)的关机操作就不同。Top

4 楼wj211sz()回复于 2003-11-04 22:07:53 得分 0

CMOS设置是在硬件方面,如何通过软件控制?让它关机就可以关机,让它开机就可以开机。  
   
  楼上先生说,装Server和Client,请能否再详细点?不同的操作系统调用的参数不同,这个我知道,前面的就不懂,请再详细点。。。谢谢Top

5 楼ncwuhh(愤怒中.....下辈子也要当官)回复于 2003-11-04 22:40:43 得分 0

跟你推荐一个软件"PCAnywhere",很好玩的,你试试。你只要在你的机子上装一个主控端,在你要控制的机子上装一个被控端就可以了.Top

6 楼yxlab()回复于 2003-11-04 22:47:34 得分 0

许多网络教室软件中有类似功能,可以参考一下。控制机发送消息给被控方,被控方收到后做出响应。Top

7 楼nmqhzh(昨夜风)回复于 2003-11-05 00:24:30 得分 0

严格的说,还是硬件控制好些,软件控件多多少少会带来新问题,如内存管理或软件冲突等。  
  新在的主板都支持通过网卡远程启动啊!Top

8 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2003-11-05 00:41:01 得分 0

主板和PCI网卡同时支持,激活WakeOnLAN就可以了  
   
  代码如下  
   
  program   rwu;  
   
  {$APPTYPE   CONSOLE}  
   
  uses  
      SysUtils,   WinSock;  
   
  const  
      LEN_PHYSADDR   =   6;  
   
  var  
      WSAData:   TWSAData;  
      MSocket:   TSocket;  
      SockAddrIn:   TSockAddrIn;  
      RetVal,   OptVal,   i:   Integer;  
      MacAddr:   array[0..5]   of   Byte;  
      MagicData:   array[0..101]   of   Byte;  
      Position:   Longint;  
      SAddr:   string;  
   
  {$R   VERSION.RES}  
   
  function   CheckWinSockResult(ResultCode:   Integer;   const   FuncName:   string):   Integer;  
  begin  
            if   ResultCode   <>   0   then  
            begin  
                      Result   :=   WSAGetLastError;  
                      Writeln(Format(#13#10'Windows   socket   error:   %s   (%d),   on   API   ''%s''.',  
                                                  [SysErrorMessage(Result),   Result,   FuncName]));  
                      Halt;  
            end   else   Result   :=   0;  
  end;  
   
  begin  
            if   ParamCount   <>   1   then  
            begin  
                      Writeln(#13#10'Remote   Wake   Up.'#13#10#13#10   +  
                                      'Usage:   rwu   ethernetaddress'#13#10#13#10   +  
                                      'Example:   rwu   00-B0-D0-15-86-B4'#13#10#13#10   +  
                                      'This   program   is   freeware.'#13#10   +  
                                      'Author:   Vadim   Crits'#13#10);  
                      Halt;  
            end;  
            try  
                  SAddr   :=   Paramstr(1);  
                  if   Length(SAddr)   <>   17   then   Abort;  
                  for   i   :=   1   to   Length(SAddr)   do  
                          if   i   in   [3,   6,   9,   12,   15]   then  
                                if   SAddr[i]   <>   '-'   then   Abort;  
                  for   i   :=   0   to   High(MacAddr)   do  
                  begin  
                            if   Pos('-',   SAddr)   >   0   then  
                                  MacAddr[i]   :=   StrToInt(HexDisplayPrefix   +   Copy(SAddr,   1,   Pos('-',   SAddr)   -   1))  
                            else  
                                  MacAddr[i]   :=   StrToInt(HexDisplayPrefix   +   SAddr);  
                            Delete(SAddr,   1,   Pos('-',   SAddr));  
                  end;  
            except  
                  Writeln(#13#10'Invalid   Ethernet   address.');  
                  Halt;  
            end;  
            CheckWinSockResult(WSAStartup($0101,   WSAData),   'WSAStartup');  
            MSocket   :=   socket(AF_INET,   SOCK_DGRAM,   IPPROTO_IP);  
            if   MSocket   =   INVALID_SOCKET   then   CheckWinSockResult(MSocket,   'socket');  
            OptVal   :=   1;  
            CheckWinSockResult(setsockopt(MSocket,   SOL_SOCKET,   SO_BROADCAST,  
                                                  PChar(@OptVal),   SizeOf(OptVal)),   'setsockopt');  
            FillChar(MagicData,   SizeOf(MagicData),   $FF);  
            Position   :=   LEN_PHYSADDR;  
            while   Position   <   SizeOf(MagicData)   do  
            begin  
                      Move(MacAddr,   Pointer(Longint(@MagicData)   +   Position)^,   LEN_PHYSADDR);  
                      Inc(Position,   LEN_PHYSADDR);  
            end;  
            SockAddrIn.sin_family   :=   AF_INET;  
            SockAddrIn.sin_addr.S_addr   :=   Longint(INADDR_BROADCAST);  
            RetVal   :=   sendto(MSocket,   MagicData,   SizeOf(MagicData),   0,   SockAddrIn,   SizeOf(SockAddrIn));  
            if   RetVal   =   SOCKET_ERROR   then   CheckWinSockResult(RetVal,   'sendto');  
            CheckWinSockResult(closesocket(MSocket),   'closesocket');  
            CheckWinSockResult(WSACleanup,   'WSACleanup');  
  end.Top

9 楼ly_liuyang(Liu Yang LYSoft http://lysoft.7u7.net)回复于 2003-11-05 00:45:47 得分 0

使用网卡开机只能用MAC地址,那个IP没有意义的,也没有IP的存在  
  而其只能在LAN局域网使用的Top

10 楼XDvlper(XDeveloper)回复于 2003-11-05 02:50:22 得分 0

upTop

11 楼wj211sz()回复于 2003-11-05 02:56:11 得分 0

谢谢更多意见来Top

12 楼angelface(§<@#$&^%$>§)回复于 2003-11-05 08:23:12 得分 0

upTop

13 楼adminis(古董)回复于 2003-11-05 08:40:46 得分 0

C/S是可以控制关机,但开机好像不行吗?!  
   
  主板要支持网络唤醒!Top

14 楼txmjs(天地之间)回复于 2003-11-05 08:43:03 得分 0

superlanadmin这个软件看看Top

15 楼zhouzhouzhou(人生程序)回复于 2003-11-05 18:59:28 得分 0

關機了不能實現開機的  
   
  控制其他機器只有兩種可能:  
   
  一、安裝網管程序  
  二、超級用戶控制Top

16 楼mynetlife(爬虫)回复于 2003-11-05 19:22:42 得分 0

通过硬件或网络来实现控制不太好实现因为特定的硬件不一定都支持.  
  我觉得还是通过软件来管理比较好一些.网络管理软件或称远程控制软件都可以完成这些功能.  
  如果是出于恶意的,  
  那就叫木马了,PcAanywhere确实挺好的你可以试试。  
  Top

相关问题

  • 能否控制局域网中机器的开关机?
  • 怎么控制局域网里的电脑上网?
  • 如何控制局域网
  • 用Romote Administrator 从一台用路由器PC控制远方局域网里的每一台电脑吗?
  • 局域网的共享控制问题!
  • 如何控制局域网上网
  • 局域网内XP下电脑互访
  • 再次问,怎么控制局域网里的电脑上网?斑竹帮我看看为什么我刚才提问的帖子打不开啊?
  • 怎么控制某个局域网内的所有电脑任何场下均不能连入外网,包括拨号。
  • 局域网里面的电脑自动ping其它电脑

关键词

  • 控制
  • 主板
  • 软件
  • socket
  • client
  • saddr
  • checkwinsockresult
  • msocket
  • magicdata
  • rwu

得分解答快速导航

  • 帖主:wj211sz

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo