需求:通过Unity启动外部的一个winform程序,传参数进行初始化。 程序启动后,untiy通过winApi给启动的程序发消息。
unity调用HoneyWellSDK显示视频,关闭的时候藏至后台。(后续发现,honeywell能通过Rtsp的方式,直接调用视频)
Untiy端:
Process myprocess;//摄像头程序进程
public const int WM_COPYDATA = 0x004A; //进程发送信息标识,之前用别的不行,用这个winform才接收到消息
public string HoneyWellWindowName = "HoneyWellVideoMonitor";
/// <summary>
/// 创建新进程
/// </summary>
/// <param name="fileName"></param>
/// <param name="args"></param>
private void CreateNewProcess(string args,string fileName="")
{
if(string.IsNullOrEmpty(fileName))
{
if (IsSDKInit) return;
fileName = Application.dataPath + "\\..\\release\\HUSSDKDemo.exe";
if (!File.Exists(fileName))
{
UnityEngine.Debug.LogErrorFormat("path:{0} not exist!", fileName);
return;
}
IsSDKInit = true;
}
myprocess = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo(fileName, args);
myprocess.StartInfo = startInfo;
myprocess.StartInfo.UseShellExecute = false;
myprocess.Start();
}
/// <summary>
/// 开启视屏程序
/// </summary>
/// <param name="args"></param>
/// <returns></returns>
private void StartProcess(string args)
{
try
{
string fileName = Application.dataPath + "\\..\\release\\HUSSDKDemo.exe";
if (!File.Exists(fileName))