用VC禁用netbios

/*
Code by tangyue
Mail wellsty@sina.com
Msn wells_ty@hotmail.com
*/

#include <stdio.h>
#include <tchar.h>
#include <windows.h>
#include <winreg.h>

#define MY_BUFSIZE 256

void Usage (void);
void ShowVersion(void);

int main (int argc, char *argv[])
{
 int n;
 HKEY hKEY;
 DWORD Number=0;
 DWORD MaxSubKeyLen;
 DWORD i;
 FILETIME ftLastWriteTime;
 
 char data_Set[MY_BUFSIZE];
 char data_Set1[MY_BUFSIZE];
 
 DWORD Maxlen = 256;
 DWORD dwBufLen = MY_BUFSIZE;
 HKEY hKeyAdapter,hKeyNetBios;
 CHAR achKey[MY_BUFSIZE];
 TCHAR adapterNameGet[256];
 DWORD cbData=256;
 long lret;
 
 for (n=1;n<argc;n++) {
  if (argv[n][0] == '-') {
   switch(argv[n][1]) {
    case '?':Usage();
    break;

    case 'v':ShowVersion();
   }
  }
 }

 if(lret = ERROR_SUCCESS != RegOpenKeyEx( HKEY_LOCAL_MACHINE,("SOFTWARE//Microsoft//Windows NT//CurrentVersion//NetworkCards"),0, KEY_READ,&hKEY)){
  fprintf(stderr,"error!/n");
  exit(1);
 }
 
 if(ERROR_SUCCESS!= RegQueryInfoKey( hKEY,NULL,NULL,NULL, &Number,&MaxSubKeyLen, NULL, NULL,NULL,NULL, NULL,NULL)){
  RegCloseKey(hKEY);
  fprintf(stderr,"error/n");
  exit(1);
 }
 
 DWORD dwIndex=0,lpcbname=100;
 long ret;
for (i = 0; i < Number; i++){
 
  ZeroMemory(achKey,100);
  Maxlen = 256;
  cbData = 256;
  
  ret = RegEnumKeyEx(hKEY,i,achKey,&Maxlen,NULL,NULL,NULL,&ftLastWriteTime); 
 
  sprintf((char *)data_Set,"SOFTWARE//Microsoft//Windows NT//CurrentVersion//NetworkCards//%s",achKey);
  RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set,0, KEY_READ,&hKeyAdapter);
  
  RegQueryValueEx(hKeyAdapter, "ServiceName", NULL,NULL, (LPBYTE)adapterNameGet, &cbData);
  
  ZeroMemory(achKey,100);
  Maxlen = 256;
  cbData = 256;
  
  sprintf((char *)data_Set1,"SYSTEM//CurrentControlSet//Services//NetBT//Parameters//Interfaces//Tcpip_%s",adapterNameGet);
  if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,data_Set1,0, KEY_WRITE,&hKeyNetBios)){
   fprintf(stderr,"error/n");
   
  }
  
  DWORD  dwData;
  dwData = 2;
  if (RegSetValueEx(hKeyNetBios,      // subkey handle
            "NetbiosOptions",  // value name
            0,                 // must be zero
            REG_DWORD,         // value type
            (LPBYTE) &dwData,  // pointer to value data
            sizeof(DWORD)))    // length of value data
   
   fprintf(stderr,"Could not set the supported types./n");
  
  RegCloseKey(hKeyAdapter);
  RegCloseKey(hKeyNetBios);  
  
 }
 

 RegCloseKey(hKEY);  
 
 printf("/nNetBios had Disabled!/n");
 return 0;
}

void Usage (void) {
 fprintf(stderr,
 "Usage: netbios [-?] [-v] /n"
 "-?:show help/n"
 "-v:show version/n"
);
 exit(0);
}

void ShowVersion(void) {
 fprintf(stderr,
 "Win/tnetbios/tVer1.0.0/t2004.12.16/n"
 );
 exit(0);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值