写一个程序,让其与一个软件绑定,当点击该软件启动时,执行这段程序

Rya 2009-10-31 09:53:51
软件A,程序B
A是已经有的,我要写的是B,目的是当A启动时触发执行B,怎么实现,VC
...全文
245 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
goldfishxxoo 2010-04-08
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 rya 的回复:]
再不行我降要求吧,B可以先启动,用于监听A是否启动
[/Quote]

同意18楼,遍历进程。
刚开始的要求太纠结了。
phoex 2010-01-05
  • 打赏
  • 举报
回复
如果B可以先运行,那就有很多种方法了!每隔一段时间遍历一次进程,发现A启动就报告这个很简单呀!
bendows 2009-11-10
  • 打赏
  • 举报
回复
想造病毒呀?
rcyboom 2009-11-03
  • 打赏
  • 举报
回复
【这就是我思考的问题,总觉得系统应该有这种机制,A启动后就触发B(B可以随便写),是否可以在注册表里绑定一些什么内容,就是当A启动后触发B】
有是有,但一般都是需要a进行配合的,要不系统不忙死?
既然现在a不能动,
最简单的办法就是:
把a改个名字如c,自己写一个程序改成a,a启动时就可以完成你要的功能了。比如同是启动c,或者等c启动后干点什么的都可以。
Rya 2009-10-31
  • 打赏
  • 举报
回复
有没有人再帮看一下
la_feng 2009-10-31
  • 打赏
  • 举报
回复
修改注册表实现镜像劫持可以达到效果,不过杀毒软件肯定也会不让你这么做,至少会不断提醒,不知道lz要干什么,如果你有必要一定要这么做,那别装杀软好了,镜像劫持就可以达到你说的效果了
Rya 2009-10-31
  • 打赏
  • 举报
回复
再不行我降要求吧,B可以先启动,用于监听A是否启动
Rya 2009-10-31
  • 打赏
  • 举报
回复
这就是我思考的问题,总觉得系统应该有这种机制,A启动后就触发B(B可以随便写),是否可以在注册表里绑定一些什么内容,就是当A启动后触发B
kouwenlong 2009-10-31
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 rya 的回复:]
事先声明,A启动前B也不能运行的,只有当A启动的时候B才启动运行
[/Quote]
那就用进程监控就行了。
你说的有点矛盾吧。
假设你要启动B,该怎么判断。是检测A是否启动吧,如果A没启动,那B也不启动。但是如果A启动了,那么就不满足你启动A,同时启动B的条件吧。

do_fork 2009-10-31
  • 打赏
  • 举报
回复
好奇怪的需求,为什么不能弄个C,一开机就启动,关机才结束,检测A是否已启动
Rya 2009-10-31
  • 打赏
  • 举报
回复
事先声明,A启动前B也不能运行的,只有当A启动的时候B才启动运行
kouwenlong 2009-10-31
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rya 的回复:]
A是别人做的,不能动
现在能操作的只有B,用注册表不知道能不能实现
[/Quote]
A不能动,那可以通过监视A线程的启动,然后确定是否执行B。
应该能够实现。
Rya 2009-10-31
  • 打赏
  • 举报
回复
A是别人做的,不能动
现在能操作的只有B,用注册表不知道能不能实现
jack20042005 2009-10-31
  • 打赏
  • 举报
回复
Mark
butwang 2009-10-31
  • 打赏
  • 举报
回复
写个监视A的程序,如果A启动了,就执行B
jackyjkchen 2009-10-31
  • 打赏
  • 举报
回复
回楼上,A貌似不能动的说
kouwenlong 2009-10-31
  • 打赏
  • 举报
回复
这个好事先把,在A开始执行的时候:
加上ShellExecute(Handle, 'Open ', "你要运行程序的名字",nil,nil,SW_SHOW);
下面是参数:
HINSTANCE       ShellExecute(       

HWND hwnd, //运行的窗口句拼
LPCTSTR lpOperation, // 运行方式
LPCTSTR lpFile, // 文件及路径
LPCTSTR lpParameters, // 参数(一般程序没有)
LPCTSTR lpDirectory, // 默认搜索路径
INT nShowCmd // 当程序运行后的显示方式
)

1、如果lpFile是一个可执行文件则ShellExecute直接执行它;如果lpFile是一个数据文件,则ShellExecute首先在注册表中查找和这种类型数据文件相关练的可执行文件,如果找到则执行这个可执行文件,否则启动失败,函数返回值为ERROR_FILE_NOT_FOUND

2、lpParameters是参数,如果lpFile是EXE文件,则参数有用,否则没用。

3、lpDirectory搜索路经可以不指定。

4、lpOperation是打开方式,可以为
"open ",lpFile必须是一个文件
"explorer ", lpFile必须是一个文件夹
"print "三中类型,lpFile必须是一个文件
CmdShow Long,为窗口指定可视性方面的一个命令。请用下述任何一个常数
SW_HIDE 隐藏窗口,活动状态给令一个窗口
SW_MINIMIZE 最小化窗口,活动状态给令一个窗口
SW_RESTORE 用原来的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOWMAXIMIZED 最大化窗口,并将其激活
SW_SHOWMINIMIZED 最小化窗口,并将其激活
SW_SHOWMINNOACTIVE 最小化一个窗口,同时不改变活动窗口
SW_SHOWNA 用当前的大小和位置显示一个窗口,不改变活动窗口
SW_SHOWNOACTIVATE 用最近的大小和位置显示一个窗口,同时不改变活动窗口
SW_SHOWNORMAL 与SW_RESTORE相同
jackyjkchen 2009-10-31
  • 打赏
  • 举报
回复
很诡异的需求,目的是什么,如果A本身不调用B的话,B在硬盘上不可能因为A启动而自己启动的。
do_fork 2009-10-31
  • 打赏
  • 举报
回复
如果不能修改A,比较困难,虽然可以映像劫持,不过容易被杀毒软件为难
如果可以修改A,直接把A替换成B,在B中启动原有的A

24,855

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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