以前,我曾认为只要不随便运行网友发来的文件就不会中病毒或木马,但后来出现了利用漏洞传播的冲击波、震荡波;以前,我曾认为不上小网站就不会中网页木马,但后来包括国内某知名游戏网站在内的多个大网站均在其首页被黑客挂上了木马。从此,我知道:安全,从来没有绝对的。

  虽然没有绝对的安全,但如果能知已知彼,了解木马的隐藏手段,对于木马即使不能百战百胜,也能做到及时发现,使损失最小化。那么,木马究竟是如何躲在我们的系统中的呢?

  最基本的隐藏:不可见窗体+隐藏文件

  木马程序无论如何神秘,但归根究底,仍是Win32平台下的一种程序。Windows下常见的程序有两种:

  1.Win32应用程序(Win32 Application),比如QQ、Office等都属于此行列。

  2.Win32控制台程序(Win32 Console),比如硬盘引导修复程序FixMBR。

  其中,Win32应用程序通常会有应用程序界面,比如系统中自带的“计算器”就有提供各种数字按钮的应用程序界面。木马虽然属于Win32应用程序,但其一般不包含窗体或隐藏了窗体(但也有某些特殊情况,如木马使用者与被害者聊天的窗口),并且将木马文件属性设置为“隐藏”,这就是最基本的隐藏手段,稍有经验的用户只需打开“任务管理器”,并且将“文件夹选项”中的“显示所有文件”勾选即可轻松找出木马(见图1),于是便出现了下面要介绍的“进程隐藏”技术。

  第一代进程隐藏技术:Windows 98的后门

  在Windows 98中,微软提供了一种能将进程注册为服务进程的方法。尽管微软没有公开提供这种方法的技术实现细节(因为Windows的后续版本中没有提供这个机制),但仍有高手发现了这个秘密,这种技术称为RegisterServiceProcess。只要利用此方法,任何程序的进程都能将自己注册为服务进程,而服务进程在Windows 98中的任务管理器中恰巧又是不显示的,所以便被木马程序钻了空子。

  要对付这种隐藏的木马还算简单,只需使用其他第三方进程管理工具即可找到其所在,并且采用此技术进行隐藏的木马在Windows 2000/XP(因为不支持这种隐藏方法)中就得现形!中止该进程后将木马文件删除即可。可是接下来的第二代进程隐藏技术,就没有这么简单对付了。

  第二代进程隐藏技术:进程插入

  在Windows中,每个进程都有自己的私有内存地址空间,当使用指针(一种访问内存的机制)访问内存时,一个进程无法访问另一个进程的内存地址空间,就好比在未经邻居同意的情况下,你无法进入邻居家吃饭一样。比如QQ在内存中存放了一张图片的数据,而MSN则无法通过直接读取内存的方式来获得该图片的数据。这样做同时也保证了程序的稳定性,如果你的进程存在一个错误,改写了一个随机地址上的内存,这个错误不会影响另一个进程使用的内存。

  你知道吗——进程(Process)是什么

  对应用程序来说,进程就像一个大容器。在应用程序被运行后,就相当于将应用程序装进容器里了,你可以往容器里加其他东西(如:应用程序在运行时所需的变量数据、需要引用的DLL文件等),当应用程序被运行两次时,容器里的东西并不会被倒掉,系统会找一个新的进程容器来容纳它。

  一个进程可以包含若干线程(Thread),线程可以帮助应用程序同时做几件事(比如一个线程向磁盘写入文件,另一个则接收用户的按键*作并及时做出反应,互相不干扰),在程序被运行后中,系统首先要做的就是为该程序进程建立一个默认线程,然后程序可以根据需要自行添加或删除相关的线程(见图2 进程关系图)。

  1.进程插入是什么

  独立的地址空间对于编程人员和用户来说都是非常有利的。对于编程人员来说,系统更容易捕获随意的内存读取和写入*作。对于用户来说,*作系统将变得更加健壮,因为一个应用程序无法破坏另一个进程或*作系统的运行。当然,*作系统的这个健壮特性是要付出代价的,因为要编写能够与其他进程进行通信,或者能够对其他进程进行*作的应用程序将要困难得多。但仍有很多种方法可以打破进程的界限,访问另一个进程的地址空间,那就是“进程插入”(Process Injection)。一旦木马的DLL插入了另一个进程的地址空间后,就可以对另一个进程为所欲为,比如下文要介绍的盗QQ密码。

  2.木马是如何盗走QQ密码的

  普通情况下,一个应用程序所接收的键盘、鼠标*作,别的应用程序是无权“过问”的。可盗号木马是怎么偷偷记录下我的密码的呢?木马首先将1个DLL文件插入到QQ的进程中并成为QQ进程中的一个线程,这样该木马DLL就赫然成为了QQ的一部分!然后在用户输入密码时,因为此时木马DLL已经进入QQ进程内部,所以也就能够接收到用户传递给QQ的密码键入了,真是“家贼难防”啊!

  (插入图06zcxtrojan0a.tif)

  3.如何插入进程

  (1)使用注册表插入DLL

  早期的进程插入式木马的伎俩,通过修改注册表中的[HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindowsAppInit_DLLs]来达到插入进程的目的。缺点是不实时,修改注册表后需要重新启动才能完成进程插入。

  (2)使用挂钩(Hook)插入DLL

  比较高级和隐蔽的方式,通过系统的挂钩机制(即“Hook”,类似于DOS时代的“中断”)来插入进程(一些盗QQ木马、键盘记录木马以Hook方式插入到其他进程中“偷鸡摸狗”),需要调用SetWindowsHookEx函数(也是一个Win32 API函数)。缺点是技术门槛较高,程序调试困难,这种木马的制作者必须具有相当的Win32编程水平。

  你知道吗——什么是API

  Windows中提供各种功能实现的接口称为Win32 API(Application Programming Interface,即“应用程序编程接口”),如一些程序需要对磁盘上的文件进行读写,就要先通过对相应的API(文件读写就要调用文件相关的API)发出调用请求,然后API根据程序在调用其函数时提供的参数(如读写文件就需要同时给出需要读写的文件的文件名及路径)来完成请求实现的功能,最后将调用结果(如写入文件成功,或读取文件失败等)返回给程序(见图3 应用程序、Win32 API、系统的关系图)。

  (3)使用远程线程函数(CreateRemoteThread)插入DLL

  在Windows 2000及以上的系统中提供了这个“远程进程”机制,可以通过一个系统API函数来向另一个进程中创建线程(插入DLL)。缺点很明显,仅支持Windows 2000及以上系统,在国内仍有相当多用户在使用Windows 98,所以采用这种进程插入方式的木马缺乏平台通用性。

  木马将自身作为DLL插入别的进程空间后,用查看进程的方式就无法找出木马的踪迹了,你能看到的仅仅是一些正常程序的进程,但木马却已经偷偷潜入其中了。解决的方法是使用支持“进程模块查看”的进程管理工具(如“Windows优化大师”提供的进程查看),木马的DLL模块就会现形了。

  不要相信自己的眼睛:恐怖的进程“蒸发”

  严格地来讲,这应该算是第2.5代的进程隐藏技术了,可是它却比前几种技术更为可怕得多。这种技术使得木马不必将自己插入到其他进程中,而可以直接消失!

  它通过Hook技术对系统中所有程序的进程检测相关API的调用进行了监控,“任务管理器”之所以能够显示出系统中所有的进程,也是因为其调用了EnumProcesses等进程相关的API函数,进程信息都包含在该函数的返回结果中,由发出调用请求的程序接收返回结果并进行处理(如“任务管理器”在接收到结果后就在进程列表中显示出来)。

  而木马由于事先对该API函数进行了Hook,所以在“任务管理器”(或其他调用了列举进程函数的程序)调用EnumProcesses函数时(此时的API函数充当了“内线”的角色),木马便得到了通知,并且在函数将结果(列出所有进程)返回给程序前,就已将自身的进程信息从返回结果中抹去了。就好比你正在看电视节目,却有人不知不觉中将电视接上了DVD,你在不知不觉中就被欺骗了。

  所以无论是“任务管理器”还是杀毒软件,想对这种木马的进程进行检测都是徒劳的。这种木马目前没有非常有效的查杀手段,只有在其运行前由杀毒软件检测到木马文件并阻止其病毒体的运行。当时还有一种技术是由木马程序将其自身的进程信息从Windows系统用以记录进程信息的“进程链表”中删除,这样进程管理工具就无法从“进程链表”中获得木马的进程信息了。但由于缺乏平台通用性而且在程序运行时有一些问题,所以没有被广泛采用。

  你知道吗——什么是Hook

  Hook是Windows中提供的一种用以替换DOS下“中断”的一种系统机制,中文译名为“挂钩”或“钩子”。在对特定的系统事件(包括上文中的特定API函数的调用事件)进行Hook后,一旦发生已Hook的事件,对该事件进行Hook的程序(如:木马)就会收到系统的通知,这时程序就能在第一时间对该事件做出响应(木马程序便抢在函数返回前对结果进行了修改)。

  毫无踪迹:全方位立体隐藏

  利用刚才介绍的Hook隐藏进程的手段,木马可以轻而易举地实现文件的隐藏,只需将Hook技术应用在文件相关的API函数上即可,这样无论是“资源管理器”还是杀毒软件都无法找出木马所在了。更令人吃惊的是,现在已经有木马(如:灰鸽子)利用该技术实现了文件和进程的隐藏。要防止这种木马最好的手段仍是利用杀毒软件在其运行前进行拦截。

  跟杀毒软件对着干:反杀毒软件外壳

  木马再狡猾,可是一旦被杀毒软件定义了特征码,在运行前就被拦截了。要躲过杀毒软件的追杀,很多木马就被加了壳,相当于给木马穿了件衣服,这样杀毒软件就认不出来了,但有部分杀毒软件会尝试对常用壳进行脱壳,然后再查杀(小样,别以为穿上件马夹我就不认识你了)。除了被动的隐藏外,最近还发现了能够主动和杀毒软件对着干的壳,木马在加了这种壳之后,一旦运行,则外壳先得到程序控制权,由其通过各种手段对系统中安装的杀毒软件进行破坏,最后在确认安全(杀毒软件的保护已被瓦解)后由壳释放包裹在自己“体内”的木马体并执行之。对付这种木马的方法是使用具有脱壳能力的杀毒软件对系统进行保护。

  你知道吗——什么是壳

  顾名思义,你可以很轻易地猜到,这是一种包在外面的东西。没错,壳能够将文件(比如EXE)包住,然后在文件被运行时,首先由壳获得控制权,然后释放并运行包裹着的文件体。很多壳能对自己包住的文件体进行加密,这样就可以防止杀毒软件的查杀。比如原先杀毒软件定义的该木马的特征是“12345”,如果发现某文件中含有这个特征,就认为该文件是木马,而带有加密功能的壳则会对文件体进行加密(如:原先的特征是“12345”,加密后变成了“54321”,这样杀毒软件当然不能靠文件特征进行检查了)。脱壳指的就是将文件外边的壳去除,恢复文件没有加壳前的状态。

