使用程序模仿Windows Mobile的”无线管理器”关闭无线模块

本文提供了一个在Windows Mobile 5.0 AKU3.5环境下实现飞行模式功能的代码示例。该代码能够关闭GSM模块及其它无线设备如蓝牙和Wi-Fi等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

简介: 如果此代码可以达到”飞行模式”的相同效果.实例代码关闭了GSM模块,当前你可以通过switch pTD->DeviceType的case关闭如蓝牙/WIFI等其它无线模块.代码如下:

// Radio Off, passed on Windows Mobile 5.0 AKU3.5 [3/12/2007 LiYin]
#include "Wrlspwr.h"

HRESULT RadioOff()
{
typedef void (CALLBACK *_FreeDeviceList)(RDD *pRoot);
typedef HRESULT (CALLBACK *_ChangeRadioState)(
RDD *pDev,
DWORD dwState,
SAVEACTION sa
);
typedef HRESULT (CALLBACK *_GetWirelessDevices)(
RDD **pDevices,
DWORD dwFlags
);
_GetWirelessDevices lpGetWirelessDevices;
_ChangeRadioState lpChangeRadioState;
_FreeDeviceList lpFreeDeviceList;

HINSTANCE hDll = LoadLibrary( TEXT("OSSVCS.DLL") );
if ( hDll == NULL )
{
return E_FAIL;
}

lpGetWirelessDevices =
(_GetWirelessDevices)GetProcAddress(hDll,MAKEINTRESOURCE(276));
lpChangeRadioState =
(_ChangeRadioState)GetProcAddress(hDll,MAKEINTRESOURCE(273));
lpFreeDeviceList =
(_FreeDeviceList)GetProcAddress(hDll,MAKEINTRESOURCE(280));

if (lpGetWirelessDevices == NULL||
lpChangeRadioState == NULL||
lpFreeDeviceList == NULL)
{
FreeLibrary( hDll );
return E_FAIL;
}

RDD * pDevice = NULL;
RDD * pTD;
HRESULT hr = S_OK;

if( S_OK != lpGetWirelessDevices(&pDevice, 0) ) return E_FAIL;
if (pDevice)
{
pTD = pDevice;
// loop through the linked list of devices
while (pTD)
{
switch (pTD->DeviceType)
{
case POWER_PHONE:
if (pTD->dwState)
{ // The phone is on. Turn it off and save as the
//preferred state.
MessageBox( GetForegroundWindow(),
TEXT("即将关闭射频"),
NULL, MB_OK|MB_ICONINFORMATION );
hr = lpChangeRadioState(pTD, 0, POWER_DONT_SAVE);
}
break;
default:
break;
}
pTD = pTD->pNext;
}
// Free the list of devices retrieved with GetWirelessDevices()
lpFreeDeviceList(pDevice);
}

FreeLibrary( hDll );

return hr;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值