关于用 shellexecute 打开文件的问题

ccvcc9003 2005-10-28 02:57:06
用Call ShellExecute(Me.hwnd, "Open", gParaS1SysfrmImageProcessingFilePath, vbNullString, App.Path, SW_SHOWNORMAL) 方法按照系统默认方式打开文件.
现在有个问题,在XP系统下,当默认打开图片的方式为画图版时.却不是用画图版打开所选择的图片.而是用windows自带的图片预览格式...... 不知道有没有人遇到这种情况,最麻烦的是机器上没有xp,不知道怎么调试好.有达人在帮忙解决一下,兄弟我谢谢了~~~~
分数不多了,只有50,不成敬意
...全文
422 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2005-10-29
  • 打赏
  • 举报
回复
这个可能是我XP的问题,现在我的XP里设备管理器一片空白,在没有解决这个问题之前,舍不得重装系统:)
rainstormmaster 2005-10-29
  • 打赏
  • 举报
回复
//钩选了“始终使用选择的程序打开这种文件”选项后就不会了。。。

呵呵,我的xp钩选了“始终使用选择的程序打开这种文件”选项后也还是如此
lsftest 2005-10-29
  • 打赏
  • 举报
回复
这个问题在xp中的确存在,事实上在xp中尽管当默认打开图片的方式为画图,双击图片文件时,调用的还是windows自带的图片预览,也就是说这个问题不是由ShellExecute引起的.
===================
钩选了“始终使用选择的程序打开这种文件”选项后就不会了。。。

rainstormmaster 2005-10-28
  • 打赏
  • 举报
回复
这个问题在xp中的确存在,事实上在xp中尽管当默认打开图片的方式为画图,双击图片文件时,调用的还是windows自带的图片预览,也就是说这个问题不是由ShellExecute引起的.

可以这样解决:在调用图片文件时,先访问注册表,看看注册表中相应文件的默认打开方式是否为画图,如果是,则用shell强行调用画图程序
ccvcc9003 2005-10-28
  • 打赏
  • 举报
回复
狼兄,默认方式不一定是mspaint.exe的.
你这样就给写死了,呵呵. 不过还是要感谢一下
northwolves 2005-10-28
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Shell "mspaint.exe d:\2.jpg", 1
End Sub
fishmans 2005-10-28
  • 打赏
  • 举报
回复
ShellExecute

VB声明
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
说明
查找与指定文件关联在一起的程序的文件名
返回值
Long,非零表示成功,零表示失败。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框
lpOperation String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它
lpFile String,想用关联程序打印或打开一个程序名或文件名
lpParameters String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数
lpDirectory String,想使用的完整路径
nShowCmd Long,定义了如何显示启动程序的常数值。参考ShowWindow函数的nCmdShow参数

ccvcc9003 2005-10-28
  • 打赏
  • 举报
回复
没人指点一下吗

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