1996-2006十年新锐光荣榜

企业: 新浪网 百度 联想中国 腾讯QQ 海南航空
招商银行 《南方都市报》 央视经济频道 SOHO中国
个人: 宁浩 郭德纲 刘翔 黄健翔 刘长乐 胡润 王志纲 徐静蕾 易中天 张艺谋 江南春 周星驰
其他: 动感地带 外滩三号 丽江 超级女声

2005年度新锐榜

新锐人物:李宇春
年度艺人:蔡康永
年度电视剧:《亮剑》
年度电影奖:《孔雀》
年度传媒之年度网站:新浪网新闻频道
年度传媒之年度杂志:《男人装》
年度传媒之年度电视:湖南卫视
年度传媒之年度报纸:《新京报》
年度时尚:韩剧
年度知道分子:王受之
年度图书:《退步集》
飘一代代言人:博客 方兴东
她世纪代言人:超女

2004年度新锐榜

新锐人物:刘翔
企业:顺驰控股
城市秀:三亚“美女秀”
电影:《可可西里》
电视剧:《中国式离婚》
图书:《狼图腾》
艺人:刀郎
知道分子:吴思
论坛:《南方都市报》时评版
时尚:外滩三号
设计:Carlsberg Chill冰纯嘉士伯
广告语:中国移动全球通之“我能”
2004“飘一代”代言人:潘石屹
飘一代代言人:周杰伦
2004“她世纪”代言人:梅婷
优化生活特别贡献奖:窦文涛/旅游卫视/绿A
体育明星:中国女排
年度关键词:大国、新富、宝马、大选、绯闻、马加爵、中超、张艺谋、审计和性小康

2003年度新锐榜

新锐人物:钟南山
企业:盛大网络
传媒:南方报业
图书:万象
电影:无间道
电视节目:有报天天读
电视剧:玉观音
艺人:无间道男人群像
城市:香港
网络风云人物:我为伊狂
设计:可口可乐
时尚:彩信及可拍照手机
她世纪代言人: 粉红女郎

文章来源:《新周刊》

