这是我制作的MEX文件的源代码,它将文本发送到MATLAB中的任何Windows应用程序。我需要做到这一点,因为我有一个设备,我只能通过键入超级终端来沟通,但我希望能够自动执行它。
到MEX此文件,CD到目录和MATLAB类型:
mex'textinject.cc'
然后通过键入使用该文件
TextInject(Windowname,x,y,textoSend)
Windowname的示例是'Untitled - Notepad'
X和Y相对于窗口是协调的,编辑字段是您尝试“键入”的。记事本示例是x = 1且y = 1。如果您无法找到正确的协调,请尝试拍摄屏幕截图并使用油漆。
对于TextToSend,您可以放入任何字符串,但如果您想要e:g.换行符返回您应该将strintf()中的字符串包装在一起以应用所需的格式。
希望这对别人有用,因为我花了几天要弄清楚如何做到这一点:s
Phillip(2021)。TextInject.(//www.tianjin-qmedu.com/matlabcentral/fileexchange/29594-textinject),matlab中央文件交换。检索到。
哦对不起。我的错误,根本没有虫子。非常感谢。
非常酷,但有一个错误。
嗨amirhosein,
是的!这是我之前准备的人:)
http://www.mathwands.com/matlabcentral/fileexchange/40001-keyInject.
你好我想向一个软件发送键盘键,如软件中的键盘中的键,而不是一个字符串,你可以解决这个吗?
你好我想向一个软件发送键盘键,如软件中的键盘中的键,而不是一个字符串,你可以解决这个吗?
非常好!
当然。我与相机通信的设备。以下是我用来更改相机增益的代码的示例:
TextInject('pulnix - hyperterminal',100,100,sprintf(':gmff \ r'))
:表示信号的开头,\ r表示结束。我理解这些是具有这种类型的设备通信的非常常见的符号,因此可能也适用于您的设备。
其余的是特定于此(Pulnix)相机的设备,指示我们要更改增益,请手动设置,并为255(以十六进制格式为FF)。
希望这可以帮助。
伟大的计划
我还拥有一个设备,即我只能通过在Windows命令窗口或超级终端内建立TeleNet连接来沟通。你能给你有一些关于你如何制作互动脚本的提示吗?
嗨jan,
这是重命名Matlab窗口的整洁诀窍,谢谢!
既不是\ n也不是\ r工作。然而,我知道Matlab命令行*可以*识别换行符,因为当您复制粘贴代码时,您可以选择不可见的换行符,当您将其粘贴到命令行时,它将直接执行。但这种内部MATLAB字符不得匹配ANSI C标准(可能是为了防止恶意脚本攻击?)。
您可以设置MATLAB窗口的名称:m = com.mathworks.mde.desk.mldesktop.getInstance.getMainFrame;
M.Settitle('matlab实例1');
char(10)(\ n)工作而不是char(13)(\ r)?
拉赫曼,我不确定我知道如何做你所要求的。当我打开一个新的matlab窗口时,它与另一个具有相同的名称。也许如果您使用两个不同版本的Matlab!
即便如此,此函数才只将文本插入命令行,即使您将返回字符(\ r)插入,它也不会执行它。
如果要使用此函数找到MATLAB窗口,请在窗口名称中“MATLAB”之后有两个空格,例如我的窗口名称是:
“Matlab 7.8.0(R2009A)”
TNX Phillip!
我想在另一个matlab的命令行中发送命令。我可以使用这个mex吗?
(我想打开另一个Matlab Windows并在那个中运行mfile!)
多么残酷的功能!你可以用它做很多丑陋的东西。但对于奇怪的工作,它只是非常奇妙。
Matar肯定应该在他之前问。
你好马尔。
CD到目录和MATLAB类型:
mex'textinject.cc'
然后通过键入使用该文件
TextInject(Windowname,x,y,textoSend)
我在上面的评论中写了这篇文章 - 你读过它们吗?
这是C中的代码。
如何在Matlab中使用它?