/////////批处理开始/////////////
@echo off
@Setlocal ENABLEDELAYEDEXPANSION
@set reg_path_id=
@set reg_path=
@set nic_id=
@set nic_name=@for /f "usebackq tokens=7 delims=\" %%i in (`reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards"`) do (
set reg_path_id=%%i
set "reg_path=HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\!reg_path_id!"
for /f "usebackq tokens=3" %%j in (`"reg query "!reg_path!" | find /i "ServiceName""`) do (
set NIC_id=%%j
  for /f "usebackq skip=2 tokens=3" %%k in (`reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\!nic_id!" /v NTEContextList`) do (if not "%%k" == "\0" (Goto :nic_name))
))
Goto :EOF
:nic_name
@if exist %temp%\reg.temp (del /q %temp%\reg.temp >nul)
@reg export "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\%nic_id%\Connection" %temp%\reg.temp >nul
for /f "usebackq tokens=2 delims==" %%l in (`find /i "Name" %temp%\reg.temp`) do (
set nic_name=%%l
set nic_name=!nic_name:"=!
)
@if exist %temp%\reg.temp (del /q %temp%\reg.temp >nul)echo 值为:%nic_name%
pause>nul
/////////批处理结束/////////////把上面的批处理写成一个delphi函数。

解决方案 »

  1.   

    保存为a.bat
    在delphi中调用
    WinExec('你的路径\a.bat', SW_HIDE);
    如果和可执行文件在同一目录,可直接调用:
    WinExec('a.bat', SW_HIDE);
      

  2.   

    就是一些注册表操作,你看看Registry单元
      

  3.   

    保存为a.bat 这不是废话吗,我还发这个贴做啥。继续等高人来解决。
      

  4.   

    好久没弄BAT了, 看着就晕忽了. 
      

  5.   

    WinExec这个可以执行bat的文件吗
      

  6.   


    没错,先看懂这个批处理的操作,然后用Delphi函数对注册表的操作,从而实现这个批处理的功能。