Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Программно нажать или хотя бы найти кнопку через Powershell

Ответить
Настройки темы
PowerShell - Программно нажать или хотя бы найти кнопку через Powershell

Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добрый день.

Есть программа, находить её по данному участку кода (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)
Пробовал участок делать так:

Код: Выделить весь код
$asm = Add-Type -MemberDefinition @'
[DllImport("user32.dll")]
public static extern bool PostMessage(
IntPtr hWnd,
uint message,
IntPtr wParam,
IntPtr lParam
);
'@ -Name Win -NameSpace Win32API -PassThru
[void]$asm::PostMessage($ptr, 000A0EB2,$true)

Отправлено: 21:00, 03-07-2018

 

Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата morgan-12l1:
Но как отправить значение кнопки? и как именно посмотреть что отправить? »
Это зависит от того, на чём написана программа. Вернее: какая технология использована для GUI.

Отправлено: 10:44, 04-07-2018 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Новый участник


Сообщения: 10
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Busla:
на чём написана программа »
В данном случаи, я пробую нажимать кнопку на программе, например активатор от K M S AutoNet;

Но в целом, мне бы понять суть. Как минимум, окно находится через Assembly выше, думаю можно и кнопку нажать. Только не могу понять во-первых какой параметр отправлять через postmessage и как его посмотреть. И так же отправить. Пробую, пока что не получается.

Отправлено: 11:57, 04-07-2018 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Программно нажать или хотя бы найти кнопку через Powershell

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Помогите нажать кнопку 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




 
Переход