簡體   English   中英

從asp.net mvc調用exe

[英]calling an exe from asp.net mvc

我有一個用C#編寫的應用程序。 基本上是一個exe文件。 該應用程序每隔3秒掃描一次網絡,並使用網絡信息填充數據庫。

我想從asp.net mvc運行此應用程序幾秒鍾,然后將其停止,然后再次啟動和停止。

我需要單擊開始按鈕來啟動exe,並且需要單擊停止按鈕來停止它。 該exe文件將一直運行,直到調用它后我單擊停止按鈕為止。

是否可以從asp.net mvc框架調用此exe?

如果是,該怎么辦? 我需要一些指示。 請提供我。

您將需要名稱空間System.Diagnostics和System.Timers。 然后按照以下步驟操作。

    static System.Timers.Timer tTimer;
    const Int32 iInterval = 30;
    static Boolean IsProcessRunning = false;
    static Int32 iProcessID = 0;

    static Int32 SetTimerInterval(Int32 minute)
    {
        if (minute <= 0)
            minute = 60;
        DateTime now = DateTime.Now;

        DateTime next = now.AddMinutes((minute - (now.Minute % minute))).AddSeconds(now.Second * -1).AddMilliseconds(now.Millisecond * -1);

        TimeSpan interval = next - now;

        return (Int32)interval.TotalMilliseconds;
    }

    static void timer_Elapsed(object sender, EventArgs e)
    {   
        if (!IsProcessRunning)
        {   
            ProcessStartInfo objStartInfo = new ProcessStartInfo();
            objStartInfo.FileName = "C:\\Windows\\notepad.exe";

            Process objProcess = new Process();
            objProcess.StartInfo = objStartInfo;
            objProcess.Start();

            iProcessID = objProcess.Id;
            IsProcessRunning = true;
        }
        else
        {
            Process objProcess = Process.GetProcessById(iProcessID);
            objProcess.Kill();
            IsProcessRunning = false;
        }

        tTimer.Interval = SetTimerInterval(iInterval);
    }

然后在開始按鈕上單擊...

    tTimer = new System.Timers.Timer();
    tTimer.Interval = SetTimerInterval(iInterval);
    tTimer.Elapsed += new System.Timers.ElapsedEventHandler(timer_Elapsed);
    tTimer.Start();

您可以隨時通過以下方式停止此操作:

    tTimer.Stop();

你准備好了...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM