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

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

Ответить
Настройки темы
Любой язык - Как в cmd или в PowerShell передать фокус другому окну?

Аватара для This

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


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

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


Как в cmd или в PowerShell передать фокус другому окну?

Отправлено: 13:54, 09-05-2015

 

Пользователь


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

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


Что за окна и с какой целью? мало инфы..

Отправлено: 11:11, 13-05-2015 | #2



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

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


Ветеран


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

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


Код: Выделить весь код
(New-Object -ComObject WScript.Shell).AppActivate("Калькулятор")
https://msdn.microsoft.com/en-us/lib...(v=vs.84).aspx
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:16, 13-05-2015 | #3


Ветеран


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

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


По имени процесса:
Код: Выделить весь код
Try{(New-Object -ComObject WScript.Shell).AppActivate(((wmic Process where "Name='calc.exe'" get ProcessID)-match '\d')[0])}Catch{}
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:12, 14-05-2015 | #4


Аватара для This

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


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

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


Извините, парни, думал на мыло сообщение придет, когда кто-нибудь ответит. Не заглядывал сюда давно. Опробую варианты и отпишусь, спасибо

Отправлено: 21:59, 19-05-2015 | #5


Забанен


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

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


Батник (требует наличия PowerShell, если речь об XP)
Код: Выделить весь код
<# :
  @echo off
    powershell /nologo /noprofile /command ^
    "&{[ScriptBlock]::Create((cat \"%~f0\") -join [Char]10).Invoke(@(&{$args}%1))}"
  exit /b
#>
 
{
  param(
    [Parameter(Mandatory=$true)]
    [ValidateNotNullOrEmpty()]
    [String]$ClassName
  )
 
  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')
 
  $SW_SHOW = 5
  
  if (($ptr = $FindWindow.Invoke($null, @($ClassName, $null))) -eq [IntPtr]::Zero) {
    "Could not find $($ClassName) window.`n"
    return
  }
 
  [Runtime.InteropServices.HandleRef]$href = New-Object Runtime.InteropServices.HandleRef(
    (New-Object IntPtr), $ptr
  )
  
  [void]$SetForegroundWindow.Invoke($null, @($href))
  [void]$ShowWindow.Invoke($null, @($href, $SW_SHOW))
}.Invoke($args)
Обзываем батник, скажем, FindWindow.cmd, копируем в одну из директорий переменной %PATH% и:
Код: Выделить весь код
rem поиск окна редактора реестра
C:\>FindWindow RegEdit_RegEdit
rem или блокнота
C:\>FindWindow Notepad

Отправлено: 16:26, 21-05-2015 | #6


Аватара для This

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


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

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


Всем спасибо

Отправлено: 18:16, 10-06-2015 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Передать комманду другому bat файлу AFone Скриптовые языки администрирования Windows 1 27-07-2012 06:41
нужно сменить роли контроллеров домена 2003, роль главного передать другому. akaAmigos Microsoft Windows NT/2000/2003 7 17-01-2012 22:12
как запретить другому пользователю устанавлилать ту или иную программу teres-max Хочу все знать 4 22-03-2011 11:07
VBS/WSH/JS - [решено] как при помощи SendKeys передать строку в CMD, русский - передает, латиница - нет boris_m Скриптовые языки администрирования Windows 4 04-03-2010 11:40
Прочее - [решено] Как соеденить 2 компьютера, чтобу у обоих (или у одного) был доступ к другому? asus a9rp Сетевые технологии 7 06-03-2009 22:38




 
Переход