Могу ли я изменить свойства другой запущенной программы? - PullRequest
0 голосов
/ 07 апреля 2011

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

Например, допустим, у меня запущены два приложения (A и B соответственно), в программе A есть кнопка с надписью «Изменить размер программы B». Мой вопрос: есть ли способ, когда эта кнопка нажата в программе A, я могу получить доступ к программе B в памяти и изменить ее свойства Width и Height форм (или любые свойства в этом отношении)?

Мне не обязательно нужен исходный код (если это вообще возможно - это будет очень цениться), в основном, мне просто интересно, что такое возможно (на любом языке / IDE) - тогда я могу потопить мое время на изучение того, как реализовать эту концепцию.

Мое предположение - по очевидным соображениям безопасности, было бы нет ... но лучше задать тупой вопрос, чем предположить тупой ответ, если вы спросите меня.

Спасибо, что уделили время этому вопросу


Понял размер окна, а как насчет таких свойств, как 'TopMost'?

Еще раз спасибо,


Просто замечательно спасибо всем за вашу большую помощь!

Ответы [ 2 ]

0 голосов
/ 07 апреля 2011

Вы можете изменить размер окон других программ, отправив в них системные сообщения.Это делается функцией WinAPI

LRESULT WINAPI SendMessage(
  __in  HWND hWnd,
  __in  UINT Msg,
  __in  WPARAM wParam,
  __in  LPARAM lParam
);

Первый параметр - дескриптор целевого окна.Вы можете получить его с помощью других функций API (например, FindWindow).

Второй - это код сообщения - в вашем случае это WM_SIZE.

Последние два параметра описаны здесь http://msdn.microsoft.com/en-us/library/ms632646(v=vs.85).aspx

Это для C ++ WinAPI.В .NET вы можете использовать P-Invoke для вызова функций WinAPI.Объявления для P-Invoke можно найти по адресу http://www.pinvoke.net/

UPD : есть другие функции, которые лучше подходят для этого: SetWindowPos и ​​MoveWindow

Это пример изменения размера,Другие действия, которые вы можете выполнить, см. В этом разделе MSDN

http://msdn.microsoft.com/en-us/library/ff468919(v=VS.85).aspx

Большинство элементов управления внутри окна (кнопки и т. Д.) Также являются окнами.Вы можете взять их ручки и управлять ими таким же образом

0 голосов
/ 07 апреля 2011

Если окно уже открыто и ваш код может его найти, он может изменить его размер. Например, код для размещения окон при щелчке правой кнопкой мыши на пустой области панели задач делает это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...