Почему не вводится значение SendKeys.SendWait(price); полученное из GetPrice.cs

Steper.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using System.Security.Cryptography.X509Certificates;
using System.Threading;


namespace AMH.Scripts
{
    public class Steper
    {
        [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
        public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);

        private const uint MOUSEEVENTF_LEFTDOWN = 0x02;
        private const uint MOUSEEVENTF_LEFTUP = 0x04;
        private const uint MOUSEEVENTF_WHEEL = 0x0800;

        public static bool IsPaused { get; private set; }
        private bool shouldStop = false;

        public static void MouseClick(int x, int y)
        {
            Cursor.Position = new Point(x, y);
            mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint)x, (uint)y, 0, 0);
        }

        public static void TogglePause()
        {
            IsPaused = !IsPaused;
        }

        // В этом примере изначально не было метода Stop(), но мы добавим его для управления переменной shouldStop
        public void Stop()
        {
            shouldStop = true;
        }
        public void Clicks()
        {
            bool isMaxPrice = false; // Переменная должна быть объявлена до начала цикла
            string imagePath;
            while (!isMaxPrice)
            {
                var result = ImageProcessor.CaptureAndProcessImage();
                imagePath = result.imagePath; // Убедитесь, что имя поля правильное
                isMaxPrice = result.IsMaxPrice; // Обратите внимание на правильный регистр - IsMaxPrice

                // Если цена максимальна, выходим из цикла
                if (isMaxPrice)
                {
                    break;
                }

                string price = GetPrice.ProcessImage(imagePath);

                // Проверка на паузу и возможной остановке работы цикла
                if (Pause.IsPaused || shouldStop)
                {
                    break;
                }

                int x1 = 1290; int y1 = 380; // Координата XY для второго клика
                int xPRICE = 560; int yPRICE = 655; // Координата XY для ввода цены
                int xPUB = 865; int yPUB = 785; // Координата XY для публикации

                // Выполнение клика по второй координате
                MouseClick(x1, y1);
                System.Threading.Thread.Sleep(500);

                // Клик по координатам, где нужно ввести число
                MouseClick(xPRICE, yPRICE);
                System.Threading.Thread.Sleep(500);

                // Отправка цены на форму
                SendKeys.SendWait(price);
                System.Threading.Thread.Sleep(500);

                // Клик для публикации предмета
                MouseClick(xPUB, yPUB);

                // Задержка перед следующим шагом (на случай, если требуется повторное выполнение действий в цикле)
                System.Threading.Thread.Sleep(500);
            }
        }
        public void ClicksEnd()
        {
            (string imagePath, bool isMaxPrice) = ImageProcessor.CaptureAndProcessImage();
            string nPrice = GetPrice.ProcessImage(imagePath);

            int x1 = 1300; int y1 = 365; // Координата XY для первого клика
            int x2 = 1300; int y2 = 435;
            int x3 = 1300; int y3 = 500;
            int x4 = 1300; int y4 = 565;
            int xPRICE = 560; int yPRICE = 655; // Координата XY для второго клика
            int xPUB = 865; int yPUB = 785; // Опубликовать

            MouseClick(x1, y1);
            System.Threading.Thread.Sleep(500);
            MouseClick(xPRICE, yPRICE);
            System.Threading.Thread.Sleep(500);

            SendKeys.SendWait(nPrice);
            System.Threading.Thread.Sleep(500);
            MouseClick(xPUB, yPUB);

            MouseClick(x2, y2);
            System.Threading.Thread.Sleep(500);
            MouseClick(xPRICE, yPRICE);
            System.Threading.Thread.Sleep(500);

            SendKeys.SendWait(nPrice);
            System.Threading.Thread.Sleep(500);
            MouseClick(xPUB, yPUB);

            MouseClick(x3, y3);
            System.Threading.Thread.Sleep(500);
            MouseClick(xPRICE, yPRICE);
            System.Threading.Thread.Sleep(500);
            SendKeys.SendWait(nPrice);
            System.Threading.Thread.Sleep(500);
            MouseClick(xPUB, yPUB);

            MouseClick(x4, y4);
            System.Threading.Thread.Sleep(500);
            MouseClick(xPRICE, yPRICE);
            System.Threading.Thread.Sleep(500);
            SendKeys.SendWait(nPrice);
            System.Threading.Thread.Sleep(500);
            MouseClick(xPUB, yPUB);
        }

        public void ScrollList()
        {
            // Вариант скроллинга с помощью колеса мыши
            int value = -100; // Обычно "120" это величина прокрутки колеса мыши для одного "шага". Негативное значение означает прокрутку вниз

            // Отправка события прокрутки колеса мыши
            mouse_event(MOUSEEVENTF_WHEEL, 0, 0, (uint)value, 0);
        }

        public bool CheckEndOfList()
        {
            // Координаты пикселя, который нужно проверить
            int endOfListCheckX = 1447; // Замените на вашу X координату
            int endOfListCheckY = 597; // Замените на вашу Y координату

            // Цвет, который ожидаем найти для определения конца списка
            Color expectedEndOfListColor = Color.FromArgb(255, 189, 151, 122); // Укажите A, R, G и B значения

            // Получаем цвет для проверяемого пикселя
            Color pixelColor = GetPixelColorAtPosition(endOfListCheckX, endOfListCheckY);

            // Сравниваем цвет
            bool isEndOfListColor = pixelColor.Equals(expectedEndOfListColor);

            // Возвращаем результат сравнения
            return isEndOfListColor;
        }

        public Color GetPixelColorAtPosition(int x, int y)
        {
            using (var bitmap = new Bitmap(1, 1))
            {
                using (var graphics = Graphics.FromImage(bitmap))
                {
                    // Копируем пиксель из экрана в bitmap
                    graphics.CopyFromScreen(x, y, 0, 0, new Size(1, 1));
                }
                // Возвращаем цвет извлеченного пикселя
                return bitmap.GetPixel(0, 0);
            }

        }



    }
}




GetPrice.cs

using System;
using System.Collections.Generic;
using System.Diagnostics.Eventing.Reader;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;
using System.Drawing.Imaging;
using Emgu;
using Emgu.CV;
using Emgu.CV.Util;
using Emgu.CV.OCR;
using Emgu.CV.Structure;
using Emgu.Util;
using System.Windows.Forms;
using static System.Net.Mime.MediaTypeNames;
using System.Runtime.Remoting.Messaging;
using System.Text.RegularExpressions;


namespace AMH.Scripts
{
        public static class GetPrice
        {
            public static string ProcessImage(string imagePath)
            {
                using (Image<Bgr, byte> image = new Image<Bgr, byte>(imagePath))
                {
                    using (Tesseract ocrEngine = new Tesseract(@"./tessdata", "eng", OcrEngineMode.TesseractLstmCombined))
                    {
                        ocrEngine.SetImage(image);
                        ocrEngine.Recognize();
                        Tesseract.Character[] characters = ocrEngine.GetCharacters();

                        // Обработайте символы, чтобы формировать окончательный текст
                        string price = "";
                        foreach (var c in characters)
                        {
                            if (char.IsDigit(c.Text, 0)) // Использование только цифр
                            {
                                price += c.Text;
                            }
                        }

                        if (long.TryParse(price, out long priceNum))
                        {
                            priceNum += 1; // Прибавляем 1, если это число
                            return priceNum.ToString();
                        }
                        return price; // Возврат строки, если это не число
                    }
                }
            }
        }
    }