前几天帮朋友修电脑,弄了半天,最后确定是主板出问题了。拿到专门维修主板的地方检测了一下,发现1. 主板电容爆了2个。2.CPU插座松动/虚焊,造成CPU与主板接触不良,导致机器不稳定/开机困难。不过还有更牛的是我下载官方提供的最新BIOS升级以后却发现问题越来越严重了。

这块主板是Soltek的85DR2,Intel 845芯片的。原来的BIOS版本是Ver1.1的。我看官方主页上有2.0的BIOS下载就Down下来升级了。但是升级以后却发现越来越不稳定了,到最后机器直接就无法点亮了。到底是BIOS的问题还是主板本身的问题,我也不想再去弄了。最后刷了Ver1.3的BIOS,就没问题了。

主板拿到电脑医院进行维修,更换了三个1000µf 的电容,重新焊了CPU插座和北桥芯片。CPU插座还好说,但是北桥芯片就比较难搞了。弄了2天时间才把主板弄好。据说是因为北桥芯片是BGA封装的,非常容易就虚焊,所以要多焊几次才能确定成功。

 这是在电脑医院里用手机照的。夸张吧?象这样堆叠主板

图片附件:
image_306.jpg
图片附件:
image_307.jpg
图片附件:
image_308.jpg

帝雉 1/15~2/14出生
条理清晰、见解力强、诚实而坚毅型的人。虽然拥有老实又温和的外表,内心却隐藏着像梅花一般的坚强个性。重视自我实践、有效率地达成目标,你总希望能不断进步以完成更高的理想。你有向上的野心,更会不惜花费时间、金钱,力求完成。

鹰 2/15~3/14出生
早熟善感,富有个性与创意,独特的思维模式让你显得神秘与吸引力。文艺方面具有相当的天份,希望在旅游中找寻人生的真谛与灵魂的意义,流动式的生存方式,也是你向往且擅长的,因此如果硬要把自已绑在一个固定的范围之内,你可能会感到有挫折感,「留在固定模式的框框」里,会埋没了你的才能!

白鸽 3/15~4/14出生
心地善良总是把温暖欢乐带给别人,具有从事公益活动的精神。常常不顾自己,尽力完成别人的托付,要小心被心怀不轨的人利用。不过你却不会因此改变性格,但你却会升华这些教训,变得越来越坚强!

蜂鸟 4/15~5/14出生
个性主观且执着,却是性情中人!不会沉溺于不切实际的空想当中,专心一志达成目标。能适时展现出勇敢果断的一面,口才佳,具谋略且反应快的你,有与生俱来的机智和过人的逻辑力,这样的你不论成为领导人物,还是人气活跃的角色,都会备受注目与拥戴。

画眉鸟 5/14~6/14出生
天生具有神秘感与灵巧的变化性,但时常容易处于矛盾之中。隐藏着两种极端的个性,温柔与强势、可爱与妒嫉、浪费与小气,属于纤细敏感体质。在微笑背后,也有想象不到的超现实的另一面。你适合担任辅臣或谋臣,较能发挥力量。

九官鸟 6/15~7/16出生
具好奇心,聪明且幽默风趣的人。想法一直在改变,虽然辩才无碍,但常不小心把重要的事说溜了嘴。对于耍宝、搞气氛方面也很擅长,人际关系手腕圆滑,如果能不把聪明表现得太过火的话,就能成为人气极旺的阳光人物喔!

文鸟 7/17~8/16出生
容易觉得寂寞,很容易被感动,也很乐意感动别人。虽然很会照顾人,内心却有天真的一面,像彼得潘,是个长不大的顽皮小孩,不过,有时却令人意外地会展现出成熟的一面。

孔雀 8/17~9/16出生
个性鲜明,超喜欢追求流行,永远在找寻自已能引人注目的方式。总是活在想象的世界里。拥有号召人群的能力,可以让大家都聚精会神听你说话;缺点是容易光说不练,若能培养行动力,就有本事让人都愿意跟随你。

七色鸟 9/17~10/16出生
理智型的人,很懂得做事的方法,有时不免对他人的要求也高,如果过于苛求,最后可能会走向孤独,或许是因为带有悲观的性格,所以,你也会常常因为害怕失去,连可以得到的也将之拒绝的情形发生。

乌鸦 10/17~11/16出生
不笑的时候,显得冷酷与淡漠,其实内心隐藏热情,具长辈缘,也会得同辈与晚辈的喜爱与拥戴。不过,因为完美主义的倾向,而考虑太多难以下决定。对于讨厌的人,会毫不保留地加以唾弃,讨厌不公平的事情发生。

金丝雀 11/17~12/14出生
性情中人,容易冲动而行。不过正因为这股隐藏在内心的热诚,让你具有使不可能变成为可能的力量。遇到困难也会超越原本能力。你奉行「一次不忠百次不用」,不会背叛人,也决不原谅背叛的人。

鹦鹉 12/15~1/14出生
自由奔放的乐天派,但因为容易固执的结果,反而导致一些机会与你擦身而过。虽然拥有天份与才气,却过于沉溺在自我傲气中;个性反复无常、兴趣多,也很懂得玩乐,也会有外人意想不到的认真态度!因此要修正一下自己的毛或优柔寡断的个性,才会好相处。

