#region 显示程序
[DllImport("user32.dll", EntryPoint = "FindWindow")]
public static extern int FindWindow(string lpClassName, string lpWindowName);
/// <summary>
/// 该函数设置由不同线程产生的窗口的显示状态。
/// </summary>
/// <param name="hWnd">窗口句柄</param>
/// <param name="cmdShow">指定窗口如何显示。查看允许值列表,请查阅ShowWlndow函数的说明部分。</param>
/// <returns>如果函数原来可见,返回值为非零;如果函数原来被隐藏,返回值为零。</returns>
[DllImport("User32.dll")]
private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
/// <summary>
/// 该函数将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号。系统给创建前台窗口的线程分配的权限稍高于其他线程。
/// </summary>
/// <param name="hWnd">将被激活并被调入前台的窗口句柄。</param>
/// <returns>如果窗口设入了前台,返回值为非零;如果窗口未被设入前台,返回值为零。</returns>
[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
private const int WS_SHOWNORMAL = ; Process process = null;
IntPtr appWin; [DllImport("user32.dll", SetLastError = true)]
private static extern long SetParent(IntPtr hWndChild, IntPtr hWndNewParent); [DllImport("user32.dll", SetLastError = true)]
private static extern bool MoveWindow(IntPtr hwnd, int x, int y, int cx, int cy, bool repaint);
#endregion
private void ToolStripMenuItem1_Click(object sender, EventArgs e)
{
foreach (Control c in pnlMain.Controls)
{
if (c.GetType().BaseType == typeof(Form))
{
((Form)c).Close();
}
} try
{
string[] arrStr = IniData.VideoUrl.pathvalue.Split('.');
arrStr = arrStr[].Split('\\');
string winName = arrStr[arrStr.Length - ];
if (!string.IsNullOrEmpty(winName))
{ int hWnd = FindWindow(winName, null);
if (hWnd == )
{
//不存在
try
{
// Start the process
process = System.Diagnostics.Process.Start(IniData.VideoUrl.pathvalue);
// Wait for process to be created and enter idle condition
process.WaitForInputIdle(); // Get the main handle
appWin = process.MainWindowHandle;
}
catch (Exception ex)
{
MessageBox.Show(this, ex.Message, "Error");
}
}
else
{
IntPtr p = new IntPtr(hWnd);
//存在
SetForegroundWindow(p); ShowWindowAsync(p, WS_SHOWNORMAL); //显示
SetForegroundWindow(p); //放到前端 }
}
else
{
AbstractPlugin.APluginDevice.ExportLog("摄像监控:程序路径配置有误。");
}
}
catch
{
AbstractPlugin.APluginDevice.ExportLog("摄像监控:程序路径配置有误。");
}
}

最新文章

  1. ThreadPool.QueueUserWorkItem的用法
  2. jQuery extend 实现代码封装
  3. Eclipse的安装和java环境变量的设置
  4. 【C语言】10-字符和字符串常用处理函数
  5. php三维数组变二维数组
  6. JavaScript——关于字符串的replace函数中的function函数的参数
  7. java代码判断图片文件格式, 不是根据文件后缀来判断。
  8. C#:ref和out的联系及区别
  9. Python爬虫实战(3):安居客房产经纪人信息采集
  10. srm 534
  11. 一种根据URL参数条件动态生成URL的方法
  12. 解决cuvid中的sample编译和链接问题
  13. java0422 wen 集合框架
  14. netperf
  15. 基于stm32的水质监测系统项目基础部分详细记录
  16. usb协议栈学习笔记
  17. hadoop 学习笔记
  18. SQLServer&#160;学习笔记之超详细基础SQL语句&#160;Part&#160;12(The&#160;End)
  19. java常用API之DateFormat
  20. AdjustTokenPrivileges启用权限

热门文章

  1. golan切片
  2. Oracle 11g Java驱动包ojdbc6.jar安装到maven库,并查看jar具体版本号
  3. Spark 系列(一)—— Spark简介
  4. WPF窗体动态效果
  5. 关于Java无法解码(ajax编码 Java解码)
  6. RESTful 的学习总结
  7. ConsoleLoggerExtensions.AddConsole(ILoggerFactory)已过时代码修复
  8. 1 集群状态、增删改查、全量替换、强制创建、设置单个index的分片数副本数
  9. flutter 动画 practice
  10. Java 之 Servlet 3.0