这是源代码的mex文件,我做了,它发送文本到任何Windows应用程序从Matlab。我需要做这个,因为我有一个只能在超级终端中输入的设备,但我希望能够自动完成。
到MEX此文件,CD到目录和MATLAB类型:
墨西哥人“textInject.cc”
然后通过键入来使用该文件
textInject (WindowName, X, Y, TextToSend)
Windowname的示例是'Untitled - Notepad'
X和Y是相对于窗口的坐标,其中的编辑字段是您试图“输入”的。例如记事本为X=1和Y=1。如果你找不到正确的坐标,试着截屏并使用Paint。
对于TextToSend,你可以放入任何字符串,但如果你想要换行或回车,你应该在sprintf()中包装字符串以应用所需的格式。
希望这对别人有用,因为我花了几天要弄清楚如何做到这一点:s
菲利普(2021)。TextInject(//www.tianjin-qmedu.com/matlabcentral/fileexchange/29594-textinject), MATLAB中央文件交换。检索.
哦对不起。我的错误,根本没有虫子。非常感谢。
非常酷,但有一个错误。
嗨amirhosein,
是的!这是我之前准备的人:)
//www.tianjin-qmedu.com/matlabcentral/fileexchange/40001-keyinject
你好,我想发送键盘键到一个软件,就像从键盘上按一个键,在一个软件不是一个字符串,你能解决这个吗?
你好,我想发送键盘键到一个软件,就像从键盘上按一个键,在一个软件不是一个字符串,你能解决这个吗?
非常好!
确定。我用来交流的设备是照相机。下面是我用来改变相机增益的代码示例:
textInject(“Pulnix——超级终端”,100100年,sprintf (': GMFF \ r '))
:表示信号的开始,\r表示结束。我知道这些符号在这种设备通信中很常见,所以可能也适用于你的设备。
其余的是特定于这个(Pulnix)相机的设备,这表明我们想要改变增益,手动设置它,并将其值设为255(十六进制FF)。
希望这可以帮助。
伟大的计划
我还拥有一个设备,即我只能通过在Windows命令窗口或超级终端内建立TeleNet连接来沟通。你能给你有一些关于你如何制作互动脚本的提示吗?
嗨jan,
这是重命名Matlab窗口的一个巧妙的技巧,谢谢!
不幸的是,两者都不起作用。然而,我知道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菲利普!
我想在另一个matlab的命令行中发送命令。我可以使用这个mex吗?
(我想打开另一个Matlab Windows并在那个中运行mfile!)
多么残酷的功能!你可以用它做很多丑陋的事情。但对于奇怪的工作来说,这简直是不可思议的。
马塔尔在评估前一定要问一下。
你好,彼此。
Cd到目录,并在Matlab类型:
墨西哥人“textInject.cc”
然后通过键入来使用该文件
textInject (WindowName, X, Y, TextToSend)
我在上面的评论里写了这个,你读了吗?
这是c语言的代码。
我如何在matlab中使用它?