C # отправлять команды VNC - PullRequest
       16

C # отправлять команды VNC

2 голосов
/ 09 марта 2011

Есть ли в C # простой способ отправки команд на VNC-сервер на компьютере. В идеале какая-то библиотека или что-то было бы неплохо, но на самом деле все самое простое. Все, что я хочу сделать, это просто подключиться и отправить команду, я даже не хочу просматривать рабочий стол.

Спасибо

Ответы [ 2 ]

3 голосов
/ 09 марта 2011

Есть VncSharp .

1 голос
/ 09 ноября 2011

Вот два альтернативных решения Способ 1:

Process pl = new Process();
pl.StartInfo.CreateNoWindow = false;
pl.StartInfo.FileName = "calc.exe";
pl.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
// = ProcessWindowStyle.Hidden; if you want to hide the window
pl.Start();
System.Threading.Thread.Sleep(1000);

SendKeys.SendWait("11111");

Метод 2:

using System.Runtime.InteropServices;


// Get a handle to an application window.
        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(string lpClassName,
            string lpWindowName);

        // Activate an application window.
        [DllImport("USER32.DLL")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);

        private void test()
        {
            IntPtr calculatorHandle = FindWindow("CalcFrame", "Calculator");

            // Verify that Calculator is a running process.
            if (calculatorHandle == IntPtr.Zero)
            {
                MessageBox.Show("Calculator is not running.");
                return;
            }

            // Make Calculator the foreground application and send it 
            // a set of calculations.
            SetForegroundWindow(calculatorHandle);
            SendKeys.SendWait("111");
            SendKeys.SendWait("*");
            SendKeys.SendWait("11");
            SendKeys.SendWait("=");

        }
...