的确很难搞,真的搞不懂他到底怎么知道原本从哪呼叫的
(或是其他因素造成 如果不从资料夹呼叫 就读取发生错误??! 因为那个框框错误实在不像是专门防止呼叫的)
一开始我用 DDE 来测试,结果不行
后来采用 rundll32.exe 的呼叫也不行,CMD 呼叫也不行
就算层层程式呼叫好几次,只要最源头的程式位置不在该资料夹便会失败 (就从 Visual Basic 6.0 编辑环境呼叫的)
不过用了 ShellExecute 终于成功了
详细的原理以及程式的呼叫细节我不懂...只知道有此现象而已
后来我还怀疑是不是他侦测母程序是 Explorer 才能用,不过建立在同资料夹的 BAT 档也可以执行啊
看底下这张图,中间夹着那框是程序列表,显示该 超?跑跑(最下面的框) 是被其他资料夹的 call.exe (就是最上面那个框) 所呼叫的,因此变成 该 call.exe 的 子程序
如果用 explorer 的执行好像没问题的说,而该 call.exe 的母程序就是 explorer 啦
想问你,你要刻意从别的资料夹呼叫要做什么啊?~很好奇~
VB6 专案档以及程式附在底下
那个 Call.exe 使用方法是先把 超?跑跑 的位置贴在文字框里头,例如我家电脑是 C:\Documents and Settings\user\桌面\game_patcher\talesrunner.exe 然后点按钮就可以执行了