运行Windows CE示例代码时出错

时间:2011-01-27 15:21:38

标签: c# windows-ce

我在Windows CE中有禁用/启用WIFI的示例代码。

[DllImport("coredll.dll", SetLastError = true)]
private static extern int SetDevicePower(string pvDevice, int dwDeviceFlags, DevicePowerState DeviceState);

private enum DevicePowerState : int
{
    Unspecified = -1,
    D0 = 0, // Full On: full power, full functionality 
    D1, // Low Power On: fully functional at low power/performance 
    D2, // Standby: partially powered with automatic wake 
    D3, // Sleep: partially powered with device initiated wake 
    D4, // Off: unpowered 
}

private const int POWER_NAME = 0x00000001;

public Form1()
{
    InitializeComponent();
}

//Utilities.WiFi.FindDriverKey() is simply a function that returns the whole registry key name
//of the key containing the NDIS MINIPORT class GUID defined in he SDK’s pm.h:

private void button1_Click(object sender, EventArgs e)
{
    string driver = Utilities.WiFi.FindDriverKey();
    SetDevicePower(driver, POWER_NAME, DevicePowerState.D0);
}


private void button2_Click(object sender, EventArgs e)
{

    string driver = Utilities.WiFi.FindDriverKey();
    SetDevicePower(driver, POWER_NAME, DevicePowerState.D4);
}


private static string FindDriverKey()
{
    string ret = string.Empty;

    //#define PMCLASS_NDIS_MINIPORT           TEXT("{98C5250D-C29A-4985-AE5F-AFE5367E5006}") 
    //(From "c:\Program Files (x86)\Windows Mobile 6 SDK\PocketPC\Include\Armv4i\pm.h") 
    string WiFiDriverClass = "{98C5250D-C29A-4985-AE5F-AFE5367E5006}";

    foreach (string tmp in Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Control\\Power\\State", false).GetValueNames())
    {
        if (tmp.Contains(WiFiDriverClass))
        {
            ret = tmp;
            break;
        }
    }

    return ret;
}

然而,我收到此错误:

  

当前上下文中不存在名称'Utilities'

为什么我收到此错误?

1 个答案:

答案 0 :(得分:2)

可能是因为FindDriverKey()曾经在Utilities类或命名空间中。只需在调用Utilities.Wifi之前删除FindDriverKey()即可。或者,您可以创建一个Utilities命名空间,然后创建一个名为Wifi的静态类,并将FindDriverKey()函数放在Wifi类中。