VB中调用外部EXE文件时遇到的问题

lifanxi 2002-12-29 12:07:35
在VB中用Shell调用外部EXE文件时,发现一个问题,就是在调用由Flash生成的EXE文件时(其它的EXE文件没有这个问题),如果EXE文件的文件名是中文的,就会出无法正常播放动画的问题。而英文文件名则没有这个问题。
同样的问题还发生在WinExec()API函数上。
另外,试着用了ShellExecute和CreateProcess函数,就更糟了,不管是中文还是英文的文件名,都无法正常运行。
但是在VC中,不管是中文还是英文文件名,ShellExecute都可以正常的调用Flash生成的EXE文件。
我的调试环境是Windows XP 英文版 + VB6.0英文版 + VC6.0英文版
...全文
121 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
lifanxi 2003-01-07
  • 打赏
  • 举报
回复
谢谢各位!
问题解决了,还是我自己的问题。我把ShellExecute写成
ShellExecute Me.hwnd, "Open", "F:\暗暗.exe", 0, 0, 1
把命令行参数位置的""空字符串误写成0了,在VC中用的是NULL,我翻译成VB不假思索的就改成0了,然后就错了:(
xxlroad 2003-01-06
  • 打赏
  • 举报
回复
win2000pr+VB6.0
xxlroad 2003-01-06
  • 打赏
  • 举报
回复
Option Explicit

Private 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

Private Sub Command1_Click() '可以播放 aa.swf aa.exe 暗暗.exe
ShellExecute Me.hwnd, "Open", "F:\暗暗.exe", "", App.Path, 1
End Sub
chenyu5188 2003-01-06
  • 打赏
  • 举报
回复
UP
denglijiang 2003-01-06
  • 打赏
  • 举报
回复
同意luckcao(luckcao)的做法
yes
redwrite 2003-01-04
  • 打赏
  • 举报
回复
学习
starbaby 2003-01-02
  • 打赏
  • 举报
回复
去问多媒体FLASH版块的,应该会有人答复你的。。。。。
拿棵草 2003-01-02
  • 打赏
  • 举报
回复
UP,这个问题我现在还没有遇到,不过我想我快要遇到了。 :)极度关注中!
suntt 2003-01-02
  • 打赏
  • 举报
回复
up
用户 昵称 2002-12-29
  • 打赏
  • 举报
回复
i think u can use this

dim filename as string * 255
dim s as string
s="c:\a.exe"
s=s & chr(0)
filename = s
oswica 2002-12-29
  • 打赏
  • 举报
回复
'\0'
lifanxi 2002-12-29
  • 打赏
  • 举报
回复
谢谢各位的回复!我按照上面说的方法试了一下,无效。
我个人感觉好像与字符串后面的0没有必然的联系,因为我的问题中也提到了,对于一般的EXE文件,不管是中文文件名还是英文文件名,Shell都可以正常的调用。只有对于Flash生成的EXE文件,才存在这样的问题。所以是不是可能是Flash的EXE文件有什么特殊的地方。
曲滨_銘龘鶽 2002-12-29
  • 打赏
  • 举报
回复
因为VB和VC的字符串的结构不同VC比VB多了一个‘/0’

7,763

社区成员

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

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