wince 文件关联程序

转: http://blog.csdn.net/Man_zhu/archive/2010/05/10/5575866.aspx

 

 

最近修改完wince上面的photoview程序,想把photoview.exe关联到所有图片上,今天花一个小时时间完成了。

为了以后方便查看,特记录下来:

Platform Builder for Microsoft Windows CE 7.0

在CE中我们打开一个mp3文件,会相应关联到windows media player,即跳出media player播放器。

现在我想双击图片能够调出自己的图片浏览器,这样就可以很方便的使用自己的程序。

下面介绍两种方法:1.修改注册表    2.修改注册文件

这里方便测试,使用模拟器,因此platform为Deviece emulator

1.修改注册表

下面举个例子说明:
我们要将后缀名为.jpg文件关联到photoview.exe程序。 首先在HKEY_CLASSES_ROOT下建一子目录.jpg,Name为空或Default,Data为jpgfile。接着还是在 HKEY_CLASSES_ROOT下建一子目录jpgfile,jpgfile下建两个子目录:DefaultIcon和Shell,如果对文件显示图 标没有要求,DefaultIcon采用默认值,Shell往下再建Open目录,Open往下再建Command目录,在这里来指定文件关联到哪个程 序,如"photoview.exe" "%1",注意,必须要加上引号。注意,两个引号之间必须要有空格。

我们将工程makeimg之后,就可以将图片和photoview.exe程序关联起来了。

(现在我使用的wince7.0版makeimg之后不能使用,我就使用了sysgen编译了一下,结果ok)

2.修改注册文件

这其实和上面的方法一样,只是对于某些高手来说不屑于去直接修改注册表,直接修改文件platform.reg文件

platform文件的位置在wince7.0安装路径下面:我的工作目录为C:/WINCE700/PLATFORM/DEVICEEMULATOR/FILES/platform.reg

打开platform.reg文件,添加以下内容:

//--------------------------------------------------------------------

[HKEY_CLASSES_ROOT/.jpg]

[HKEY_CLASSES_ROOT/.jpg]

@="jpgfile"

[HKEY_CLASSES_ROOT/jpgfile]

[HKEY_CLASSES_ROOT/jpgfile/Shell]

[HKEY_CLASSES_ROOT/jpgfile/Shell/Open]

[HKEY_CLASSES_ROOT/jpgfile/Shell/Open/Command]

[HKEY_CLASSES_ROOT/jpgfile/Shell/Open/Command]

@="/"photoview.exe/" /"%1/""

[HKEY_CLASSES_ROOT/jpgfile/DefaultIcon]

@="iexplore.exe,-1005"

//------------------------------------------------------------------------

上面两种方法只是能将jpg格式的图片关联到photoview.exe程序,photoview.exe文件被放置在/Windows目录下面。

程序怎么知道关联到哪张图片上了呢?

这里就需要使用GetCommandLine(),函数会返回图片的路径。GetCommandLine()函数只在main入口处起作用,每点击一张个jpg格式的图片,都会打开一次新的photoview.exe程序。

相关文档可以参考:

http://hi.baidu.com/wu_yuzhi/blog/item/584956d0114b5b329a50277b.html

 

 

 

wince中文件关联的问题
2009-12-03 09:06

Platform Builder for Microsoft Windows CE 5.0