看过用ASCII码所画的电影么?没看过吧?呵呵,非常有创意的一个东西。你在Windows中的运行里面输入 telnet towel.blinkenlights.nl 就可以看到这个ASCII电影了。

  时代杂志继评选出05年50个爆冷网站之后,近日又出炉一个新的榜单:生活中离不开的25个网站。当然,这里的离不开都是指老美的最爱。不多说了,开始报站:

  1 Amazon.com

  这个就不必多介绍了吧定义了电子商务概念的公司。95年开始运营以来,提供包罗万象的图书选择。新推出的AmazonConnect,可以让你在爱书购书的同时和广大书迷一起分享最爱的作家作品。  

  2 Apple Movie Trailers

  最新最酷的电影预告片集散地。  

  3 Blogger

  免费的个人博客“生产商”,工具轻便好用易上手。  

  4 Craigslist

  服务于美国300多城市的最火的分类广告网站,如今也扩展到全球房地产信息服务领域。密密麻麻的文字标示着各种生活信息,看上去有些乏味,但是在这里,租房卖车修草坪,甚至连老婆都可以找到。  

  5 Drudge Report

  爆料大王Matt Drudge的地盘。当年一语惊人,把克林顿的丑事全盘托出的猛人,如今还是把这个人网站整的红红火火, 去年喜获35亿多的点击率。  

  6 Ebay

  全球最大的C2C电子商务网站,如今也是服务项目颇丰。用户可以撰写博客,为Wiki百科添加条目。在家用SKYPE谈生意的感觉是不是也不错呢?  

  7 ESPN

  名声在外的体育网站,提供即时体坛快报,视频及专栏报道。现在又有了再现直播的功能,当然了,是直播棒球橄榄球,美国人的最爱嘛。  

  8 Factcheck.org

  宾夕法尼亚大学负责运行的Factcheck.org网站,汇集新闻,电视广告和政客的公共讲话等。

  9 Flickr

  个人相片的超级秀场,也是发展最快的网络社区之一。  

  10 Google

  强劲的搜索引擎如今也开始提供多种免费使用服务。Spreadsheets共享表格(抢Excel的饭碗?),日历,图像管理Picasa和大名鼎鼎的Gmail。   

  11 HowStuffWorks

  介绍各种各样的事物如何工作的网站,例如怎么洗钱,混合动力车的工作原理或是肾脏的工作过程。  

  12 The Internet Movie Database

  娱乐界的百科全书。汇聚80万部电影,电视节目和游戏,大家看到电影的评分基本都是这里网友打分的平均值。  

  13 Lifehacker

  介绍有关计算机技术的使用技巧和经验,大大节省了您的时间。其姐妹博客Gizmodo让您第一时间接触那些最新最奇的小玩意。  

  14 The Museum of Modern Art

  提供独特的视频服务,让您坐在家中也如亲临实地般欣赏展品。更为孩子和视觉障碍者提供完美的音频之旅。  

  15 Netflix

  每天有超过6万DVD可供选择的全球最大在线电影租赁服务商。  

  16 National Public Radio

  美国国家公共广播电台,王牌栏目有NPR podcasts, NPR music, NPR This I Believe, NPR Stories。  

  17 The Onion

  专门写假新闻的著名网站。  

  18 Rotten Tomatoes

  IDN娱乐公司旗下娱乐网站,专攻电影新闻。  

  19 Shopzilla

  新的一家专为在线购物者提供搜索服务及比较购买服务的网站,其强大的搜索能力和完善的物品级别评定服务是网站的卖点。  

  20 Technorati

  著名的博客搜索引擎。截止2006年4月,Technorati已经索引了超过3千万个博客站点。搜索服务越发快速和准确。  

  21 Television Without Pity

  提供犀利而又有趣的电视节目评论  

  22 The Smoking Gun

  专门的小道消息和趣闻网站,但有时也会有大新闻出现。  

  23 Wikipedia

  真正的网络奇迹。几乎全部由志愿者撰写,编辑和维护的庞大在线百科全书。现有英文条目130万,另有其他8种语言的数百万条目。  

  24 Yahoo!

  为从Google那里夺回失地,近期从多种Web 2.0服务上得到好评。del.icio.us共享网站收藏夹,Maps.yahoo.com/traffic提供虚拟城市道路导航,Yahoo Photos共享照片,还有CNET支持的科技新闻。今年夏天,世界杯官方的fifaworldcup.yahoo.com又为其赢得了不少点击。  

  25 Zappos.com

  简单的在线鞋店,靠优良的服务和不变的免费送货得到了大量的客户。

Windows Mobile 开发常见问题集(一)

1、Q:新建项目的时候选择哪个项目类型才能创建智能设备的应用程序?

  A:在Visual Studio的新建项目对话框中选择Visual C#或者Visual Basic项目类型,选择智能设备模板,然后再选择相应的设备SDK,最后选择“Device Application”,就可以创建一个移动设备的应用程序了。

2、Q:托管代码与本地代码有哪些区别?

  A:托管代码是指使用.NET Compact Framework开发的程序代码,可执行文件被编译成IL,执行时需要有.NET的运行时环境。而本地代码指用C++等语言开发的程序代码,可执行文件被编译成与CPU指令集有关的机器码,可以直接运行。

3、Q:能不能简要介绍一下Magneto里面对OTA和MMS的支持?

  A:Magneto对OTA有很好的支持,SDK文档的通讯部分中,有针对OTA的专门介绍。MMS的应用程序基本都是由第三方开发的,因为MMS是基于WAP协议的,而Magneto本身对WAP的支持也很好,具体的协议也可以在SDK文档里找到。

4、Q:请问用Visual Basic .NET开发PDA数据库程序能不能使用ADO.NET?

  A:Visual Basic .NET开发PDA数据库不需要引用System.data.oledb,只需要引用System.Data.SqlServerCe命名空间就可以了。该命名空间中的数据库操作类和ADO.NET是基本一致的。可以用它们来开发针对SQL Server CE的应用程序。

5、Q:在Visual C++2005中,可以使用.Net Compact Framework吗?

  A:不能,现在.NET Compact Framework只支持C#和VB.NET,而不支持C++/CLI。但是在VS.NET 2005中可以用C++来开发Native代码来支持移动设备。

6、Q:从什么地方可以得到Smartphone开发环境?

  A:Smartphone的SDK可以在微软网站上找到,而Visual Studio 2005 Beta 2可以通过参加微软活动的方式获得。MEDC 2005的参加者都获得了VS.NET 2005和Windows Mobile 5 SDK的开发光盘。

7、Q:托管性的代码执行效率怎么样?和使用Visual C++编写的代码相比较。

  A:托管代码的执行效率肯定不如本地代码高,但是托管代码也有一些好处是无法取代的。

8、Q:是否可以使用Visual Studio .NET 2003来开发能够运行在Windows Mobile 2005上的应用程序?

  A:首先更正一下,Windows Mobile最新一代的操作系统叫做Windows Mobile 5,而不是Windows Mobile 2005。是的,使用VS.NET 2003开发的应用程序是可以在Windows Mobile 5上正常运行的,因为Windows Mobile 5 ROM中内置了.NET Compact Framewrok 1.0 SP3。

9、Q:PDA上不能用Pocket Access么?SQL CE太大了。

  A:可以使用Pocket Access来开发Windows Mobile上的应用程序。可以采用C++调用OLEDB或者ADOCE的方式来访问Pocket Access数据库。

10、Q:Visual Studio 2005的新功能是否只在Windows Mobile 5里受到支持,2003是否支持?

  A:新功能分两个部分,一部分是.NET Compact Framework 2.0中提供的的新功能,这部分的功能可以被Windows Mobile 2003支持,但必须安装.NET Compact Framework 2.0;而另一部分是Windows Mobile 5的特有功能。.NET Compact Framework 2.0和Windows Mobile 5开发文档的“What’s New”部分,分别描述了这两方面的新特性。

11、Q:请问如何在模拟器里面配置连接到移动网络?

  A:模拟器如果需要连接移动网络的话,必须有专门的硬件提供支持。可以在开发PC的串口上连一个GPRS的模拟器,SDK文档中对此有专门的说明。

