如何实现关联???

Yea 2001-08-02 10:50:17
如我有一个程序A.我的目的是当用户随便的运行任何一个EXE文件的时候,就会运行我的A程序.....就是这个A程序和所有的EXE文件关联....
...全文
137 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sw0324 2001-08-06
  • 打赏
  • 举报
回复
gz
Yea 2001-08-03
  • 打赏
  • 举报
回复
AlphaOne(总是第一个倒下),麻烦你讲明白一点嘛。。。小弟是只才起飞的菜鸟。 
Yea 2001-08-03
  • 打赏
  • 举报
回复
我看冰河生成了这么一个健:"C:\\WINDOWS\\SYSTEM\\SYSEXPLR.EXE %1 %*"。。它实现了两个程序都运行了,我把他改成:"d:\myprogram.EXE %1 %*"。。实现了关联,但是只运行了myprogram.exe。。。是不是要在myprogram.exe中做文章???
AlphaOne 2001-08-03
  • 打赏
  • 举报
回复
在命令行参数中得到那个"%1 %*"
看看是什么?在你的程序启动后用shellExecute函数执行!

如果不行的话,生成一个HKEY_CLASS_ROOT\exefile\shell\myopen\command\默认
^^^^^^(或是别的什么)
设置为 原来的 "%1 %*"
然后调用“ShellExecute(NULL,"myrun",program_to_run,Parameters_to_run,Directory_to_run,nShowCmd);”

关于改函数的具体用法,查MSDN.
AlphaOne 2001-08-02
  • 打赏
  • 举报
回复
HINSTANCE ShellExecute(
HWND hwnd, //=NULL
LPCTSTR lpOperation, //="runas"或者其他什么你定义的操作-见注册表
LPCTSTR lpFile, //=那个%1
LPCTSTR lpParameters, //=原来的参数,自己解析一下
LPCTSTR lpDirectory, //=原来的目录
INT nShowCmd //=原值
);
AlphaOne 2001-08-02
  • 打赏
  • 举报
回复


改为“youpath\yourprogram.exe %1”
然后根据命令行参数得到点击的文件名

那个%1就是点击的文件名啊!
用ShellExecute执行它
Yea 2001-08-02
  • 打赏
  • 举报
回复
我实现了关联,,但是比如我点了B程序,就指向了A程序,这时只运行了A程序,,,我想要B和A两个程序都运行。。。。
AlphaOne 2001-08-02
  • 打赏
  • 举报
回复
对不起,看错了
把HKEY_CLASS_ROOT\exefile\shell\open\command\默认
改为“youpath\yourprogram.exe %1”
然后根据命令行参数得到点击的文件名
AlphaOne 2001-08-02
  • 打赏
  • 举报
回复
页可以直接改注册表
在HKEY_CLASS_ROOT中新建如下键值:
HKEY_CLASS_ROOT\.xxx\ 默认 = xxxfile
HKEY_CLASS_ROOT\xxxfile\Shell\Command\ 默认 = "youpath\yourprogram.exe %1"
luhongjun 2001-08-02
  • 打赏
  • 举报
回复
那你得把你的A程序做成病毒.
修改EXE文件的程序头然后JMP :你的A文件.
AlphaOne 2001-08-02
  • 打赏
  • 举报
回复
在“文件夹选项”中
选择“文件类型”页,
新建
填扩展名,确定
在列表中选中后 更改
浏览到你的程序打开即可

13,825

社区成员

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

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