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

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

26.02.2012, 21:46. Показов 10244. Ответов 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
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
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
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
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
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
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
2936 / 1795 / 180
Регистрация: 19.02.2011
Сообщений: 6,552
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
8726 / 3678 / 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru