Захватить и переместить окна приложения из приложения.NET?

Я бы использовал FormArray вместе с FormGroup

HTML:


 
Step {{i + 1}}

Код TS:

[ 111]

Stackblitz

7
задан FlySwat 26 September 2008 в 17:58
поделиться

1 ответ

Да, это - возможное использование Windows API.

Это сообщение имеет информацию о том, как получить все дескрипторы окна от активных процессов: http://www.c-sharpcorner.com/Forums/ShowMessages.aspx?ThreadID=35545

using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
       Process[] procs = Process.GetProcesses();
       IntPtr hWnd;
       foreach(Process proc in procs)
       {
          if ((hWnd = proc.MainWindowHandle) != IntPtr.Zero)
          {
             Console.WriteLine("{0} : {1}", proc.ProcessName, hWnd);
          }
       }         
    }
 }

И затем можно переместить окно с помощью Windows API: http://www.devasp.net/net/articles/display/689.html

[DllImport("User32.dll", ExactSpelling = true, CharSet = System.Runtime.InteropServices.CharSet.Auto)]
        private static extern bool MoveWindow(IntPtr hWnd, int x, int y, int cx, int cy, bool repaint);

...

MoveWindow((IntPtr)handle, (trackBar1.Value*80), 20 , (trackBar1.Value*80)-800, 120, true);

Вот параметры для функции MoveWindow:

Для перемещения окна мы используем функцию MoveWindow, которая берет дескриптор окна, координаты для верхнего угла, а также желаемую ширину и высоту окна, на основе экранных координат. Функция MoveWindow определяется как:

MoveWindow (HWND hWnd, интервал nX, международный nY, интервал nWidth, интервал nHeight, BOOL bRepaint);

Флаг bRepaint определяет, должна ли клиентская область делаться недействительным, заставляя сообщение WM_PAINT быть отправленной, позволяя клиентской области быть перекрашенной. Как в стороне, экранные координаты могут быть получены с помощью вызова, подобного GetClientRect (GetDesktopWindow (), &rcDesktop) с rcDesktop быть переменной типа RECT, переданный ссылкой.

(http://windows-programming.suite101.com/article.cfm/client_area_size_with_movewindow)

14
ответ дан 6 December 2019 в 15:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: