Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VB.NET Output analysieren und nur bestimmten Teil ausgeben

Frage Entwicklung Visual Studio

Mitglied: Peacer

Peacer (Level 1) - Jetzt verbinden

14.02.2011 um 12:17 Uhr, 4641 Aufrufe, 6 Kommentare

Hallo zusammen,

wie bereits beschrieben brauche ich eine Auswertung für ein StandardOutput.

Und zwar mache ich folgendes:

Ich will wissen wer an einem PC im Netzwerk lokal angemeldet ist. Dank meiner unzureichenden Prgrammierkenntnisse nehme ich dafür die psloggedon.exe (sysInternals) her.

Hier der Code:

01.
Sub button9ItemClick(sender As Object, e As EventArgs) 
02.
		Dim psloggedon As New Process 
03.
			With psloggedon.StartInfo 
04.
				.FileName = "psloggedon.exe" 
05.
				.Arguments = " -x -l \\" & textBox1.Text 
06.
				.CreateNoWindow = True 
07.
				.RedirectStandardOutput = True 
08.
				.RedirectStandardError = True 
09.
				.UseShellExecute = False 
10.
			End With 
11.
		psloggedon.Start() 
12.
		textBox1.Text = psloggedon.StandardOutput.ReadToEnd 
13.
	End Sub
Die Ausgabe erscheint dann folgendermaßen:

01.
Connecting to Registry of \\PC2496... 
02.
                                                                               
03.
Users logged on locally: 
04.
     	DOMAIN\testuser 
05.
 
Jetzt will ich erreichen, das nicht diese gesamte Ausgabe in der textbox1 steht sondern nur "testuser", damit ich das richtig weiterverarbeiten kann.

Ich dachte an so etwas wie, suche "DOMAIN\" und gib den Rest der Zeile aus. Wichtig wäre auch OHNE die zusätzliche leere Line am Ende.


Danke für Hilfe
LG Peacer
Mitglied: SlainteMhath
14.02.2011 um 12:41 Uhr
Moin,

aus dem kopf hingeschrieben und ohne Gewähr

01.
dim str as string = psloggedon.StandardOutput.ReadToEnd  
02.
dim rc as string ="" 
03.
for each L as string in str.split(vbcrlf) 
04.
  if L.contains("DOMAIN\") then 
05.
    rc=rc & trim(L).replace("DOMAIN\","") & vbCrLf 
06.
  end if 
07.
next 
08.
textBox1.Text = rc
lg,
Slainte
Bitte warten ..
Mitglied: bastla
14.02.2011 um 14:16 Uhr
@SlainteMhath
Minimaler Änderungsvorschlag (nur für den Fall des Falles - dass etwa doch vor dem Usernamen auch noch ein Timestamp ausgegeben würde [Edit] die Verwendung von "-x" ist mir leider etwas zu spät aufgefallen, daher ist diese Variante eigentlich schon wieder hinfällig [/Edit]):
01.
Dim str As String = psloggedon.StandardOutput.ReadToEnd 
02.
Dim rc As String ="" 
03.
Dim sep As String = "DOMAIN\" 
04.
For Each L As String In str.Split(".") 
05.
    If L.Contains(sep) Then 
06.
        rc = rc & Trim(Split(L, sep)(1)) & vbCrLf 
07.
    End If 
08.
Next 
09.
TextBox1.Text = rc
Grüße
bastla
Bitte warten ..
Mitglied: ackerdiesel
14.02.2011 um 16:10 Uhr
Ohne Gewähr:


Dim User() As String = Split(rc, "\")
TextBox1.Text = User(1)
Bitte warten ..
Mitglied: Peacer
14.02.2011 um 17:27 Uhr
Also, vielen Dank erstmal für die Vorschläge.

Ich habe für mein Konzept festgestellt das bastlas version am besten funktioniert hat bis auf eines:

01.
Dim str As String = psloggedon.StandardOutput.ReadToEnd 
02.
Dim rc As String ="" 
03.
Dim sep As String = "DOMAIN\" 
04.
For Each L As String In str.Split(".") 
05.
    If L.Contains(sep) Then 
06.
        rc = rc & Trim(Split(L, sep)(1)) 
07.
    End If 
08.
Next 
09.
TextBox1.Text = rc
das" & vbcrlf" bringt mir eine Leerzeile ins Result die ich nicht wollte und deshalb gekickt habe, allerdings bleibt dann NOCH eine Leerzeile übrig. Wie bekomme ich die weg? Sie wird leider auch in einer einzeiligen Textbox1 als undefined Symbol ausgegeben und stört die weiterverarbeitung.

LG Peacer
Bitte warten ..
Mitglied: bastla
14.02.2011 um 17:34 Uhr
Hallo Peacer!

Sorry - hatte zum Testen herumgespielt und Slaintes ursprüngliches "vbCrLf" im "Split()" durch einen "." ersetzt (und beim Posten nicht wieder korrigiert ) - daher bitte als Zeile 4 wieder:
For Each L As String In str.Split(vbCrLf)
Grüße
bastla
Bitte warten ..
Mitglied: Peacer
14.02.2011 um 17:39 Uhr
Hi bastla,

Genau das war es was ich lesen wollte.
Jetzt ist es perfekt

Vielen Dank und schönen Abend noch an alle Mitwirkenden
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Visual Studio
gelöst VB.Net - Problem mit Umleitung der Standard-Ausgabe (4)

Frage von emeriks zum Thema Visual Studio ...

Visual Studio
gelöst Vb.net Pfadangabe mit Wildcards wie Stern Regex Pattern (2)

Frage von Pilger83 zum Thema Visual Studio ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (22)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...