0

ASP.netアプリケーションでは、ボタンをクリックしてEXEを開く必要があります。EXEが開いているときは、ユーザーがWebフォームでアクションを実行できないようにする必要があります。つまり、exeはモーダルポップアップのように動作する必要があります。現在のコードを使用して、EXEを開いて値を返しています。

        Dim p As Process

    p = Process.Start("D:\VS2010Projects\SignatureCaptureWindows\bin\Debug\SignatureCaptureWindows.exe")

    p.WaitForExit()

    If (Not p.ExitCode.Equals(0)) Then
        Response.Write("Image Successfully saved in Database with ID = " + p.ExitCode.ToString())
        DisplaySavedImage(p.ExitCode)
    End If

エグゼは正常に開き、正しい値を返しています。ただし、exeが開いている場合、ユーザーはWebフォームでアクションを実行できます...

そのようなシナリオを処理するための最良の方法は何でしょうか?

4

1 に答える 1

1

あなたがそれを勝ち取った方法をすることは不可能です。ユーザーが送信を送信するか、ページを開こうとした瞬間から、背後のコードでこのexeを実行すると、ユーザーは結果を待つことになります。この場合、ユーザーに他に何もしないようにすることはできません。ブラウザをロックしないでください。ユーザーはブラウザを閉じたり、リロードしたり、同じページを再度開いたりすることができます。

あなたができることは、を使用してこのプロセスをロックMutexし、すべての準備ができている場合は再度実行できないようにすることです。

例を使用したmsdnのMutex:http: //msdn.microsoft.com/en-us/library/system.threading.mutex.aspx

于 2012-08-24T10:08:13.907 に答える