アプリケーションを更新するとき、情報が保存されているテキスト ファイルから読み取る必要があります。読み取った後、「file.close()」を閉じたことを確認します。次にアプリケーションを更新するときに、テキスト ファイルが再度生成され、前のファイルが上書きされます。
問題は、別のプロセスで明らかに使用されているためファイルを変更できないことですが、アプリケーションを閉じるとすぐに正常に動作します。プロセスを更新する前にプロセスを停止して、正しく動作するようにする方法はありますか? テキスト ファイルの名前は NetworkInfo.txt です。
ありがとうクリス
編集
アプリケーションを更新するたびに、すべてのネットワーク情報を含むファイルを生成するバッチ ファイルを実行します (IPConfig/all)。
次に、次のように読み取るモジュールがあります。
Public Function EthDefaultGateway() As String
Dim sr As New System.IO.StreamReader(ipconfig)
Try
Dim foundEthernet As Boolean = False
Dim gateway As String = ""
Do Until sr.EndOfStream
Dim line As String = sr.ReadLine()
If line.Contains("Ethernet adapter LAN:") OrElse line.Contains("Ethernet adapter Local Area Connection:") Then
foundEthernet = True
End If
If foundEthernet Then
If line.Contains("Default Gateway . . . . . . . . . :") Then
gateway = line.Substring(line.IndexOf(":") + 1).Trim
Exit Do
End If
End If
Loop
If gateway = "" Then
gateway = "Unknown"
End If
If gateway = "::" Then
gateway = "Unknown"
End If
Return gateway
Catch ex As Exception
EthDefaultGateway = "Unknown"
End Try
sr.Close()
sr.Dispose()
End Function
これから、必要なすべての情報を収集します。(これを行うにはもっと良い方法があるかもしれませんが、私はただの初心者であり、ここ、ウェブ、または友人から他のアイデアを見つけることができません。)
これらはすべて、readinf 後にファイルを閉じます (sr.close)
それを閉じていないのに何らかの理由があります。他に考えられる唯一のことは、バッチファイルが閉じていないことです。これは非常にありそうもないことです
問題は、バッチ ファイルがネットワーク情報ファイルを上書きできないため、IP を変更したりフォームを更新したりすると失敗することです。
助言がありますか?
リフレッシュ後にプロセスを強制終了する方法を考えていましたが、これが良いアイデアなのか、実行可能なのか、どうすればよいのかわかりませんでした。