1、通常情况下,点击一个mp3文件,会自动地调用Mediaplayer播放。

  如果需要,我们也可以实现当点击一个特定格式的文件时,调用我们自己的程序来处理。

  先对注册表进行一些处理。

  比如我们要把后缀名为.dat的文件进行关联。首先在HKEY_CLASSES_ROOT下建一子目录.dat,Name为 Default,Data为datfile。接着还是在HKEY_CLASSES_ROOT下建一子目录datfile,datfile下建两个子目 录:DefaultIcon和Shell,如果对文件显示图标没有要求,DefaultIcon采用默认值,Shell往下再建Open目录,Open往 下再建Command目录,在这里来指定文件关联到哪个程序,如"Program Filestest.exe" "%1",注意,必须要加上引号。

  注册表的改动告一段落。

  现在我们点击.dat文件,就可以把关联的程序激活了。

  但是,程序如何知道关联哪 个文件呢?GetCommandLine()这个函数将会返回文件的路径。值得注意的是,每次点击.dat文件,都会激活一个新的程序实例。也就是说 GetCommandLine()只是在mian入口处起作用。所以当一个程序实例A已经激活时,此时若点击.dat文件,如何使A得到文件路径呢?相信 大家会想出各种聪明的方法来实现。

2、
Registering a File Filter
里面有详细的说明怎么加一个file filter

基本上修改注册表就可以了,如
[HKEY_CLASSES_ROOT/.bmp]
@="bmpimage"
"Content Type"="image/bmp"

[HKEY_CLASSES_ROOT/bmpfile]
@="BMP 图像 "

[HKEY_CLASSES_ROOT/bmpfile/CLSID]
@="{25336920-03F9-11cf-8FD0-00AA00686F13}"

[HKEY_CLASSES_ROOT/bmpimage]
@="BMP 图像 "

[HKEY_CLASSES_ROOT/bmpimage/DefaultIcon]
@="iexplore.exe,-1005"

[HKEY_CLASSES_ROOT/bmpimage/Shell]

[HKEY_CLASSES_ROOT/bmpimage/Shell/Open]

[HKEY_CLASSES_ROOT/bmpimage/Shell/Open/Command]
@="iexplore.exe file:%1"

 

下面是WMV文件与Windows Media Player 的文件关联:

; ---------------------------------------------------------------------------
; Windows Media Player helper/sample registry settings
;----------------------------------------------------------------------------
; @CESYSGEN IF DIRECTX_MODULES_CEPLAYER

[HKEY_CLASSES_ROOT/videofile/shell/open/command]
@="ceplayer.exe %1"

[HKEY_CLASSES_ROOT/videofile/DefaultIcon]
@="ceplayer.exe,-211"

[HKEY_CLASSES_ROOT/videofile]
@="Video File"
;"EditFlags"=hex:00,00,01,00

 

下面是WMV文件与TMPCP播放器的文件关联:

; ---------------------------------------------------------------------------
; TCPMP registry settings
;----------------------------------------------------------------------------
; @CESYSGEN IF DIRECTX_MODULES_CEPLAYER

[HKEY_CLASSES_ROOT/videofile/shell/open/command]
"TCPMP.bak"=""
"Default"="//ResidentFlash//TCPMP//PLAYER.EXE /"%1/""

[HKEY_CLASSES_ROOT/videofile/DefaultIcon]
"TCPMP.bak"=""
"Default"="//ResidentFlash//TCPMP//PLAYER.EXE , -1000"

[HKEY_CLASSES_ROOT/videofile]
@="Video File"
;"EditFlags"=hex:00,00,01,00

 

 

 

 

http://blog.csdn.net/dadahacker/archive/2009/09/21/4577627.aspx

 

文件关联说起来很简单,但是在Wince下面用的话,问题还真多。最多的问题就是多空格的情况,很多人会忽视掉,也没有几个人在文件关联的地方讲到这个问题,请注意:

VS2005 c# Wince6.0

在Main(string args[] )接受参数的话,我们会发现如果参数有空格的话,参数会被分成好几个子项也就是args[0],args[1]........

这个大家就会郁闷了,其实最保险的做法是什么呢?就是在文件关联的Shell/Open/Command 的文件路径和参数都加上引号,默认的是类似这种情况:/windows/mp4player.exe %1

但是这样的就会出错的了。

改成:

”/windows/mp4player.exe“  ”%1“

那么接受参数的时候就是一个得了。

简单吧。。。。。。。。。。。。。

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值