捐赠 | 广告 | 注册 | 发布 | 上传 | 关于我们    
  沪ICP备05001939号 DELPHI盒子 | 盒子论坛 | 盒子文章 | 盒子问答悬赏 | 最新更新 | 论坛检索 | 下载中心 | 高级搜索    
  精品专区 | 繁體中文 | 奖励公告栏 | 直通车账号登陆 | 关闭GOOGLE广告 | 临时留言    
 
广告
评论:机房IP计算机自动修改
400109 28083 2007/2/14 2:00:46
如果有多个网卡,可以考虑使用数组来记录下每块网卡对应的GUI
wshwsh 28075 2007/2/13 6:17:33
 //1.获取网卡GUI----------
  for i:=1 to 10 do
  begin
    Registry.CloseKey;
    if Registry.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\'+IntToStr(i),False) then
    begin
      ServiceName :=Registry.ReadString('ServiceName');
      break;
    end
  end;
  Registry.CloseKey;
如果网卡驱动过多次,注册表中残留上个网卡信息,可能有问题。
是否把BREAK;这句删除。
400109 28040 2007/2/9 14:08:11
因全部代码中,有涉及到敏感内容(网吧收费系统)只能在此处贴出设置注册表部分的代码给大家.希望能对各位有所帮助

//----------新系统设置----------
function SetReg(IP,AComputerName:String):String;
var
  Registry:TRegistry;
  i:integer;
  ServiceName,Key,C,Path,Gateway,Mask:String;
  BootIni:TiniFile;
  attr : DWORD;
  buf: array[0..11] of Byte;//=($39,$9c,$11,$d0,$00,$00,$7e,$00,$00,$00,$00,$00);
  buf1:array[0..3] of Byte;
