0

これが私の問題です。カスタムエラーを表示するためにform1(私)をWebブラウザで使用しています。INIファイルをチェックして必要な画面を確認し、navagate.webbrowser1とWebアドレスを実行してから、フォーム全体を占める Web ブラウザを使用してフォームを作成します。これを実行すると、黒い画面または白い画面が表示されるか、前面にフォームが設​​定されていません。このプロセス中にバックグラウンドでプリンターをインストールするプログラムを呼び出します。

他のプログラムが実行されて終了している間、フォームを前面に表示したいのですが、これでプログラムは終了です。Web ページには、プログラムがまだ実行されていることを示すアニメーションがいくつかありますが、取得できません。表示するフォーム。

ここに私のコードがあります:

        '*********************************************************************************************
        'this set the correct screen for Exit
        '*********************************************************************************************
        RBoot = reboot1
        If RBoot = "True" Then

            closeweb = "https://xxxxxxxxxxxxxxx/_report/enrollment.asp?page=completesuccess"
            WebBrowser1.Navigate("https://XXXXXXXXXXXX/_report/enrollment.asp?page=completesuccess")
            var1 = 0
            Form9.Hide()
            Form10.Hide()
            Do Until var1 = 5
                Me.Show()
                Me.Refresh()
                Thread.Sleep(400)
            Loop


        ElseIf RBoot = "False" Then

            closeweb = "https://XXXXXXXXXXXXXX/_report/enrollment.asp?page=completenoreboot&name=" & computername
            WebBrowser1.Navigate("https://XXXXXXXXXXXXXXX/_report/enrollment.asp?page=completenoreboot&name=" & computername)
            var1 = 0
            Form9.Hide()
            Form10.Hide()
            Do Until var1 = 5
                Me.Show()
                Me.Refresh()
                Thread.Sleep(400)
            Loop


        End If


        '*********************************************************************************************
        ' this runs the Printer Installer
        '*********************************************************************************************
        Dim Compini As String = My.Computer.FileSystem.ReadAllText("C:\temp\computerinfo.ini")
        logg = "Computer Info INI:" & vbCrLf & Compini
        Call logging()

        If Compini.Contains("Printer") Then

            If My.Computer.FileSystem.FileExists(current_DIR & "\ Printer Installer\Printerinstaller.exe") Then
                Me.Show()
             Dim printerinstall As New Process
                printerinstall.StartInfo.FileName = current_DIR & "\Printer Installer\PrinterInstaller.exe"
                printerinstall.StartInfo.Arguments = " -D C"
                printerinstall.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                printerinstall.Start()
                Try
                    While printerinstall.HasExited = False
                        Thread.Sleep(200)
                        Me.Show()
                    End While
                Catch ex As InvalidOperationException
                End Try
                logg = "Ran " & current_DIR & "\Printer Installer\PrinterInstaller.exe"
                Call logging()
            Else
                logg = "Can't Find " & current_DIR & "\Printer Installer\PrinterInstaller.exe"
                Call logging()
                WebBrowser1.Navigate("https://XXXXXXXXXXXXXXXX/_report/enrollment.asp?page=printerinstallernotfound&name=" & computername)
                Form9.Hide()
                Form10.Hide()
                Me.Show()
                Exit Sub
            End If
        Else
            logg = "No Printer Selected and Printer Installer didn't run"
            Call logging()
        End If
4

2 に答える 2

0

「closeweb」変数がそこにあるのはなぜですか? 目的を果たせていないようです

他の場所で「reboot1」を再利用していますか? そうでない場合、上部の変数名を変更するのはなぜですか?

form9 と form10 を非表示にしないことを検討してください。表示しようとしているコンテンツがそれらに含まれていないことを確認してください。

ループを削除してください。コードは不要です。そこでやろうとしていることを達成するためのはるかに優れた方法があります。ループなしで「自分」フォームを表示して、何が起こるかを確認してください (更新しないでください)。

プリンターのインストール プロセスで、フォームを非表示にしてから再び表示します。自分が何をしているかをよりよく追跡できるように、それらに名前を付ける必要があります。このすべての非表示と表示が黒/白の画面を引き起こしているようです。

于 2013-02-20T20:08:13.137 に答える
0

次の方法で、フォームを前面に表示できます。

Form1.TopMost = True

そして、フォームを最小化できます:

Form1.WindowState = FormWindowState.Minimized

(同じフォームを参照しForm1Meいる場合は に変更)

于 2013-02-20T18:43:19.340 に答える