none
Hotkey verwendet nur einen Wert RRS feed

  • 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!

    Mittwoch, 18. März 2020 17:43

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

    Mittwoch, 18. März 2020 18:06
    Moderator
  • 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!

    Freitag, 20. März 2020 12:59
  • Hey Meister,

    wenn das Problem noch nicht gelöst ist. Ich hätte noch eine Idee.

    Versuche die IP-Adressen als String-Array. Ich vermute das die IP-Adressen hintereinander schreibt und zum schluss letzte IP-Adresse aktzeptiert.


    Patrick_cpp

    Donnerstag, 28. Januar 2021 13:46