2 Different GUI needs the same inputs
1 回表示 (過去 30 日間)
古いコメントを表示
Hello, i have opened 2 different Matlab IDES that runs separately the same program, i need to start 2 equal programs in matlab that have 2 identical GUI interface, but i need them to read the same keyboards inputs and they do not, they only read it when i click on the GUI, is there a solution ?
2 件のコメント
chrisw23
2023 年 3 月 21 日
2 Matlab IDE's connected via NamedPipes can share data either on the same local machine or via network. Each GUI detects the keyboard input an sends a message to the other. The NamedPipe connection can be optional so that GUI instances may run independent, but the Srv/Client role has to be set (i.e. UserOption).
I set up a package with a Srv and a Client class. (example constructor code fragment)
function obj = PipeServer(pipeName)
import System.IO.Pipes.*
import WinNetIO.NamedPipes.*
NET.addAssembly("System.Core");
obj.PipeName = pipeName;
obj.pipeServerStream = NamedPipeServerStream(...
pipeName, ...
PipeDirection.InOut, ...
...
function obj = PipeClient(pipeName,pipeServer)
arguments
pipeName string
pipeServer string = "." % for local computer
end
import System.IO.Pipes.*
import WinNetIO.NamedPipes.*
% PipeName and Server
obj.PipeName = pipeName;
obj.PipeServerName = pipeServer;
NET.addAssembly('System.Core');
% client pipeStream object is opened in InOut mode
obj.pipeClientStream = System.IO.Pipes.NamedPipeClientStream(...
obj.PipeServerName,...
obj.PipeName,...
回答 (1 件)
Rik
2023 年 3 月 20 日
There is no general solution to do this, because the two instances of Matlab are separate.
If Matlab were able to do this, it could function as a key logger.
A workaround would be to have the active GUI write the key presses to a file, which the non-active GUI can then read with a listener.
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Get Started with MATLAB についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!