begin
  IP := Trim(IP);
  AComputerName := Trim(AComputerName);
  buf[0]:= $39;
  buf[1]:= $9c;
  buf[2]:= $11;
  buf[3]:= $d0;
  buf[4]:= $00;
  buf[5]:= $00;
  buf[6]:= $7e;
  buf[7]:= $00;
  buf[8]:= $00;
  buf[9]:= $00;
  buf[10]:= $00;
  buf[11]:= $00;

  buf1[0]:= $00;
  buf1[1]:= $00;
  buf1[2]:= $00;
  buf1[3]:= $00;

  ServiceName := '';
  Registry:=TRegistry.Create;//创建TRegistry类的变量

  Registry.RootKey:=HKEY_LOCAL_MACHINE;//打开注册表中HKEY_CLASSES_ROOT根键
  //1.获取网卡GUI----------
  for i:=1 to 10 do
  begin
    Registry.CloseKey;
    if Registry.OpenKey('SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\'+IntToStr(i),False) then
    begin
      ServiceName :=Registry.ReadString('ServiceName');
      break;
    end
  end;
  Registry.CloseKey;
  if ServiceName='' then exit;
  Key :=  'CurrentControlSet';
  IP := IP+#0#0;
  for i :=0 to 10 do
  begin
    //1.计算机网卡信息设置
    Gateway := '192.168.0.1';
    Mask := '255.255.255.0';
    Registry.RootKey:=HKEY_LOCAL_MACHINE;//打开注册表中HKEY_CLASSES_ROOT根键
    if Registry.OpenKey('SYSTEM\'+Key+'\Services\Tcpip\Parameters\Interfaces\'+ServiceName,False) then
    begin
       Registry.WriteInteger('EnableDHCP', 0);       //禁用DHCP
       RegSetValueEx(Registry.CurrentKey,PChar('DefaultGateway'), 0,REG_MULTI_SZ, @Gateway[1], Length(Gateway));  //添加网关
       RegSetValueEx(Registry.CurrentKey,PChar('SubnetMask'), 0,REG_MULTI_SZ, @Mask[1], Length(Mask));          //添加隐码
       RegSetValueEx(Registry.CurrentKey,PChar('IPAddress'), 0,REG_MULTI_SZ, @IP[1], Length(IP));          //设置IP地址
    end;
    Registry.CloseKey;
    
    //2.设置计算机名----------
    if Registry.OpenKey('SYSTEM\'+Key+'\Services\Tcpip\Parameters',False) then
    begin
       Registry.WriteString('NV Hostname',AComputerName);  //设置计算机名
       Registry.WriteString('Hostname',AComputerName);     //设置主机名
    end;
    Registry.CloseKey;

    if Registry.OpenKey('SYSTEM\'+key+'\Control\ComputerName\ComputerName',False) then
       Registry.WriteString('ComputerName',AComputerName);
    Registry.CloseKey;
    if Registry.OpenKey('SYSTEM\'+key+'\Control\ComputerName\ActiveComputerName',False) then
       Registry.WriteString('ComputerName',AComputerName);
    Registry.CloseKey;
    Key := 'ControlSet'+copy(IntToStr(1001+i+1),2,3);
  end;

  //隐藏桌面上的网上邻居
  Registry.CloseKey;
  if Registry.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel',True) then
  Registry.WriteInteger('{208D2C60-3AEA-1069-A2D7-08002B30309D}',1);
  Registry.CloseKey;


  //----------隐藏H,L盘 ----------
  Registry.RootKey:=HKEY_CURRENT_USER;//打开注册表中根键
  if Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\Explorer',True) then
  Registry.WriteInteger('NoviewOnDrive',$80);
  Registry.WriteInteger('NoDrives',$880);

  //----------隐藏XP系统中的设置----------
  //隐藏桌面上的"网上邻居" 图标
  Registry.WriteInteger('NoNetHood',1);
  Registry.WriteInteger('DisallowCpl',1);
  //隐藏指定的控制面板项目
  Registry.WriteInteger('ForceClassicControlPanel',1);
  //强制为传统控制面板样式
  Registry.WriteInteger('NoNetworkConnections',1);
  //隐藏开始的设置中网络和拨号连接
  Registry.WriteInteger('ClearRecentDocsOnExit',1);
  //退出系统自动清除历史记录,包括文档、运行和查找
  Registry.WriteInteger('Intellimenus',1);
  //禁止个性化菜单
  Registry.WriteInteger('NoComputersNearMe',1);
  //隐藏网上邻居中我附近的计算机
  Registry.WriteInteger('NoDriveTypeAutoRun',$000000ff);
  //取消自动运行
  Registry.WriteInteger('NoInstrumentation',1);
  //关闭用户跟踪
  Registry.WriteInteger('NoManageMyComputerVerb',1);
  //隐藏"我的电脑"右键菜单的"管理
  Registry.WriteInteger('NoNetConnectDisconnect',1);
  //禁止使用资源管理器或网上邻居映射或断开网络驱动器
  Registry.WriteInteger('NoPropertiesMyDocuments',1);
  //删除我的文档右键菜单的属性
  Registry.WriteInteger('NoSaveSettings',1);
  //退出时不保存某些设置
  Registry.WriteInteger('StartMenuLogOff',1);
  //取消〖注销〗项(不影响安全模式)
  Registry.WriteInteger('NoLogoff',0);
  //注销
  Registry.WriteInteger('NoRun',0);
  //运行
  Registry.WriteInteger('NoClose',0);
  //禁用关闭系统/关闭计算机

  //删除桌面上的网上邻居
  Registry.CloseKey;
  if Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel',True) then
  Registry.WriteInteger('{208D2C60-3AEA-1069-A2D7-08002B30309D}',1);

  //隐藏显示属性中的页面[桌面]
  Registry.CloseKey;
  if Registry.OpenKey('Software\Microsoft\Windows\CurrentVersion\Policies\System',True) then
  Registry.WriteInteger('NoDispBackgroundPage',1);
  Registry.CloseKey;

  //真正隐藏文件和文件夹
  Registry.RootKey:=HKEY_LOCAL_MACHINE;//打开注册表中根键
  if Registry.OpenKey('SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL',True) then
  Registry.WriteInteger('CheckedValue',2);
  Registry.WriteString('Type','radio');
  Registry.CloseKey;

{  //消除快捷方式字样
  Registry.RootKey:=HKEY_USERS;//打开注册表中根键
  if Registry.OpenKey('.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explorer',true) then
  Registry.WriteBinaryData('Link',buf1,4);
  Registry.CloseKey;  }

  if Registry.OpenKey('SYSTEM\MountedDevices',False) then
  if Registry.ValueExists('\DosDevices\F:') then
  begin
    if Registry.ValueExists('\DosDevices\H:') then Registry.DeleteValue('\DosDevices\H:');
    if Registry.ValueExists('\DosDevices\L:') then Registry.DeleteValue('\DosDevices\L:');
    Registry.RenameValue('\DosDevices\E:','\DosDevices\H:');
    Registry.RenameValue('\DosDevices\F:','\DosDevices\L:');
  end;
  //添加网众E盘
  Registry.WriteBinaryData('\??\Volume{124d9bea-76ea-11db-a206-000b2f076879}',buf,12);
  Registry.WriteBinaryData('\DosDevices\E:',buf,12);
  Registry.CloseKey;
  Registry.Free;     

  //设置启动菜单的等待时间为0秒
  FileSetAttr('c:\boot.ini', 0);
  BootIni := TIniFile.Create('c:\boot.ini');
  BootIni.WriteInteger('boot loader','timeout',0);
  BootIni.Free;
  attr := attr or (faArchive);
  attr := attr or ($00000001);
  attr := attr or (faHidden);
  attr := attr or (faSysFile);
  FileSetAttr('c:\boot.ini', attr);
    
end;
edust 27992 2007/2/7 13:28:43
能共享 就是可敬佩了!
wshwsh 27983 2007/2/6 20:26:01
修改掩码,网关,和主.备DNS也很容易呀,查看NETSH参数,调用即可:)
400109 27981 2007/2/6 18:56:58
呵呵,即然如此,你加我QQ,我发你一份,我的QQ:46643663
hyxq 27960 2007/2/5 22:07:06
乱不要紧啊,主要是能提供给我们就习就可以了啊。
400109 27924 2007/2/4 8:18:42
功能一般,严格来说,算不上自动修改.
我自己也曾写过自动修改IP,计算机名,网关等的程序,主要是用于网吧的,母盘镜像包还原后,一开机即可全部自动设置好所有需要设置的东西.除了最后一步安装还原软件需要点击一次"Next"和"Finish"按钮外,无需再作任何多余的操作. ^_^ 代码有点乱,不好意思发上来
abubomb 27915 2007/2/3 12:41:56
谢谢提供.
要是也能修改掩码,网关,和主.备DNS就好了.
第一页 上一页 下一页 最后页 有 9 条纪录 共1页 1 - 9
 用户名:
 密 码:
自动登陆(30天有效)
 
  DELPHI盒子版权所有 1999-2023 V4.01 粤ICP备10103342号-1 更新RSS列表