Hay VB-Paradise Team,
ich hab lange nichts mehr verfasst und melde mich nun zurück aus dem Nirvana
Ich möchte etwas erstellen um über ADB ein Backup von Androidapps zu erstellen. Ich habe mir überlegt dass es für mich am einfachsten wäre wenn ich eine CMD öffne und diese im Hintergrund benutze. Ich verwende jetzt OutputDataReceive und es funktioniert eigentlich alles recht gut. Was mich etwas stört ist, dass ich nur den wirklichen Output-Text des Befehls zurück bekomme und nicht den Pfad der standartmäßig am Ende des Befehls angefügt wird.
Das dumme ist, ich weiss einfach nicht wie ich googeln soll weil ich nicht weiss wie diese Zeile genannt wird.
Ich habe es mit OutputDataReceive CMD Path (usw.) probiert. Leider kein Erfolg.
Ich hoffe mir kann jemand helfen.
Mfg TBS
ich hab lange nichts mehr verfasst und melde mich nun zurück aus dem Nirvana
Ich möchte etwas erstellen um über ADB ein Backup von Androidapps zu erstellen. Ich habe mir überlegt dass es für mich am einfachsten wäre wenn ich eine CMD öffne und diese im Hintergrund benutze. Ich verwende jetzt OutputDataReceive und es funktioniert eigentlich alles recht gut. Was mich etwas stört ist, dass ich nur den wirklichen Output-Text des Befehls zurück bekomme und nicht den Pfad der standartmäßig am Ende des Befehls angefügt wird.
VB.NET-Quellcode
- Public Class Form_Main
- Dim ListviewTrigger As Boolean = False
- Private WithEvents MyProcess As Process
- Private Delegate Sub AppendOutputTextDelegate(ByVal text As String)
- Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
- Me.AcceptButton = Button_Execute
- MyProcess = New Process
- With MyProcess.StartInfo
- .FileName = "CMD.EXE"
- .UseShellExecute = False
- .CreateNoWindow = True
- .RedirectStandardInput = True
- .RedirectStandardOutput = True
- .RedirectStandardError = True
- End With
- MyProcess.Start()
- MyProcess.BeginErrorReadLine()
- MyProcess.BeginOutputReadLine()
- AppendOutputText("Process Started at: " & MyProcess.StartTime.ToString)
- gettext()
- End Sub
- Sub gettext()
- End Sub
- Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
- MyProcess.StandardInput.WriteLine("EXIT") 'send an EXIT command to the Command Prompt
- MyProcess.StandardInput.Flush()
- MyProcess.Close()
- End Sub
- Private Sub MyProcess_ErrorDataReceived(ByVal sender As Object, ByVal e As System.Diagnostics.DataReceivedEventArgs) Handles MyProcess.ErrorDataReceived
- AppendOutputText(vbCrLf & "X " & e.Data)
- End Sub
- Private Sub MyProcess_OutputDataReceived(ByVal sender As Object, ByVal e As System.Diagnostics.DataReceivedEventArgs) Handles MyProcess.OutputDataReceived
- AppendOutputText(vbCrLf & e.Data)
- End Sub
- Private Sub ExecuteButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_Execute.Click
- MyProcess.StandardInput.WriteLine(TextBox_Input.Text)
- MyProcess.StandardInput.Flush()
- If TextBox_Input.Text.Contains("adb -d shell pm list packages") Then
- ListviewTrigger = True
- RichTextBox1.Text = RichTextBox1.Text & vbNewLine & "Listviwetrigger: " & ListviewTrigger.ToString
- End If
- TextBox_Input.Text = ""
- End Sub
- Private Sub AppendOutputText(ByVal text As String)
- If TextBox_Output.InvokeRequired Then
- Dim myDelegate As New AppendOutputTextDelegate(AddressOf AppendOutputText)
- Try
- Me.Invoke(myDelegate, text)
- Catch
- End Try
- Else
- If text IsNot vbNewLine Then
- TextBox_Output.AppendText(text)
- End If
- If ListviewTrigger = True Then
- ' Dim lines() As String = text.Split(vbCrLf) 'trennt deinen String zwischen Zeilenumbrüchen
- 'For Each str As String In lines
- ' For i As Integer = 0 To listBox1.Items.Count - 1
- ' If str = listBox1.Items(i) Then
- ' MsgBox("Eine Zeile kommt auch in der Listbox vor")
- 'End If
- ' Next
- If text.Contains("package:com") Then
- ListView_Apps.Items.Add(text.Replace("package:com.", ""))
- End If
- ' Next
- End If
- End If
- End Sub
- Private Sub OutputTextBox_TextChanged(sender As Object, e As EventArgs) Handles TextBox_Output.TextChanged
- TextBox_Output.SelectionStart = TextBox_Output.Text.Length
- TextBox_Output.ScrollToCaret()
- End Sub
- End Class
Das dumme ist, ich weiss einfach nicht wie ich googeln soll weil ich nicht weiss wie diese Zeile genannt wird.
Ich habe es mit OutputDataReceive CMD Path (usw.) probiert. Leider kein Erfolg.
Ich hoffe mir kann jemand helfen.
Mfg TBS
Ich hab heute meiner Katze beim spielen
zugesehen, sie ist die ganze Zeit einem Ball nachgejagt und ich hab mir
überlegt, das Tier ist echt mit sehr einfachen Dingen zu begeistern...
Dann ist mir aufgefallen, dass ich 10 Minuten nur meine Katze
angestarrt habe.
zugesehen, sie ist die ganze Zeit einem Ball nachgejagt und ich hab mir
überlegt, das Tier ist echt mit sehr einfachen Dingen zu begeistern...
Dann ist mir aufgefallen, dass ich 10 Minuten nur meine Katze
angestarrt habe.
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „TheBlackSnitter“ ()