用VC禁用netbios

王朝vc·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

/*

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);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航