Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/50: Рейтинг темы: голосов - 50, средняя оценка - 4.98
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550

Изменить размер окна стороннего приложения

26.02.2012, 21:46. Показов 10224. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как изменить размер окна стороннего приложения. На данный момент есть доступ к Process. В каком направлении копать дальше?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.02.2012, 21:46
Ответы с готовыми решениями:

Развёртывание окна стороннего приложения
Мне необходим метод, который будет разворачивать окно скайпа. ИЛи скажите что я не так написал ибо не работает. public static...

Считать текст из окна стороннего приложения
Здравствуйте. Скажите пожалуйста как считать текст из таких окон как прикреплены к сообщению?????

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

9
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
26.02.2012, 21:54
MoveWindow
1
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
26.02.2012, 22:06  [ТС]
coderxx, если я правильно понял, то 1м аргументом этого метода идет идентификатор всплывающего или дочернего окна, а я пытаюсь отслеживать независимые приложения. Т.е. данный метод не подходит, да? Что тогда?
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
26.02.2012, 22:18
Цитата Сообщение от TanaTiX Посмотреть сообщение
если я правильно понял, то 1м аргументом этого метода идет идентификатор всплывающего или дочернего окна
Нет, первый параметр handle любого окна:
C#
1
MoveWindow(handle, i * 50, i * 50, 500, 500, true)
0
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
26.02.2012, 22:21  [ТС]
proc - Processor
C#
1
2
3
4
5
6
7
8
9
10
[System.Runtime.InteropServices.DllImport("user32.dll", EntryPoint = "MoveWindow")]
        static extern bool MoveWindow(
        int hWnd,
        int X,
        int Y,
        int nWidth,
        int nHeight,
        bool bRepaint
        );
MoveWindow(proc.Handle, 0, 0, 100, 100, true);
При этом получаю
Code
1
2
3
Error   1   The best overloaded method match for 'ConsolePositionizer.Program.MoveWindow(int, int, int, int, int, bool)' has some invalid arguments
 
Error   2   Argument '1': cannot convert from 'System.IntPtr' to 'int'
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
26.02.2012, 22:30
Объявление:
C#
1
2
[DllImport("user32.dll", SetLastError = true)]
internal static extern bool MoveWindow(IntPtr hWnd, int X, int Y, int nWidth, int nHeight, bool bRepaint);
И код:
C#
1
2
3
4
5
6
7
8
9
static void Main()
{
     handle = process.MainWindowHandle;
 
     if (handle != IntPtr.Zero)
     {
          bool moveResult = MoveWindow(handle, 0, 0, 500, 500, true);
     }
}
1
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
27.02.2012, 00:05  [ТС]
Да, уже сам нашел. Дело было в dll-импортах. Спасибо.

Добавлено через 1 час 31 минуту
Еще один вопросик созрел по смежной теме.
Есть метод
C#
1
2
[DllImport("user32.dll", SetLastError = true)]
internal static extern int GetWindowRect(IntPtr hwnd, ref Rectangle rc);
2м аргументом у него идет экземпляр класса Rectangle. Не могу настроить using - нету его
Необходимо это для того, чтобы определить исходные параметры окна приложения и далее еще понадобится сделать некоторые вычисления исходя из разрешения экрана, но пока затык только в квадрате.
0
 Аватар для coderxx
469 / 183 / 16
Регистрация: 25.02.2012
Сообщений: 418
Записей в блоге: 2
27.02.2012, 00:09
C#
1
2
3
4
5
6
7
8
        [StructLayout(LayoutKind.Sequential)]
        public struct RECT
        {
            public int Left;
            public int Top;
            public int Right;
            public int Bottom;
        }
1
Модератор
 Аватар для TanaTiX
2931 / 1790 / 180
Регистрация: 19.02.2011
Сообщений: 6,550
28.02.2012, 00:21  [ТС]
Что-то не могу сообразить
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[StructLayout(LayoutKind.Sequential)]
        public struct Rectangle
        {
            public int Left;
            public int Top;
            public int Right;
            public int Bottom;
        }
 [DllImport("user32.dll", SetLastError = true)]
        internal static extern int GetWindowRect(IntPtr hwnd, ref Rectangle rc);
/////
 Rectangle r = new Rectangle();
                    r.Top = 0;
                    r.Left = 0;
                    r.Bottom = 0;
                    r.Right = 0;
                    GetWindowRect(proc.MainWindowHandle, r);
Добавлено через 23 часа 47 минут
Up.
Есть ли в Visual Studio способ быстро импортировать (using) нужные классы? Почему на иной пример в сети смотришь - там используются классы, доступа к которым я в своем обычном консольном проекте не имею? Это поправимо?
0
Почетный модератор
Эксперт .NET
 Аватар для NickoTin
8725 / 3677 / 404
Регистрация: 14.06.2010
Сообщений: 4,513
Записей в блоге: 9
28.02.2012, 01:41
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от TanaTiX Посмотреть сообщение
быстро импортировать (using) нужные классы
В VS нет способов быстро импортировать "классы" для работы с WinAPI, можно использовать плагин с pinvoke.net для составления прототипов (сам этот плагин не пробовал, составляю прототипы из MSDN).
Цитата Сообщение от TanaTiX Посмотреть сообщение
Почему на иной пример в сети смотришь - там используются классы, доступа к которым я в своем обычном консольном проекте не имею?
Потому что люди сами, под свои нужды, составляют обертки над WinAPI функциями в виде классов.
Цитата Сообщение от TanaTiX Посмотреть сообщение
Это поправимо?
Да, написать обертку самому или найти уже готовую.

Пример с GetWindowRect:
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
using System;
using System.Runtime.InteropServices;
 
namespace ConsoleApplication30
{
    class Program
    {
        struct RECT
        {
            public int left;
            public int top;
            public int right;
            public int bottom;
 
            public override string ToString ( )
            {
                return string.Format(
                            "left, top: {0}, {1}; right, bottom {2},{3}; width x height: {4}x{5}",
                            left, top, right, bottom, right - left, bottom - top
                            );
            }
        }
 
        [DllImport( "user32.dll", SetLastError = true )]
        [return: MarshalAs( UnmanagedType.Bool )]
        static extern bool GetWindowRect (
            [In]  IntPtr hWnd,
            [Out] out RECT lpRect
            );
 
        [DllImport( "kernel32.dll", SetLastError = true )]
        static extern IntPtr GetConsoleWindow ( );
 
        static void Main ( )
        {
            RECT rect;
 
            GetWindowRect( GetConsoleWindow(), out rect );
 
            Console.WriteLine( rect );
            Console.ReadKey();
        }
    }
}
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.02.2012, 01:41
Помогаю со студенческими работами здесь

Определение размера окна стороннего приложения
Здравствуйте, есть вот такой вопрос... Как можно программно определить размер окна другого приложения ???

Определить координаты окна стороннего приложения
Здравствуйте! Помимо самого проекта есть окно стороннего приложения, которое тоже запущено. Подскажите, как получить координаты левого...

Не работает считывание текста с окна стороннего приложения
Добрый вечер! Для решения задачи "считывания текста с окна стороннего приложения", я делаю следующее: - кликаю по окну и получаю...

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

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru