-1
コンピュータ上のすべてのWLANプロファイルのキーを表示するアプリケーションを作成しています。VB.netパスに不正な文字があります
'' GET PROFILES
Dim temp_direct As String = My.Computer.FileSystem.SpecialDirectories.Temp
Dim cmd As String = "Netsh WLAN show profiles > " & temp_direct & "\profiles.txt"
Shell("cmd.exe /c " + cmd, AppWinStyle.Hide, True)
'' SHOW PROFILES
Dim texto As String = File.ReadAllText(temp_direct & "\profiles.txt").Replace(" ", "")
Dim pattern As String = "AllUserProfile:(.*)"
Dim matches As MatchCollection = Regex.Matches(texto, pattern)
For Each m As Match In matches
For Each c As Capture In m.Captures
RichTextBox1.AppendText("SSID: " & m.Groups(1).Value)
'' SAVE PROFILE WITH CLEAR KEY
Dim cmd_info As String = "Netsh WLAN show profiles " & m.Groups(1).Value & " key=clear" & " > " & temp_direct & "\" & m.Groups(1).Value & ".txt"
Shell("cmd.exe /c " + cmd_info, AppWinStyle.Hide, True)
'' SHOW KEY ON RICHTEXTBOX
Dim ficheiro As String = m.Groups(1).Value & ".txt"
Dim pass_file As String = File.ReadAllText(Path.Combine(temp_direct, ficheiro)).Replace(" ", "")
Dim pattern_pass As String = "KeyContent:(.*)"
Dim match_key As Match = Regex.Match(pass_file, pattern_pass)
If match_key.Success Then
RichTextBox1.AppendText("Key: " & match_key.Groups(1).Value)
End If
Next
Next
私は上の例外(パスに無効な文字)を取得:だから私は、問題は、それはそれはdoesnの何らかの理由で 'm.Groups(1).Valueの' 上だと思います
Dim pass_file As String = File.ReadAllText(Path.Combine(temp_direct, ficheiro)).Replace(" ", "")
文字列として認識されませんか?私が使用している場合
Path.Combine(temp_direct, "NAME.txt")
がそのように動作するため、私はなど、区切りファイルの種類で「.VALUE」せずに、「.ToString」に一致するものを変更しようとしましたが、それは動作しません。私もフォーラムで検索しようとしましたが運がありません。
http://stackoverflow.com/a/23182807/1383168 – Slai
@Slaiはそんなにあなたに感謝を!それは働いている! –
また、コマンド出力を読むためのより良い方法がありますhttp://stackoverflow.com/questions/11504981/reading-and-writing-to-a-command-prompt-console-using-vb-net – Slai