24小时热门版块排行榜    

查看: 814  |  回复: 9

bianguojun

新虫 (小有名气)

[交流] 【求助】连接两个软件 已有5人参与

用MFC编了个小软件 想和另外一个软件(MFC编)链接起来  比如点下按钮就链接到另一个软件 不知道能不能实现 怎么实现
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ajian04(金币+1):谢谢参与交流~ 2010-11-04 21:55:31
不懂楼主说的“链接”是什么意思
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
2楼2010-11-04 16:39:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

bianguojun

新虫 (小有名气)

引用回帖:
Originally posted by magic7004 at 2010-11-04 16:39:36:
不懂楼主说的“链接”是什么意思

就在其中一个软件中点下按钮 能打开另外一个软件
3楼2010-11-04 16:51:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ajian04(金币+1):谢谢参与交流~ 2010-11-04 21:55:38
可以用OpenProcess函数. 详查MSDN
4楼2010-11-04 18:24:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ajian04(金币+1):谢谢参与交流~ 2010-11-04 21:55:45
CreateProcess
ShellExcute
都可以的
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
5楼2010-11-04 20:17:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fzr417

木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ajian04(金币+2):谢谢参与交流~ 2010-11-04 21:55:53
引用回帖:
Originally posted by bianguojun at 2010-11-04 16:35:38:
用MFC编了个小软件 想和另外一个软件(MFC编)链接起来  比如点下按钮就链接到另一个软件 不知道能不能实现 怎么实现

给你举个计算器的例子,你体会编写一下,就明白了

第一个VC按钮
        WinExec("calc.exe", SW_SHOW);
这句是打开计算器,可以直接替换成你要打开的那个文件名,比如d盘下面的a.exe,应该这样写"D:\\a.exe",注意是双斜杠,此类函数比较多,你还可以用ShellExecute、CreateProcess或system,具体的每个函数的用法自己查一下MSDN吧,好运!

第二个VC按钮
        HWND   hWnd   =   ::FindWindow("SciCalc","计算器";
获得打开计算器的句柄,SciCalc可以由VC自带工具spy++来侦查,下面的0x83也是
        HWND     hButton   =   ::GetDlgItem(hWnd,0x83);
获得按钮的句柄,此处是获得计算器中7
        ::SendMessage(hButton,WM_LBUTTONDOWN,MK_LBUTTON,NULL);
由按钮句柄发送消息按下鼠标左键消息
        ::SendMessage(hButton,WM_LBUTTONUP,MK_LBUTTON,NULL);
由按钮句柄发送消息抬起鼠标左键消息
6楼2010-11-04 20:56:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


ajian04(金币+1):谢谢交流~ 2010-11-05 17:42:56
引用回帖:
Originally posted by fzr417 at 2010-11-04 20:56:35:


给你举个计算器的例子,你体会编写一下,就明白了

第一个VC按钮
        WinExec("calc.exe", SW_SHOW);
这句是打开计算器,可以直接替换成你要打开的那个文件名,比如d盘下面的a.exe,应该这样写&qu ...

学到了很多。。。
好好学习,天天向上。
7楼2010-11-05 00:20:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ajian04(金币+1):谢谢交流~ 2010-11-05 17:43:02
引用回帖:
Originally posted by fzr417 at 2010-11-04 20:56:35:


给你举个计算器的例子,你体会编写一下,就明白了

第一个VC按钮
        WinExec("calc.exe", SW_SHOW);
这句是打开计算器,可以直接替换成你要打开的那个文件名,比如d盘下面的a.exe,应该这样写&qu ...

貌似WinExec不如ShellExecute好用
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
8楼2010-11-05 08:39:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

holmescn

金虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ajian04(金币+1):谢谢交流~ 2010-11-05 17:43:08
强烈建议使用CreateProcess或者OpenProcess这样的函数,因为你可以对打开的程序有更多的控制权
9楼2010-11-05 11:37:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

magic7004

金虫 (职业作家)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ajian04(金币+2):谢谢交流~ 2010-11-05 17:43:15
引用回帖:
Originally posted by holmescn at 2010-11-05 11:37:22:
强烈建议使用CreateProcess或者OpenProcess这样的函数,因为你可以对打开的程序有更多的控制权

不需要那么多控制权的时候,就可以用ShellExecute啊。

只是WinExec这个函数不要用了,因为MSDN里有注解:
Note  This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.

另外WinExec这个函数不安全:
Security Remarks

The executable name is treated as the first white space-delimited string in lpCmdLine. If the executable or path name has a space in it, there is a risk that a different executable could be run because of the way the function parses spaces. The following example is dangerous because the function will attempt to run "Program.exe", if it exists, instead of "MyApp.exe".

WinExec("C:\\Program Files\\MyApp", ...)

If a malicious user were to create an application called "Program.exe" on a system, any program that incorrectly calls WinExec using the Program Files directory will run this application instead of the intended application.

To avoid this problem, use CreateProcess rather than WinExec. However, if you must use WinExec for legacy reasons, make sure the application name is enclosed in quotation marks as shown in the example below.

WinExec("\"C:\\Program Files\\MyApp.exe\" -L -S", ...)
流氓不可怕,可怕的是流氓有文化,有文化又BH的流氓无敌~~!
10楼2010-11-05 14:31:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 bianguojun 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见