VB Program Protokoll Schreiben

01/21/2014 22:04 ™Daywalker#1
Hallo liebe Community,

ich will ein Option Fenster erstellen. Unzwar hab ich das so vor. Ich habe eine Windows Form erstellt da eine Listbox rein getragen. Und wenn ich jetzt den Eintrag Listbox auswähle soll rechts daneben halt der Inhalt sozusagen dargestellt werden. Hier mal ein Bild um es zu verdeutlichen.
[Only registered and activated users can see links. Click Here To Register...]
01/21/2014 22:14 qkuh#2
[Only registered and activated users can see links. Click Here To Register...] ?
01/21/2014 22:22 tolio#3
oder per hand ne neue zeile anhängen mit vbcrlf oder mit environment.newline
01/27/2014 22:24 ™Daywalker#4
#Thread bearbeitet
01/27/2014 23:01 tolio#5
Code:
        Dim targets As List(Of String) = New List(Of String) From {"firefox", "wtf"}
        If System.Diagnostics.Process.GetProcesses.Any(Function(x) targets.Contains(x.ProcessName)) = True Then
            MsgBox("ziel gefunden")
        End If
01/28/2014 17:45 ™Daywalker#6
Danke. Aber so wird ja überprüft ob einer von beiden an ist und wenn ya wird die msgbox ausgegeben. Ich will aber ja das wenn eins von den programmen nicht gestartet ist der dann schon eine msgbox ausgibt.
01/28/2014 18:43 Requi#7
Quote:
Originally Posted by Nightr0ad View Post
Danke. Aber so wird ja überprüft ob einer von beiden an ist und wenn ya wird die msgbox ausgegeben. Ich will aber ja das wenn eins von den programmen nicht gestartet ist der dann schon eine msgbox ausgibt.
Wenn ich dich jetzt richtig verstanden habe:
Code:
        Dim targets As List(Of String) = New List(Of String) From {"firefox", "wtf"}
        If System.Diagnostics.Process.GetProcesses.Any(Function(x) targets.Contains(x.ProcessName)) = False Then
            MsgBox("ziel nicht gestartet")
        End If
01/28/2014 19:18 ™Daywalker#8
Ne. Das ist ja genau das gleiche wie das andere nur umgekehrt. Ich will ja das 2 Programme gestartet sein müssen damit die Meldung nicht kommt. Jetzt ist es ja nur auf 1 Programm. Ich versuch es dir mal so zu erklären. xD
ProgrammList = Program1, Program2
Wenn Program1 oder Program2 nicht gestartet ist dann
MsgBox Ein Program läuft nicht.
Ende. :D
Hoffen ich konnte es dir so besser erklären.
01/28/2014 20:01 tolio#9
versuchs mal mit .all
oder ohne lambda und mit zwei schleifen
01/28/2014 20:43 ™Daywalker#10
Habs ma so versucht
Code:
 If System.Diagnostics.Process.GetProcesses.All(Function(x) targets.Contains(x.ProcessName)) = False Then
geht auch nicht..
01/28/2014 21:15 [uLow]NTX?!#11
Also ich check nicht was du jeze willst..
Willste du das dein programm prüft ob
TargetA an ist UND TargetB an ist und wenn nur Target a oder TargetB an ist eine MSG box kommt ?
01/28/2014 21:54 ™Daywalker#12
Ja genau xD
01/28/2014 23:20 Tasiro#13
So gut kenne ich mich damit nicht aus, aber könnte die Bedingung dafür im allgemeinen Fall nicht so aussehen? (C#-Syntax)
Code:
static var names = new string [] {"a", "b"}.Distinct ();
// Prüfe, ob die Anzahl an unterschiedlichen Namen von Prozessen
// mit obigen Namen kleiner als die Anzahl jener Namen ist:
System.Diagnostics.Process.GetProcesses ().Where (process => names.Contains (process.ProcessName)).Distinct ().Count () < names.Count ()
Ich habe es nicht gestestet.


Edit: Es scheint dafür eine Methode in HashSet<T> zu geben. Das dürfte dann ungefähr so aussehen:
Code:
var processes = new HashSet <System.Diagnostics.Process> (System.Diagnostics.Process.GetProcesses ());
processes.SymmetricExceptWith (names);
processes.Count > 0
Wer weiß, vielleicht ist das ja schneller?
02/25/2014 21:33 ™Daywalker#14
#Push
#Neue Frage!
02/25/2014 23:06 snow#15
Warum erstellst du keinen neuen Thread für die Frage? Das hat doch nichts mehr mit dem Thread-Titel zu tun? :confused:

Ich würde einen Handler für das SelectedIndexChanged hinzufügen & dort dann immer den neuen Inhalt generieren.