高分求一个禁止网卡的程序。
我有2块网卡,我想在机器自动启动时,自动禁止其中一块网卡。 断掉那个网卡连接的网络。
有什么办法可以禁止掉?
问题点数:0、回复次数:8Top
1 楼jussoo(cuteboy)回复于 2003-09-02 22:09:26 得分 0
UPTop
2 楼cnxiaohai(相声独一处(回归,为了编程,为了C,为了CSDN))回复于 2003-09-02 22:21:26 得分 0
win XP里不是可以在“网络连接”里面禁用吗?
WIN 98 里在“设备管理” 里也可以禁用Top
3 楼scalps(悲伤的梦)回复于 2003-09-03 00:01:14 得分 0
在设备管理器里把它的驱动给停用不就可以了。
没了驱动看它怎么办,我就是把握软驱给这样禁用的。
Top
4 楼fullsail(远航)回复于 2003-09-03 00:20:53 得分 0
断掉一块,在系统中禁用这块不就可以了。
如果想两块都不用,把DHCP客户端的服务停了。呵呵。Top
5 楼java_xzy(savage)回复于 2003-09-03 21:28:50 得分 0
我要程序自动控制。Top
6 楼qianmo(广袤)回复于 2003-09-04 08:51:07 得分 0
biosTop
7 楼Skt32(荒城之月)回复于 2003-09-04 19:23:47 得分 0
#include "stdafx.h"
#include <tchar.h>
#include <windows.h>
#include <setupapi.h>
#pragma comment (lib,"setupapi")
#define UnknownDevice TEXT("<Unknown Device>")
HDEVINFO hDevInfo = 0;
BOOL StateChange(DWORD NewState, DWORD SelectedItem,HDEVINFO hDevInfo)
{
SP_PROPCHANGE_PARAMS PropChangeParams = {sizeof(SP_CLASSINSTALL_HEADER)};
SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)};
HCURSOR hCursor;
//
// This may take a while :^(
//
hCursor = SetCursor(LoadCursor(NULL, IDC_WAIT));
//
// Get a handle to the Selected Item.
//
if (!SetupDiEnumDeviceInfo(hDevInfo,SelectedItem,&DeviceInfoData))
{
printf("EnumDeviceInfo");
return FALSE;
}
//
// Set the PropChangeParams structure.
//
PropChangeParams.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
PropChangeParams.Scope = DICS_FLAG_GLOBAL;
PropChangeParams.StateChange = NewState;
if (!SetupDiSetClassInstallParams(hDevInfo,
&DeviceInfoData,
(SP_CLASSINSTALL_HEADER *)&PropChangeParams,
sizeof(PropChangeParams)))
{
printf("SetClassInstallParams");
SetCursor(hCursor);
return FALSE;
}
//
// Call the ClassInstaller and perform the change.
//
if (!SetupDiCallClassInstaller(DIF_PROPERTYCHANGE,
hDevInfo,
&DeviceInfoData))
{
printf("SetClassInstallParams");
SetCursor(hCursor);
return TRUE;
}
SetCursor(hCursor);
return TRUE;
}
BOOL IsClassNet( GUID * ClassGuid )
{
#define MAX_NUM 50
HKEY hKeyClass;
LONG lRet;
char ClassType[MAX_NUM];
char NetClass[MAX_NUM] = "Net";
DWORD dwLength = MAX_NUM,dwType = REG_SZ;
if (hKeyClass = SetupDiOpenClassRegKey(ClassGuid,KEY_READ))
{
lRet = RegQueryValueEx(hKeyClass,
TEXT("Class"),
NULL, &dwType, LPBYTE(ClassType), &dwLength);
RegCloseKey(hKeyClass);
if (lRet != ERROR_SUCCESS)
return FALSE;
if (!strcmp(ClassType,NetClass))
return TRUE;
}
return FALSE;
}
int main(int argc, char* argv[])
{
if (INVALID_HANDLE_VALUE == (hDevInfo =
SetupDiGetClassDevs(NULL,NULL,0,
DIGCF_PRESENT|DIGCF_ALLCLASSES)))
{
printf("GetClassDevs");
return 0;
}
DWORD i, Status, Problem;
SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)};
HKEY hKeyClass;
char DeviceName[200];
for (i=0;SetupDiEnumDeviceInfo(hDevInfo,i,&DeviceInfoData);i++)
{
if (IsClassNet(&DeviceInfoData.ClassGuid))
{
printf(" the class's index is %d\n",i);
//
//DICS_DISABLE-->禁用网络
//DICS_ENABLE--->恢复网络
//
if (StateChange(DICS_ENABLE,i,hDevInfo))
printf("NetWork stopped");
}
}
return 0;
}
Top
8 楼java_xzy(savage)回复于 2003-09-06 20:05:41 得分 0
大哥,我不会C,上面那个程序能不能编译一下,发到我的信箱。 java_xzy@163.netTop




