如何在Win CE中拨打GPRS/EDGE?
大家好。
我正在开发Windows CE上的Python应用程序,需要连接到互联网(通过GPRS/EDGE)。当我打开设备时,互联网连接不活动。如果我打开Internet Explorer,它就会激活。
我想在我的应用程序中激活连接。我正在尝试使用RasDial函数而不是ctype库来实现这一点,但是我不能让它工作。这是正确的方式,还是我应该做其他的事情?
以下是我当前的代码。ResDial函数不断返回错误87和无效参数。我不知道它到底出了什么问题。
我真的很感激任何形式的帮助。先谢谢你。
选择 | 换行 | 行号
- #encoding: utf-8
- import ppygui as gui
- from ctypes import *
- import os
- class MainFrame(gui.CeFrame):
- def __init__(self, parent = None):
- gui.CeFrame.__init__(self, title=u"Zgodovina dokumentov", menu="Menu")
- DWORD = c_ulong
- TCHAR = c_wchar
- ULONG_PTR = c_ulong
- class RASDIALPARAMS(Structure):
- _fields_ = [("dwSize", DWORD),
- ("szEntryName", TCHAR*21),
- ("szPhoneNumber", TCHAR*129),
- ("szCallbackNumber", TCHAR*49),
- ("szUserName", TCHAR*257),
- ("szPassword", TCHAR*257),
- ("szDomain", TCHAR*16),
- ]
- try:
- param = RASDIALPARAMS()
- param.dwSize = 1462 # also tried 1464 and sizeof(RASDIALPARAMS()). Makes no difference.
- param.szEntryName = u"My Connection"
- param.szPhoneNumber = u"0"
- param.szCallbackNumber = u"0"
- param.szUserName = u"0"
- param.szPassword = u"0"
- param.szDomain = u"0"
- iNasConn = c_ulong(0)
- ras = windll.coredll.RasDial(None, None, param, c_ulong(0xFFFFFFFF), c_voidp(self._w32_hWnd), byref(iNasConn))
- print ras, repr(iNasConn) #this prints 87 c_ulong(0L)
- except Exception, e:
- print "Error"
- print e
- if __name__ == '__main__':
- app = gui.Application(MainFrame(None))
- # create an application bound to our main frame instance
- app.run()
- #launch the app !