3G模块在wince下的自动拨号

 

首先,安装好wince下的3G模块(型号: 华为E1750)驱动,在“网络和拨号连接”中,会出现WCDMA的拨号上网icon。

参考了论坛上的一些答问,找到通过以下代码可以实现wince开机后自动完成拨号。

 

TCHAR szAutoDialEntryName[256] = TEXT("-p-eWCDMA");  //命令参数,注意:将-p-e后面的换成你需要的拨号器就可以

LPCTSTR ProcName = _T("rnaapp.exe");

SHELLEXECUTEINFO lp= {0};

lp.lpFile=ProcName;

lp.cbSize=sizeof(SHELLEXECUTEINFO);

lp.lpVerb=_T("Open");

lp.fMask = SEE_MASK_NOCLOSEPROCESS;

lp.lpParameters = szAutoDialEntryName;   

lp.lpDirectory = NULL;

lp.hInstApp = NULL;

lp.hwnd = NULL;

lp.nShow = SW_HIDE;

  //调用函数

DWORD ret=ShellExecuteEx(&lp);

 

SHELLEXECUTEINFO 的函数原型:

typedef struct _SHELLEXECUTEINFO {

       DWORD cbSize;  

       ULONG fMask;

       HWND hwnd;

       LPCTSTR lpVerb;

       LPCTSTR lpFile;

       LPCTSTR lpParameters;

       LPCTSTR lpDirectory;

       int nShow;

       HINSTANCE hInstApp;

       LPVOID lpIDList;

       LPCTSTR lpClass;

       HKEY hkeyClass;

       DWORD dwHotKey;

       union {

          HANDLE hIcon;

          HANDLE hMonitor;

       } DUMMYUNIONNAME;

      HANDLE hProcess;

} SHELLEXECUTEINFO, *LPSHELLEXECUTEINFO;

 

参数详解:

cbSize

结构大小,以字节为单位。 

fMask

一个标志数组,用来设置其他成员的有效性。

hwnd

可选。执行ShellExecuteEx的窗口句柄,可设为NULL。

lpVerb

指定执行的动作,包括:edit ,explore ,find ,open,print, properties 

lpFile

以/0 结尾的字符串,指出 lpVerb 的操作对象的路径,被系统支持的操作包括文本的 open 、 print等 

lpParameters

可选。运行/打开程序的参数,如果打开的是一个文档,则该项无效 

lpDirectory

可选。指明工作目录的名字,成员没有说明,则默认为当前目录 

nShow

必须。指定打开的程序的显示方式,为SW_值中的一个。 

hInstApp

【out】如果设置SEE_MASK_NOCLOSEPROCESS S值并且ShellExecuteEx 调用成功,则该项的值大于32,如果调用失败,则将设置为 SE_ERR_XXX 的错误值。

lpIDList

一个ITEMIDLIST结构的地址,用来存储成员的特别标识符,当fMask不包括SEE_MASK_IDLIST或SEE_MASK_INVOKEIDLIST时该项被忽略 

lpClass

用以指明文件类别的名字或GUID,当fMask不包括SEE_MASK_CLASSNAME时该项被忽略 

hkeyClass

获得已在系统注册的文件类型的Handle,当fMask不包括SEE_MASK_HOTKEY时该项被忽略

dwHotKey

程序的热键关联,低位存储虚拟关键码(Key Code),高位存储修改标志位(HOTKEYF_),修改标志为(modifier flags)的详细列表请看WM_SETHOTKEY消息的描述,当fmask不包括SEE_MASK_HOTKEY时该项被忽略 

 

DUMMYUNIONNAME 

hIcon 

取得对应文件类型的图标的Handle,当fMask不包括SEE_MASK_ICON时该项被忽略 

hMonitor 

将文档显示在显示器上的Handle,当fMask不包括SEE_MASK_HMONITOR时该项被忽略 

hProcess

指向新启动的程序的句柄。若fMask不设为SEE_MASK_NOCLOSEPROCESS则该项值为NULL。但若程序没有启动,即使fMask设为SEE_MASK_NOCLOSEPROCESS,该值也仍为NULL。 

 

另外还可以编写RAS Dialing的相关代码完成自动拨号工作

 

void CRAS_DemoDlg::RASDialing(){

RASDIALPARAMS rdParams;

HRASCONN hRasConn = NULL;

//初始化拨号参数

rdParams.dwSize = sizeof(RASDIALPARAMS);

wcscpy(rdParams.szEntryName,_T("WCDMA"));

wcscpy(rdParams.szPhoneNumber,_T(""));

wcscpy(rdParams.szCallbackNumber,_T(""));

wcscpy(rdParams.szUserName,_T(""));

wcscpy(rdParams.szPassword,_T(""));

wcscpy(rdParams.szDomain,_T(""));

 

DWORD dwRet;

    dwRet = RasDial(NULL,NULL,&rdParams,0xffffffff,&m_hWnd,&hRasConn);

if (dwRet!=0){

AfxMessageBox(_T("拨号失败"));

}

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值