切換程式範例

  • 572
  • 0
  • C#
  • 2018-01-15

demo

常常我們需要demo多個程式。這時候就可以用這樣的方法才實作。


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;//using 這一個
using System.Diagnostics;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
         System.Diagnostics.Process myProcess = new System.Diagnostics.Process();

         [DllImport("User32.dll")]
         private static extern bool ShowWindowAsync(IntPtr hWnd, int cmdShow);
         [DllImport("User32.dll")]
         private static extern bool SetForegroundWindow(IntPtr hWnd);
         
         //API 常數定義 修改窗體展開大小
         private const int SW_HIDE = 0;
         private const int SW_NORMAL = 1;
         private const int SW_MAXIMIZE = 3;
         private const int SW_SHOWNOACTIVATE = 4;
         private const int SW_SHOW = 5;
         private const int SW_MINIMIZE = 6;
         private const int SW_RESTORE = 9;
         private const int SW_SHOWDEFAULT = 10;

         private static String 記錄目前前景程式名稱 = string.Empty;

         private String[] 程式執行陣列 = new string[5];
        
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Interval = Convert.ToInt16(numericUpDown1.Value) * 1000;
            timer1.Start();

            程式執行陣列[0] = @"C:\路徑\程式壹.exe";
            程式執行陣列[1] = @"C:\路徑\程式貳EXE\INV1003NET.exe";

            foreach (var item in 程式執行陣列)
            {
                if (item != null)
                {
                    myProcess.StartInfo.FileName = item;
                    myProcess.Start();
                }
            }
        }

        public static void HandleRunningInstance(Process instance)        
        {
            // 相同時透過ShowWindowAsync還原,以及SetForegroundWindow將程式至於前景
            ShowWindowAsync(instance.MainWindowHandle, SW_MAXIMIZE);
            SetForegroundWindow(instance.MainWindowHandle);
            記錄目前前景程式名稱 = instance.ProcessName;
        }  

        private void 顯示前景(String 程式名稱)
        {
            // 取得目前電腦的處理序
            foreach (Process pTarget in Process.GetProcesses())
            {
                if (pTarget.ProcessName == 程式名稱)  // 取得處理序名稱並與指定程序名稱比較
                {
                    HandleRunningInstance(pTarget);
                }
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (記錄目前前景程式名稱 == "程式貳")
                顯示前景("程式壹");
            else if (記錄目前前景程式名稱 == "程式壹")
                顯示前景("程式貳");
            else
                顯示前景("程式壹");
        }
    }
}

 

 

興滿逸筑2013年全新完工,位於恆春鎮外圍離市區只要2分鐘車程,有豪華的外觀、有美麗的庭院、也有溫馨舒適的房間,這裡車流量不多,空氣不錯,適合家族或成群結黨的朋友們一同旅遊的好地方。

http://sinmaniz.tw/index.html