Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C# Корректное завершение стороннего процесса https://www.cyberforum.ru/ csharp-net/ thread1385299.html
Из своей программы (Wrapper) запускаю вторую (Program). Программа Program - консольное приложение, которое при завершении записывает некоторые данные в файл. Проблема в том, что "правильно" завершать программу Program нажатием клавиши "q" или CTRL+C. Тогда все работает, как задумано. Но мне необходимо запустить программу Program из своей программы Wrapper в фоновом режиме, а затем корректно...
Распарсить код HTML C#
Нужна помощь в реализации поиска в html документе. Например кусок кода </div><span class="tv-channel-title__text">Первый</span></a> из него нужно вытащить в label = Первый. изначально я не знаю что в этом промежутке находится.
C# Wifi соединение через прокси сервер Проблема в том что мне нужно подключится через прокси серверу к роутеру, а с него выйти на wifi. С wifi еще пока не работал, может кто сказать есть ли разница в том что wifi модуль стоит на машине или на роутере? И как это повлияет на подключение. И еще подкинуть хорошие адекватные примеры работы с wifi. https://www.cyberforum.ru/ csharp-net/ thread1385210.html C# Отправка нажатий клавиш в окно стороннего приложения Есть код на C++, в нём реализован поиск нужного окна по известному классу, эмуляция нажатий клавиш именно в это окно, а также проверка цвета пикселей в нужных координатах (хп, мана). Что бы реализовать всё этого на C# нужно хотя бы знать, что искать, не подскажете? https://www.cyberforum.ru/ csharp-net/ thread1385066.html
C# Узнать хендл окна: ошибка Недопустимый для этого элемента модификатор "extern"
Здравствуйте, не могу узнать хендл окна. В коде написал следующее: using System.Runtime.InteropServices; public static extern int FindWindow ( string lpClassName, // class name string lpWindowName // window name ); Выдает следующие ошибки: Недопустимый для этого элемента модификатор "extern"
C# Считать Touch Memory Привет всем. Нашел считыватель ключей iButton RDS-01 USB (см на картинке его вид). А почему бы не сделать авторизацию в ПО через Touch Memory подумал я. На форму кинул SerialPort, подключился к нему и далее не знаю что делать. В интернете инфо не нашел. Подскажите пожалуйста как далее работать. Думаю, таймер должен лпрашивать устройство, в ответ получать команду пусто или ID таблетки Touch Memory. https://www.cyberforum.ru/ csharp-net/ thread1384786.html
C# Как организовать совместное чтение .xlsx и .xls? https://www.cyberforum.ru/ csharp-net/ thread1384779.html
Как организовать совместное чтение .xlsx и .xls using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.IO; using System.Text; using System.Windows.Forms;
C# Как программно менять иконки сторонних exe файлов?
Подскажите, как программно менять иконки других файлов? Или, если можно, ссылку где это об этом можно почитать.
C# Не работает 2D передвижение объекта к месту клика мышкой https://www.cyberforum.ru/ csharp-net/ thread1384417.html
Суть в том, что после клика мыши объект получает координаты X и Y клика, и должен двигаться в том направлении. Координаты передаются в MoveTo, а угол высчитывается в GetAngle. В математике почти ноль, формулы с форумов. private double GetAngle(double x1,double y1,double x2,double y2) { double ang = Math.Atan((x1 - x2) / (y1 - y2)) * Rad2Deg; if ((x1 < x2) &&...
C# Закрывается клиент-серверное приложение https://www.cyberforum.ru/ csharp-net/ thread1384367.html
Здравствуйте, делаю что то типа клиен-сервера. Использую сокеты. При подключении с клиента на сервер (Виндовс Формс). Он иногда закрывается а иногда нет. От чего это может зависеть? Всем спасибо за внимание.
C# Программа, удаляющая саму себя
Подскажите после того как у меня сработал таймер и вывело оповещение и больше ничего нет мне нужно программе удалить саму себя. Вопрос как это сделать можно?
C# Запрет запуска стороннего приложения Всем привет. Есть мое приложение и есть приложение AutoCad. При открытом AutoCad сделать запрет на запуск моего приложения не сложно - просто при запуске моего приложения проверять наличие процесса: // Проверка запущенного автокада private static bool CheckAcadIsOpen() { const string name = "acad"; Process pr2 = Process.GetProcesses(); ... https://www.cyberforum.ru/ csharp-net/ thread1384106.html
Заблокирован
01.03.2015, 19:59 0

Как получить изображение окна другого приложения? - C# - Ответ 7287058

01.03.2015, 19:59. Показов 5698. Ответов 10
Метки (Все метки)

Ответ

Цитата Сообщение от fenix117 Посмотреть сообщение
Он позволяет делать скрин даже если окно перекрыто другими окнами.
fenix117, можете поподробнее об этом рассказать?

У меня получилось сделать следующее:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
 #region import
        [return: MarshalAs(UnmanagedType.Bool)]
        [DllImport("user32.dll", SetLastError = true)]
        public static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect);
 
        [StructLayout(LayoutKind.Sequential)]
        public struct RECT
        {
            public int Left;        // x position of upper-left corner
            public int Top;         // y position of upper-left corner
            public int Right;       // x position of lower-right corner
            public int Bottom;      // y position of lower-right corner
 
            public override string ToString()
            {
                return string.Format("{0,4} {1,4} {2,4} {3,4}", Left, Top, Right, Bottom);
            }
        }
        
        [DllImport("user32.dll", SetLastError = true)]
        static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
 
        delegate bool EnumWindowsProc(IntPtr hWnd, IntPtr lParam);
 
        [DllImport("user32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool EnumWindows(EnumWindowsProc lpEnumFunc, IntPtr lParam);
 
        [DllImport("user32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        static extern bool IsWindowVisible(IntPtr hWnd);
 
        [DllImport("user32.dll", SetLastError = true)]
        static extern int GetWindowTextLength(IntPtr hWnd);
        #endregion
 
        public Form1()
        {
            InitializeComponent();
            listBox1.MouseClick += listBox1_MouseClick;
            button2.Click += btnSearchHwnd_Click;
        }
        List<IntPtr> ListHandles = new List<IntPtr>();
        void listBox1_MouseClick(object sender, MouseEventArgs e)
        {
 
            IntPtr Handle = ListHandles[listBox1.SelectedIndex];
            RECT rct;
            if (!GetWindowRect(Handle, out rct))
            {
                MessageBox.Show("ERROR");
                return;
            }
            this.Hide();
            Size s = new System.Drawing.Size(rct.Right - rct.Left + 1, rct.Bottom - rct.Top + 1);
            Bitmap memoryImage = new Bitmap(s.Width, s.Height);
            using (var g = Graphics.FromImage(memoryImage))
                g.CopyFromScreen(rct.Left, rct.Top, 0, 0, s);
            memoryImage.Save("screen.bmp");
            memoryImage.Dispose();
            this.Show();
            MessageBox.Show("Файл сохранен");
        }
 
        private void btnSearchHwnd_Click(object sender, EventArgs e)
        {
            EnumWindows((hWnd, lParam) =>
            {
                if ((IsWindowVisible(hWnd) && GetWindowTextLength(hWnd) != 0))
                {
                    ListHandles.Add(hWnd);
                    listBox1.Items.Add(GetWindowText(hWnd));
                }
                return true;
            }, IntPtr.Zero);
        }
        string GetWindowText(IntPtr hWnd)
        {
            int len = GetWindowTextLength(hWnd) + 1;
            StringBuilder sb = new StringBuilder(len);
            len = GetWindowText(hWnd, sb, len);
            return sb.ToString(0, len);
        }
По клику на кнопку в листбокс добавляются названия окон. По клику на название делается скриншот области окна, но только верхнего участка. Как сделать скриншот с учетом перекрытия пока не понял - буду искать дальше.

Вернуться к обсуждению:
Как получить изображение окна другого приложения? C#
1
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2015, 19:59
Готовые ответы и решения:

Как получить изображение свёрнутого окна?
Как получить изображение свёрнутого окна?

Получить координаты окна стороннего приложения
Здравствуйте дорогие форумчане, встал вопрос как получить координаты СТОРОННЕЙ программы , при...

Получить содержимое и/или элементы окна стороннего приложения
Подскажите, возможно ли с помощью C# (в том числе winapi) получить сабж?

Получить дескриптор окна стороннего приложения и контекстного меню
Здравствуйте. Подскажите пожалуйста. Как можно словить дескриптор выскакивающего окна? в списке...

10
01.03.2015, 19:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.03.2015, 19:59
Помогаю со студенческими работами здесь

Перерисовка окна другого процесса через дескриптор этого окна
Приветствую всех. Может кто-то знает, как перерисовать окно другого процесса через дескриптор...

Как развернуть окно, из другого приложения
Добрый день. Разрабатываю приложение которое сворачивается в трей и далее работает в фоновом...

Как можно открыть изображение в новой вкладе окна
Есть страница с FileUpLoad, которая загружает изображение ( на компьютер, в папку которая не в...

Как запустить метод из другого окна?
Подскажите пожалуйста, смотрю примеры разные но не пойму как правильно сделать. Имеем окно...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru