1 首先建个智能设备项目的工程,然后往里面引用这四个外部引用,这些dll是OpenNETCF 2.3版里面的dll,要使用的话可以去免费下载Download the Community Edition (Free)
安装后找找dll就行了。这4个dll其实在编码中只会用到OpenNetCF.NET中的NetworkInformation命名空间
2 先讲讲怎么打开wifi吧,网络上流传着好多打开wifi的通用代码,我也copy了一份,
static private string keyValue = null;
public enum CEDEVICE_POWER_STATE
{
PwrDeviceUnspecified = -1,
/* D0 = 0,
D1,
D2,
D3,
D4,
*/ FullOn = 0,
LowPower = 1,
Standby = 2,
Sleep = 3,
Off = 4,
PwrDeviceMaximum
}
[DllImport("coredll.dll")]
public static extern int DevicePowerNotify(string device, CEDEVICE_POWER_STATE state, int flags);
[DllImport("coredll.dll")]
public static extern int SetDevicePower(string pvDevice, int df, CEDEVICE_POWER_STATE ds);
[DllImport("coredll.dll")]
unsafe public static extern int GetDevicePower(string pvDevice, int df, CEDEVICE_POWER_STATE* pds);
static private void setKeyValue()
{
string wifiGUID = "{98C5250D-C29A-4985-AE5F-AFE5367E5006}";
string keyName = "System\\CurrentControlSet\\Control\\POWER\\State";
RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(keyName);
foreach (string val in registryKey.GetValueNames())
{
if (val.IndexOf(wifiGUID) != -1)
{
keyValue = val;
break;
}
}
registryKey.Close();
}
/// <summary>
/// "{98C5250D-C29A-4985-AE5F-AFE5367E5006}\\TNETWLN1"
/// </summary>
static unsafe public void wifi_power_on()
{
try
{
if (keyValue != null)
{
DevicePowerNotify(keyValue, CEDEVICE_POWER_STATE.FullOn, 1);
SetDevicePower(keyValue, 1, CEDEVICE_POWER_STATE.FullOn);
}
}
catch (Exception ex)
{
}
}
主要是利用了DevicePowerNotify和SetDevicePower这两个Windows CE 5.0里面的API,然后传入设备名,而wifi设备名则是通过在注册表里面获得。还有一个关闭wifi的,这里就不赘述了,而打开wifi差不多