|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Программно нажать или хотя бы найти кнопку через Powershell |
|
PowerShell - Программно нажать или хотя бы найти кнопку через Powershell
|
Новый участник Сообщения: 10 |
Добрый день.
Есть программа, находить её по данному участку кода (1 часть) находит. А вот со второй не разобрался. Так понимаю это уже используется участок кода C#. Пробовал различные методы, но думаю все равно потребуется использовать user32.dll. Но как отправить значение кнопки? и как именно посмотреть что отправить? Помогите пожалуйста. скрипт взят у уважаемого greg zakharov, но связи с ним нету:-( На просторах форума нашел данный код: #пример того, как можно переключиться на окно запущенного ранее Блокнота... Add-Type -AssemblyName ($a = 'System.Windows.Forms') $FindWindow = ($unm = ($asm = [AppDomain]::CurrentDomain.GetAssemblies() | ? { $_.ManifestModule.ScopeName.Equals("$a.dll") }).GetType("$a.UnsafeNativeMethods")).GetMethod('FindWindow') $SetForegroundWindow = $unm.GetMethod('SetForegroundWindow') $ShowWindow = $asm.GetType("$a.SafeNativeMethods").GetMethod('ShowWindow') if (($ptr = $FindWindow.Invoke($null, @('Notepad', $null))) -eq [IntPtr]::Zero) { "Невозможно найти окно Блокнота.`n" break } [Runtime.InteropServices.HandleRef]$href = New-Object Runtime.InteropServices.HandleRef( (New-Object IntPtr), $ptr ) [void]$SetForegroundWindow.Invoke($null, @($href)) [void]$ShowWindow.Invoke($null, @($href, 5)) #...и того, как изменить его размер и положение $asm = Add-Type -MemberDefinition @' [DllImport("user32.dll")] public static extern Boolean MoveWindow( IntPtr hWnd, Int32 x, Int32 y, Int32 nWidth, Int32 nHeight, Boolean bRepaint ); '@ -Name Win -NameSpace Win32API -PassThru [void]$asm::MoveWindow($ptr, 1230, 750, 200, 100, $true) |
|
Отправлено: 21:00, 03-07-2018 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Цитата morgan-12l1:
|
|
Отправлено: 10:44, 04-07-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 10
|
Профиль | Отправить PM | Цитировать Цитата Busla:
Но в целом, мне бы понять суть. Как минимум, окно находится через Assembly выше, думаю можно и кнопку нажать. Только не могу понять во-первых какой параметр отправлять через postmessage и как его посмотреть. И так же отправить. Пробую, пока что не получается. |
|
Отправлено: 11:57, 04-07-2018 | #3 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Помогите нажать кнопку | nargoseo | AutoIt | 0 | 14-06-2015 10:11 | |
Любой язык - Возможно ли нажать на кнопку программно через командную строку? | ivanxam | Скриптовые языки администрирования Windows | 0 | 19-02-2014 14:33 | |
VBS/WSH/JS - [решено] [JS] Как вывести окно со ссылкой, по которой можно кликнуть или хотя бы выделить ее? | seriych | Скриптовые языки администрирования Windows | 3 | 01-06-2013 13:09 | |
Delphi - как программно нажать не кнопку, а ссылку но с передачей логина и пароля? | sagepro | Программирование и базы данных | 3 | 15-04-2011 06:33 | |
HDD - [решено] Объединить два разных HDD в один или хотя бы перераспределить | SwanHearts | Накопители (SSD, HDD, USB Flash) | 3 | 19-07-2010 14:17 |
|