12、Q:SQL CE可以像Pocket Access那样仅使用一个文件就能运行么?是否需要像PC上那样安个服务器才能使用?

  A:不会的,只需要在Windows Mobile上安装SQL Server CE的支持库,也就是就是一些DLL文件。而SQL Server CE的库文件是一个单独的文件,不需要安装一个服务器。

13、Q:开发好的程序通过什么方式部署到手机上?对手机有什么要求?

  A:开发的程序需要打包成cab文件部署到手机上。除了通过ActiveSync安装外,还可以通过网络下载、存储卡运行等方式来安装应用程序。对手机的要求是,必须和开发程序的目标平台相兼容。比如为Windows Mobile 5开发的应用程序,可能就没办法很好地运行在Windows Mobile2003平台上。

14、Q:在模拟器上面开发程序,和真实环境有区别么?需要注意一些什么?

  A:模拟器的仿真度十分高,Windows Mobile 5的模拟器甚至可以支持ARM指令,所以基本不会遇到兼容性的问题。但是对于一些需要连接外部设备的应用场景,比如前边说的无线网络,还有GPS设备等,就需要用到实际设备了。

15、Q:当开发国际化应用程序时,应该特别注意哪些方面?

  A:对于国际化的应用程序,.NET本身就已经提供了非常好的支持。可以把用户界面的文字保存在相应的资源文件中,然后由应用程序判断操作系统的语言版本来调用相应的文字。

16、Q:用.NET开发Pocket PC程序需要考虑设备具体使用的是哪种CPU吗?

  A:不必。无论是在虚拟机上的x86指令集,还是实际设备上的ARM指令集,对.NET Compact Framework程序的运行来说都一样。

17、Q:Windows Mobile 5 是否支持通过语音控制新的开发程序?

  A:现在还不支持。

18、Q:可以在vwd2005 bata2中开发Pocket PC程序吗?Pocket PC是否具有浏览器?

  A:可以,Pocket PC平台是内置浏览器的。

19、Q:Visual Studio 2005的Mobile开发,支持Mobile 2003的设备吗?

  A:支持,VS 2005本身就自带Windows Mobile 2003的SDK。

20、Q:Windows Mobile 5.0 for Smartphone较之前的版本有何明显的区别?对于测试这一领域,我们需要注意些什么?

  A:Windows Mobile 5的Smartphone平台更多的变化是在API层面,比如对数据库的支持、对GPS API的支持等, Windows Mobile 5 SDK文档中对此有详细地说明。

21、Q:对开发来说CDMA和GPRS的数据传输是透明的吗?

  A:对于软件开发来说数据传输是透明的,CDMA和GPRS对于上层应用程序来说,只要支持HTTP协议或者TCP/IP协议就可以进行数据传输的操作。

22、Q:Visual Studio .NET能否支持Nokia的S60系列系统开发?

  A:可以,Visual C++能支持Nokia S60的开发。

23、Q:Pocket PC与Mobile开发的主要区别在哪里?

  A:Window Mobile是微软公司基于Windows CE.NET的一个平台。它包含Pocket PC和Smartphone两个版本。

