Fragensteller
Hotkey verwendet nur einen Wert

Frage
-
Hallo,
ich habe ein kleines Windows Forms Programm geschrieben, in das man verschiedene IP-Adressen in Textboxen schreiben kann. Wenn man dann auf einen Button drückt, wird der VLC Player geöffnet und der jeweilige IP-Kamera-Stream wird dargestellt.
Ich habe einen Hotkey Manager erstellt, der verschiedene Hotkeys verwaltet, sprich wenn Taste x gedrückt wird, öffne VLC Player und zeige Stream von Kamera mit IP xy an. Mein Problem ist nun, dass alle Hotkeys immer die gleiche IP-Adresse (aus der letzten Textbox) verwenden und ich somit nur einen Stream darstellen kann. Ich finde leider meinen Fehler einfach nicht und versuchs daher mal hier im Forum :).Ich fände es cool wenn mir jemand helfen könnte, da ich schon ein Weilchen an diesem Problem sitze :).
Danke!
Alle Antworten
-
Hi,
wie wäre es mit deinem Code? Bzw. wenn möglich, einem lauffähigen (aber aufs absolute Minimum reduziertem) Beispielprojekt, mit dem man sich das selbst mal anschauen kann.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET (2001-2018)
https://www.asp-solutions.de/ - IT Beratung, Softwareentwicklung, Remotesupport -
Hi,
danke für deine Antwort :).
Ich hoffe du kennst dich aus, ich habe ein paar Zeilen zusammen kopiert:
public partial class Form1 : Form { public Form1() { InitializeComponent(); HotkeyOne(); HotkeyTwo(); } private HotKeyManager HotKeyManager = new HotKeyManager(); void HotkeyOne() { HotKey Hotkey1 = new HotKey(); KeysConverter conv = new KeysConverter(); Hotkey1.Key = (Key)conv.ConvertFromString("Q"); Console.WriteLine(Hotkey1.Key); this.HotKeyManager.KeyPressed += KeyOnePressEvent; this.HotKeyManager.Register(Hotkey1); } void HotkeyTwo() { HotKey Hotkey2 = new HotKey(); KeysConverter conv2 = new KeysConverter(); Hotkey2.Key = (Key)conv2.ConvertFromString("W"); Console.WriteLine(Hotkey2.Key); this.HotKeyManager.KeyPressed += KeyTwoPressEvent; this.HotKeyManager.Register(Hotkey2); } void KeyOnePressEvent(object sender, KeyPressedEventArgs e) { string IPaddress = txtIPaddress1.Text; string Username = txtUsername.Text; string Password = txtPassword.Text; Process[] pp = Process.GetProcessesByName("vlc"); foreach (Process p in pp) { p.Kill(); } OpenStream(IPaddress, Username, Password); } void KeyTwoPressEvent(object sender, KeyPressedEventArgs e) { string IPaddress = txtIPaddress2.Text; string Username = txtUsername.Text; string Password = txtPassword.Text; Process[] pp = Process.GetProcessesByName("vlc"); foreach (Process p in pp) { p.Kill(); } OpenStream(IPaddress, Username, Password); } private async void OpenStream(string IPaddress, string Username, string Password) { if (IPaddress != "") { string parameter = ($" --no-video-deco --no-embedded-video --video-x=0 --video-y=0 --loop --qt-start-minimized --no-video-title-show --zoom 0.75 rtsp://{Username}:{Password}@{IPaddress}"); Process.Start(@"E:\Software\VLC\vlc.exe", parameter); } else { } }
Fürs Verständnis:
Die beiden Hotkeys, indem Fall Numpad7 und Substract, sollen jeweils den Stream der zugewiesenen IP-Adresse
öffnen. Nur wird leider immer nur der Stream der IP-Adresse die in der letzten Textbox steht geöffnet.
Danke! -