Unity:在两个程序之间传递信息

时间:2018-03-21 18:33:01

标签: c# unity3d process

我正在尝试设计一个应用程序启动器系统,并且已经找到了如何使启动程序在path / app.exe上运行应用程序,以及将侦听器附加到该进程以检测它何时关闭。

显然,在此过程中,启动器会在移动到背景中时失去焦点。有没有办法继续听取键盘输入并在后台执行操作。如果启动器可以将信息传递给正在运行的应用程序,那将是理想的,所有这些都不会使应用程序失去焦点。

值得注意的是,启动器和应用程序都将使用c#在Unity中制作,所以如果有一个解决方案涉及应用程序为启动器设置某种类型的监听器那么这将是好的,但为了安全原因,启动器必须是监听键盘按下操作的过程。

1 个答案:

答案 0 :(得分:1)

.NET Framework中有一些进程间通信的方法,你可以选择你的毒药: https://msdn.microsoft.com/en-us/library/windows/desktop/aa365574.aspx

也可以通过低级键盘挂钩拦截键盘事件。但是,这些要求您使用无人管理的Windows API。这反过来意味着您已离开托管代码:https://www.codeproject.com/Articles/19004/A-Simple-C-Global-Low-Level-Keyboard-Hook

这里最大的不确定因素是Unity。 Unity通常以Mono Framework为目标。我不确定Mono有哪些IPC选项。 Unity也通常适用于运行在多个操作系统上的程序(Linux / Windows / Mac兼容性)。这将进一步限制您的IPC选项。并且破坏了让键盘挂钩的机会。