求教matlab调用交互的exe文件如何把exe中的交互命令写入脚本。

求教matlab调用交互的exe文件如何把exe中的交互命令写入脚本。,第1张

#include <iostream>

using namespace std

/**

* 定义Coordinate类

* 友肢闭元函数:display

* 数据成员:m_iX、m_iY

*/

class Coordinate

{

// 友元函数

friend void display(Coordinate &coor)

public:

Coordinate(int x, int y)

{

m_iX = x

m_iY = y

}

public:

int m_iX

int m_iY

}

void display(Coordinate &coor)

{

cout <<"m_iX:" <谨租<coor.m_iX <<endl

cout <<"历晌裂m_iY:" <<coor.m_iY <<endl

}

int main(void)

{

Coordinate coor(1,2)

display(coor)

return 0

}

这个其实用消息SendMessageEx的话最为简单, 提示个思路

A程序可以通过B程序的名称获取到钩子ProcessID,得到句颂拆柄,发送消息 send +参数 到B , B重写 DefWndProc消息方法, 捕获send事件 进行处理 ,(这个时间 可以让界面有一系列的反应) . B处理完成后, 按悄樱旦同样的方法把结果发送给A

两段关键代码

//重写消息

protected override void DefWndProc(ref System.Windows.Forms.Message m)

{

switch (m.Msg)

{

case WM_COPYDATA:

COPYDATASTRUCT mystr = new COPYDATASTRUCT()

Type mytype = mystr.GetType()

mystr = (COPYDATASTRUCT)m.GetLParam(mytype)

//mystr:参数

default:

base.DefWndProc(ref m)

break

}

}

//发送消息启扰

private static void Send(IntPtr hwid, string str)

{

byte[] sarr = System.Text.Encoding.Default.GetBytes(str)

int len = sarr.Length

COPYDATASTRUCT cds

cds.dwData = (IntPtr)100

cds.lpData = str

cds.cbData = len + 1

SendMessage(hwid, WM_COPYDATA, 0, ref cds)

}

#!/usr/bin/env python import sys str = True while (str): dig = int(input()) if dig >100: print 'please input mun between 0~100' elif dig >高郑= 90: print 'A' elif dig >= 80: print 'B' elif dig >袭岩= 70: print '戚禅颂C' elif dig >= 60: prin...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12143096.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存