24、Q:SDE从哪里可以下载?Pocket PC 2005的模拟器可以从哪里下载?

  A:SDE是早期用来开发移动设备程序的VS扩展,目前网上似乎很难找到。其实不用安装它,安装所需版本的Pocket PC或者Smartphone的SDK即可。各个版本的Windows Mobile开发的SDK和模拟器的地址可以从这篇Blog上下载(http://twodays.cnblogs.com/archive/2005/06/30/184107.htm)。

25、Q:.NET Compact Framework 2.0能装在Windows Mobile 2003上吗?

  A:可以。.NET Compact Framework 2.0必须手动安裝到Windows Mobile 2003的机器上。

26、Q:请问有没有好的Windows Mobile编程的网站或者论坛?

  A:OpenNETCF.org、www.devbuzz.com、www.codeproject.com、www.msdn.com/mobility/、www.pocketpcdn.com

27、Q:Windows Mobile 2003上的.NET Compact Framework能升级到.NET Compact Framework 2.0吗?

  A:可以。.NET Compact Framework 2.0必须手动安裝到Windows Mobile 2003的机器上。

28、Q:请问编写WML文件与使用.NET Compact Framework进行开发有什么联系和区别?

  A:WML是能够利用WAP浏览器进行浏览的文件,是一种基于Web的开发方式。.NET Compact Framework是在设备上运行的程序,是基于应用的开发方式。

29、Q:在使用.NET Compact Framework 1.0进行开发时,用EVC直接调用Native代码与使用C#通过P/Invoke在性能上有什么差别?在.NET Compact Framework 2.0上,用C++直接调用和用C#通过P/Invoke又如何呢?

  A:用EVC調用Native API的效率,会比使用.NET Compact Framework通过P/Invoke调用Native API要高,这是.NET Compact Framework本身的特性。在从托管代码中调用Native API时,其内部会进行一些额外的类型转换动作,这会导致效率的降低。

30、Q:有没有支持显示HTML文本的控件?

  A:WebBrowser控件可以用于HTML文本。

31、Q:CAB安装后会在Pocket PC上自动生成“卸载程序”,如何制作安装包,才能不自动产生“卸载程序”?

  A:利用VS 2005建立Smart Device Cab Project,在Solution Explorer的Cab Project上点击鼠标右键选择Property,即可看到有一个选项为NoUninstall,默认为False,改为True就可以了。

32、Q:OpenNETCF能运行在.NET Framework 1.1环境下吗?其中的控件可以与.NET Framework 1.1控件混合使用吗?怎样在Visual Studio .NET 2003中加入OpenNETCF控件?

  A:当初在设计NET Compact Framework 1.0/1.1时,由于考虑到移动设备的资源有限,所以有些原本.NET Framework 1.1中已经提供的类和控件就被删除了,OpenNETCF Smart Device Framework主要是针对.NET Compact Framework 1.0/1.1中没有的功能,开发出来的类似的类型和额外的功能,以弥补.NET Compact Framework 1.0/1.1不足之处。这套Framework主要是供.NET Compact Framework程序开发所用,除了少部份针对PC与Pocket PC的同步功能所编写的类之外,大部分都是在.NET Compact Framework上执行的,一般不支持.NET Framework。OpenNETCF的Smart Device Framework安装完毕之后,可以在VS 2003左侧的工具箱中看到OpenNETCF的控件,可以直接拖放来使用。

Windows Mobile 开发常见问题集(二)

1、Q:请问如何才能保证应用程序能够及时地释放系统资源?
  
  A:由于.NET Compact Framework所运行的移动设备,受限于CPU、内存、电源,因此其中的Garbage Collection时经过调整的,垃圾回收的速度比.NET Framework更快。通过调用Dispose()方法,可以立即释放掉对象所占用的非托管资源。

2、Q:在Visual Studio中可以定义一个所有文件都可以使用的宏吗?比如:#define AA,要求在所有的.cs文件中都可以使用#if AA public class A() #else public class B();

  A:可以。在VS 2005的解决方案资源管理器中,用鼠标右键单击项目,选择其属性。在属性对话框的Build页中,可以找到conditional compilation symbol,在其中输入AA,即可在该项目的所有C#源代码文件中使用这个符号。

3、Q:可以将Smartphone应用程序转换为Pocket PC应用程序吗?

  A:可以。在.NET Compact Framework 2.0中,只要您没有用到某些特殊的API,Pocket PC应用程序与Smartphone程序是可以互相转换的,只需要在控件上做些调整即可。

4、Q:.Net Framework 2.0有没有对Media coder/decoder的支持?开发第三方的媒体播放程序可以不依赖.Net CF2.0吗?

  A:.NET Compact Framework 2.0本身可以开发Direct3D Mobile的应用程序。也可以在VS 2005中以C++开发Native Code的媒体播放程序,而无须依赖.NET Compact Framework 2.0。

5、Q:使用.Net开发的智能设备程序是否比用C语言开发的程序效率低很多?

  A:使用.NET开发的程序会比使用C语言开发的本地程序要慢一些,不过对于一般的应用软件来说,下率不会差太多,除非是需要实时处理硬件或I/O的程序,必须要使用C语言进行开发之外,一般的应用程序用.NET Compact Framework开发即可,因为这样可以获得最好的灵活性和可移植性。

6、Q:用托管C++开发的应用程序执行效率会不会比用C#开发的应用程序高?

  A:不会。由於托管C++与C#源代码在经过编译之后,都将成为IL代码,由.NET Compact Framework来执行,因此在效率上不会有差别。

7、Q:请问.NET Compact Framework 2.0对于使用不同CPU的移动设备支持好吗?.NET Compact Framework 2.0在GSM应用方面有没有增强?
  A:.NET Compact Framework具有Windows Mobile跨平台的特性,因此开发时不需要考虑底层的OS、CPU和其它硬件因素。目前.NET Compact Framework对常见的CPU都能够支持,例如ARM、MIPS、SH、x86等。另外在GSM应用方面,主要针对Smartphone的应用作了加强。
8、Q:请问MFC在Windows Mobile Development中处于什么地位?Douglas Boling写的Programming Microsoft Windows CE .NET一书中好像并不推崇使用MFC开发Windows Mobile应用程序。

  A:MFC还是以本地C++的方式进行开发,其特点是执行效率高,但必须花费更多的心思在資源分配、回收等编程技巧上。如果使用.NET Compact Framework进行开发,虽然执行效率比本地程序略差,但整体而言,可移植性与灵活性都较好,而且不必为回收资源担心,开发者能够专注于真正重要的业务逻辑流程。

9、Q:.NET Compact Framework 2.0与1.0有什么区别?

  A:.NET Compact Framework 2.0主要针对1.0原有的控件及类库进行了改善,提供了更多的支持,并新增了许多类型和控件,.NET Compact Framework 2.0更加接近.NET Framework,同时在效率上也相对1.0有所提升。

10、Q:在制作安装程序的时候,如何在start->program菜单中生成程序的快捷方式?

  A:在VS 2005中建立Smart Device Cab Project,在File System页面中,可以看到Application Folder,这就是Start->Program的位置,可以先建立Primary Output的快捷方式,然后将此快捷方式移到Programs Folder,并构建Cab文件即可。

11、Q:移动设备与WEB网页设计有什么主要区别?

  A:Visual Studio开发环境中移动设备与Web设计是非常类似的 ,可以使用同样的语言进行设计, 不同的只是能够使用的类以及控件有所区别。

12、Q:.NET Compact Framework中可以实现鼠标的双击、右击、中间键单击等用户事件吗?

  A:运行Windows Mobile的设备没有鼠标,所以这些事件也不存在。对于常用的右键弹出上下文相关菜单,在触摸屏上一般用单击并且按住一段时间来实现。

13、Q:Mobile应用程序的界面处理可以使用CSS样式表吗?

  A:不可以。

14、Q:Smartphone上面能够支持横屏幕吗?

  A:不支持。

15、Q:如何在Pocket PC中调整控件的位置使得应用程序可以支持横向屏幕?

  A:可通过设置控件的Anchor和Dock属性来自适应屏幕。

16、Q:界面开发完成后,在移植方面需要注意些什么?

   A:一般来说,要移植到不同平台上必需要重新设计用户界面;可以重用的只是业务逻辑,不是用户界面。
17、Q:我在移动开发过程中用到了很多控件,难以在一页之内显示,如何为它们添加一个滚动条?

  A:可以将这些控件放到一个Panel中,并设置其AutoScroll属性为true即可;如果使用VS2005,拖拽数据源到窗体上时,会自动将所有控件包括在一个Panel里。

18、Q:TableAdapter在.NET Compact Framework 1.0中从未出现过,是新特性吗?

  A:是的,TableAdapter是.NET Compact Framework 2.0中新增加的。

19、Q:SQL Mobile带有像SQL Server那样企业管理器吗?Visual Studio 2005支持在桌面上直接查看SQL Mobile的数据库吗?

  A:您可以通过SQL Server 2005的企业管理器连接到SQL Mobile数据库进行编辑。Visual Studio 2005也支持在桌面上创建或修改SQL Mobile数据库文件。

20、Q:提交成功后如何取消保存?

  A:目前BindingSource尚不支持事务,因此提交成功后是没有办法再undo的。

21、Q:移动设备内存较小,填充DataSet是否有大小限制?

  A:DataSet在逻辑上并没有对大小的限制。但是DataSet的大小必须小于当前前的可用内存,否则会有内存分配不成功的异常出现。

22、Q:如果数据源中的数据在显示前需要处理(例如格式转换),可以使用DataBinging吗?

  A:BindingSource是直接将DataSet与控件进行关联,所以如果需要进行其他操作的话,就不能使用BindingSource。或者,可以在访问数据库后,先在DataSet里对需要转换的数据进行必要的处理之后,再进行显示。

23、Q:DataSet实际上在内存中产生了一套数据副本,如何解决版本控制的问题?

  A:DataSet本身不存在版本控制的问题。在把数据提交回SQL Mobile的时候,的确需要有一些机制来保证修改完成的数据应该是最新的,但是DataSet本身的数据结构是不会发生变化的。

24、Q:能否通过Pocket PC上的程序更新服务器上的数据库信息?

  A:可以。可以使用SQL Mobile中的RDA或者是合并复制的方法和远程SQL Server数据库进行数据同步或更新。具体的实现可以参考SQL Server相关部分的文档。

25、Q:SQL Mobile一定要要安装在移动设备上吗?

  A:是的。SQL Mobile需要安装在Windows Mobile或者Windows CE设备上。

26、Q:SQL Moble支持存储过程吗?

  A:目前还不支持。

27、Q:SQL Mobile必须和应用程序部署在同一台设备上吗?可否远程连接?它是否是一个文本数据库?

  A:是的。SQL Mobile必须和应用程序部署在同一个设备上,现在还不支持远程连接。SQL Mobile是一个文件数据库,但不是一个文本数据库。

28、Q:能不能在一些应用中以XML替代SQL的作用?

  A:可以的。XML的查询效率比SQL Mobile要低,但是在数据比较少的情况下不需要安装更多的组件,这是XML的一个优势。

29、Q: Tableadapter与DataAdapter之间有何区别?DataAdapter是多个TableAdapter的组合吗?

  A:不是的,TableAdapter是对DataAdapter的一个扩展,TableAdapter本身包括了对应数据表的信息。TableAdapter完成从数据库连接、执行SQL语句到将结果填充到DataSet中的一个完整操作,而DataAdapter只支持数据填充的操作。

30、Q:做了SQL Moblie的sdf文件后,Publications后的数据库表中会出现msrepl_tran_version或rowguid字段,这是为什么?

  A:这两个字段是为了保证数据同步,由系统自动添加的,请不要进行修改。

31、Q:网上出了个Reflector反编译工具,可以99%反编译用C#开发的EXE和DLL,怎么才能更好地保护应用程序?

  A:目前大部分应用程序采用混淆和对关键字符串加密的方式,更好的方式可能还要继续探讨。

Windows Mobile 开发常见问题集(三)

1、Q:SQL Mobile的SQL语法和SQL Server的语法有差异么?

  A:SQL Mobile的语法和SQL Server的语法略有差异,可以从SQL Mobile的文档中查找SQL Mobile具体支持哪些SQL语句。总的来说,对绝大部分的开发来说,这些差异不会造成影响。

2、Q:SQL Mobile支持B/S模式吗?

  A:不支持。

3、Q:可以在.NET Compact Framework 1.0上访问由.NET Compact Framework 2.0产生的数据库吗?

  A:SQL Mobile数据库的格式和SQL Server CE 2.0是相同的,因此可以直接在.NET Compact Framework 1.0中进行访问。

4、Q:SQL Mobile数据库文件支持XCOPY吗?可以简单地复制到其他Windows Mobile设备上吗?

  A:是的。SQL Mobile数据库本身是一个文件数据库,直接复制到其他安装了SQL Mobile支持组件的Windows Mobile设备或模拟器上就可以使用了。

5、Q:Visual Studio .NET 2003是否支持Windows Mobile 5.0的开发?

  A:不可以,如果开发基于Windows Mobile 5.0的应用程序请使用Visual Studio 2005。

6、Q:要想从传统的PC程序员转向到移动设备的开发上来,需要在技术上作哪些准备?

  A:移动设备的开发对于基础开发语言和开发技术的要求与PC上是相同的,只需要了解移动设备在哪些方面与PC平台有所不同即可。

7、Q:C#可以开发Windows Moblie应用程序吗?

  A:可以。

8、Q:如果获取.NET Compact Framework 2.0的安装程序并将其安装到Windows Mobile 5.0设备中?

  A:Visual Studio 2005提供了.NET Compact Framework 2.0安装程序,在开发部署时会自动部署到移动设备上。

9、Q:Windows Mobile 5.0中没有集成.NET Compact Framework 2.0,是不是生成的应用程序安装包就应该带上.NET Compact Framework 2.0?

  A:技术上来说是的。但能否在应用程序中提供.NET Compact Framework 2.0取决于微软对此的授权情况。

10、Q:如何把.NET Compact Framework 2.0与应用程序一同打包发布?

  A:.NET Compact Framework 2.0有一个单独的CAB安装包,可以把此文件与应用程序打成一个安装包。

11、Q:用Visual Studio 2003开发可以获得很好的兼容性吗?

  A:用Visual Studio 2003开发的基于.NET Compact Framework 2.0的程序可以在Windows Mobile 5.0的设备上运行。

12、Q:在Windows Mobile上面是否开发COM+或者DLL?

  A:可以开发DLL动态共享库。

13、Q:C#是否支持Windows Mobile 5.0的DirectX开发?

  A:支持。

14、Q:现有的使用Visual Studio开发的Smartphone 2003应用程序,可以移植到Windows CE 5.0平台上吗?

  A:可以。

15、Q:Windows Mobile 5.0内置红外线接口API吗?

  A:Windows Mobile 5.0对红外接口的支持并没有更新,需要采用之前的方法进行红外接口的开发,例如与串口通信等。

16、Q:如何开发手机游戏,特别是能够交互的网络游戏?

  A:Windows Mobile对游戏开发的支持是比较充分的,可以采用DirectX技术进行3D或2D界面的开发;对于网络部分,Windows Mobile可以支持socket通信方式。所以,从技术上来讲,开发网络游戏是完全没有问题的。

17、Q:我们公司目前更多关注的是嵌入式领域,也就是Windows CE,而非Windows Mobile。我们主要是在关注IPTV领域,在这方面有哪些的资源?

  A:Windows CE是一种可自定义的嵌入式操作系统,适用于各种内存很少的设备。OEM可以使用Windows CE设计平台和自定义应用程序,使用户可以获得各种设备的最佳体验,例如手持设备、瘦客户机、逻辑控制器以及各种高级消费类电子产品。 Windows Mobile是基于Windows CE构建的一种完善的软件平台。与Windows CE不同,Windows Mobile Smartphone和Pocket PC操作系统专为要求特殊硬件配置的设备而设计。该软件包括标准化的接口和应用程序,可确保在各种硬件设计中的兼容性。 所以Windows Mobile和Windows CE的资源是通用的,您可以在http://www.microsoft.com/china/mobile、http://www.microsoft.com/windowsmobile/,以及微软社区http://www.microsoft.com/china/windowsmobile/communities/default.mspx获得相应的资源和帮助。

18、Q:我们在Windows Mobile上进行应用开发遇到一些底层的接口问题,如何取得微软的技术支持?

  A:微软将一如既往地对基于Windows Mobile操作系统开发的独立软件开发商和开发人员进行支持,可以直接向800-820-3800全球技术支持中心寻求支持,或者提供具体问题细节,我们将给出相应的解决方案。

19、Q:如何才能将我们的软件放到微软的Mobile2Market项目中去?对MVP有没有什么优惠?

   A:Mobile2Markert项目在中国是非常优惠的,目前对MVP没有特别优惠。另外,如何将软件放到微软的Mobile2Market中请参考http://www.microsoft.com/china/mobile/developer/developerprograms/mobile2market/default.asp。

20、Q:哪些工具可用于Pocket PC 2003开发?

  A:要构建Pocket PC 2003本机C++应用程序,您需要Microsoft eMbedded Visual C++ 4.0、Microsoft eMbedded Visual C++ 4.0 Service Pack 3,以及Pocket PC 2003 SDK。

21、Q:为了支持 Windows Mobile 2003 Second Edition 的增强功能(例如高分辨率或横向屏幕),应该在应用程序中做些什么?

  A:Windows Mobile 2003 Second Edition 提供了全新的屏幕方向和分辨率,包括针对Pocket PC的横向、方形和VGA支持以及针对Smartphone的QVGA支持。这种版本不需要新的SDK。

22、Q:Pocket PC 2002应用程序可以在Pocket PC 2003 设备上工作吗?

  A:使用文档化API且功能良好的Pocket PC 2002 应用程序无需重新编译即可在 Pocket PC 2003 设备上运行。

23、Q:如何从eVB迁移到Visual Basic .NET?

  A:从eVB迁移到Visual Basic .NET并不容易,但迁移的好处远远超过了成本: • 数据类型更丰富:eVB只有16 字节的VARIANT;Visual Basic .NET使用.NET Framework通用类型系统。 • 执行更快:eVB需要解释;Visual Basic .NET在执行前由JIT(实时)编译器编译为本机代码。 • 错误处理更完善:eVB仅支持“On Error”;Visual Basic .NET支持结构化异常处理。 • 支持结构:eVB不支持;Visual Basic .NET支持命名空间、类和结构。 • 面向对象:eVB是面向过程的;Visual Basic .NET支持完全的OOP(面向对象编程)。 • “一等公民”:eVB总是希望迎头赶上MFC;Visual Basic .NET则是.NET的核心。 • 本机XML支持:eVB不支持;Visual Basic .NET支持本机XML和XML Web服务。 • 数据模型更完善:ADO.NET远远超过了ADOCE;它是最好的数据模型。 • 执行更安全、更可靠:eVB是一种脚本语言;Visual Basic .NET为托管代码。 • 还有许许多多! 同时,还有各种各样的资源(从移植实验到技术文章)可以帮助开发人员进行这种过渡。

24、Q:应该使用什么开发工具来编写基于.NET Compact Framework的Pocket PC应用程序?

  A:Microsoft Visual Studio .NET 2003允许Visual Basic .NET或C#编程人员创建Pocket PC 2000、Pocket PC 2002和Pocket PC 2003设备的托管代码应用程序(即那些以.NET公共语言运行库为目标的应用程序)。要开发Pocket PC 2000和Pocket PC 2002设备的托管代码应用程序,您可以使用即装即用的Visual Studio .NET 2003。在开发过程中,Visual Studio .NET 2003将会自动地将.NET Compact Framework安装到这些设备的RAM中。.NET Compact Framework已经在所有Pocket PC 2003设备的ROM 中,而且Visual Studio .NET 2003通过Pocket PC 2003 SDK支持它。

25、Q:有什么资源可以用于进行Windows Mobile 2003 Second Edition的开发?

  A:下载新的Windows Mobile Developer资源包,其中包括白皮书以及新的和更新的代码示例。该版本不需要全新的SDK。可以用新的模拟器软件包对应用程序进行测试。eMbedded Visual C++ 4.0开发人员应当下载eMbedded Visual C++ 4.0 Service Pack 3。

26、Q:什么工具可用于Smartphone 2002开发?

  A:要开始开发Microsoft Smartphone 2002应用程序,您需要eMbedded Visual C++ 3.0和Smartphone 2002 SDK。两者都可以在Windows Mobile Developer获得。

27、Q:MFC或ATL可用于Smartphone 2002开发吗?

  A:不可以,Smartphone 2002不支持MFC与ATL开发。

28、Q:可以使用eMbedded Visual Basic 3.0来构建Smartphone 2002应用程序吗?

  A:不可以,不支持以Smartphone 2002为目标的eVB 开发。

29、Q:哪些工具可用于进行Microsoft Smartphone 2003开发?

  A:对于Smartphone 2003,有两种开发选择,或者通过带有Service Pack 3的eMbedded Visual C++ 4.0开发本机代码,或者通过Visual Studio .NET 2003开发托管代码。这两种情况都需要下载Smartphone 2003 SDK。Windows Mobile 2003 Second Edition模拟器软件包使您可以在Second Edition设备上测试应用程序。eMbedded Visual C++ 4.0和Smartphone 2003 SDK都可以在Windows Mobile Developer获得。

现在很多浏览器都有“弹出窗口过滤功能”,对于一些网站的功能有一定的限制,那么开发人员怎么样才能知道你的窗口是否被浏览器过滤,弹不出你的功能窗口了呢?icech找到了一段代码能够判断是否浏览器阻止了弹出窗口,并提示用户的方法。市一段javascript代码。

先将这段代码放在head里面

下面是一个下拉菜单的效果测试

这样就可以了,效果不错吧!
转载本文请注明来源于:西部E网 www.weste.net,谢谢支持!

推荐一个非常有意思的游戏:姓名的力量!这是个根据MD5码编写出来的Flash游戏。看看你的姓名厉害不?

Windows  HP:259 攻:82 防:48 速:47 技:69 运:92
Linux  HP:214 攻:50 防:99 速:65 技:73 运:54

[Linux]向[Windows]发起攻击,但是却被[Windows]绊倒了,[Linux]受到35点伤害
[Windows]向[Linux]发起攻击,[Linux]受到45点伤害
[Linux]向[Windows]发起攻击,[Windows]防御,[Windows]受到5点伤害
[Linux]发动连击
[Linux]向[Windows]发起攻击,但是被[Windows]闪开了
[Windows]向[Linux]发起攻击,[Linux]受到100点伤害
[Linux]向[Windows]发起攻击,但是被[Windows]闪开了
[Windows]向[Linux]发起攻击,[Linux]受到108点伤害
[Linux]被击败了

https://www.g0dspeed.com/attachment.php?id=261

附件:200675223751_1155008419.swf(20886 Byte)

今天真是高兴啊!上午11点没过就收到了两个包裹:

1. Holux GR 236 Bluetooth GPS Receiver SiRF III PDA

2. SIGMA 18-200

等慢慢研究去……

 

图片附件:
image_297.jpg
图片附件:
image_298.jpg
图片附件:
image_299.jpg
图片附件:
image_300.jpg