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

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] управление окнами из командной строки

Ответить
Настройки темы
CMD/BAT - [решено] управление окнами из командной строки

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


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

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


нужно через батник запустить несколько окон и расположить их в определеном порядке
с запуском все понятно
какой командой можно задавать координаты положения окон?
ОС windows 7 x64, windows XP x86 (32)

Отправлено: 19:57, 15-05-2012

 

Ветеран


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

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


iron86, пакетные файлы не поддерживают работу с окнами. Используйте сторонние средства для манипулирования окном приложения после запуска, например NirCmd - Windows command line tool, либо переходите на PowerShell.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:42, 15-05-2012 | #2



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

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


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


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

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


Цитата Iska:
либо переходите на PowerShel »
это вариант, только не сталкивался еще
там можно сохранять в файлы типа bat?
если да, то какой командой можно реализовать задуманное?

Отправлено: 00:29, 16-05-2012 | #3


Ветеран


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

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


Цитата iron86:
там можно сохранять в файлы типа bat? »
Поясните Ваш вопрос.

Цитата iron86:
если да, то какой командой можно реализовать задуманное? »
Например, так (на основе Win32 API из PowerShell 1.0 « PowerShell и другие скрипты):
читать дальше »
Код: Выделить весь код
# Создаём объект CodeProvider, для выполнения кода c# в нашем сценарии
$CodeProvider = New-Object -TypeName Microsoft.CSharp.CSharpCodeProvider

# В этой переменной можно задать параметры для выполнения кода
$CompilerParameters = New-Object System.CodeDom.Compiler.CompilerParameters

# Константы задающие действие функции SetWindowPos
$HideWindow = 0x0080
$ShowWindow = 0x0040

# С помощью конструкции "HereString" помещаем в переменную $Code код c# объявляющий функцию SetWindowPos
$Code = @"
using System;
using System.Runtime.InteropServices;
namespace Win32API
{
    public class Window
    {
        [DllImport("user32.dll")]
        public static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags);
    }
}
"@

# Выполняем код c#
[void]$CodeProvider.CompileAssemblyFromSource($CompilerParameters, $Code)

# Запускаем процесс 'notepad.exe'
$oProcess = [System.Diagnostics.Process]::Start("notepad.exe")

# Ожидаем основного окна приложения
[void]$oProcess.WaitForInputIdle()

# Используем объявленную функцию из PowerShell
[void]([Win32API.Window]::SetWindowPos($oProcess.MainWindowHandle, 0, 100, 100, 400, 400, $ShowWindow))

# Запоминаем хэндл окна
$hPrev = $oProcess.MainWindowHandle


# Запускаем процесс 'calc.exe'
$oProcess = [System.Diagnostics.Process]::Start("calc.exe")
[void]$oProcess.WaitForInputIdle()

#Используем объявленную функцию из PowerShell
[void]([Win32API.Window]::SetWindowPos($oProcess.MainWindowHandle, $hPrev, 200, 200, 400, 400, $ShowWindow))

# Запоминаем хэндл окна
$hPrev = $oProcess.MainWindowHandle


# Запускаем процесс 'wordpad.exe' с параметром
$oProcess = [System.Diagnostics.Process]::Start("wordpad.exe", "C:\WINDOWS\system32\eula.txt")
[void]$oProcess.WaitForInputIdle()

#Используем объявленную функцию из PowerShell
[void]([Win32API.Window]::SetWindowPos($oProcess.MainWindowHandle, $hPrev, 300, 300, 500, 500, $ShowWindow))
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:23, 16-05-2012 | #4


Аватара для ferget

Разный


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

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


на калькулятор почему-то не действует

Отправлено: 06:32, 16-05-2012 | #5


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


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

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


iron86, вот на этом сайте найдете нужные Вам утилиты для данной задачи.

Отправлено: 11:36, 16-05-2012 | #6


Ветеран


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

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


sewell, вместо кучи утилит достаточно одного NirCmd, о котором было упомянуто выше.

Отправлено: 17:42, 16-05-2012 | #7


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


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

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


Цитата Iska:
Поясните Ваш вопрос. »
последовательность команд командной строки можно сохранить в исполнительный файл bat, запустив который выполняются команды
можно ли сделать тоже самое в пауер шел?

Отправлено: 18:10, 16-05-2012 | #8


Ветеран


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

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


iron86, PowerShell — это такая же исполнительная оболочка операционной системы, как и командный процессор. Со своими командами. Основа его — платформа .Net.

Отправлено: 19:44, 16-05-2012 | #9


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


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

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


попробовал NirCmd, действительно прикольная штука, но нужных мне команд не нашел
подскажите, кто хорошо знает

Отправлено: 02:04, 07-06-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] управление окнами из командной строки

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Блог - Управление активацией Windows 7 и Office 2010 из командной строки Vadikan Microsoft Windows 7 3 27-12-2010 12:58
Разное - [решено] Управление окнами с клавиатуры serkaliberm Microsoft Windows 2000/XP 5 02-04-2010 18:13
[решено] Скрытое управление GUI другой проги - без командной строки ? Nik_rus AutoIt 2 12-08-2009 12:21
[решено] Управление общим доступом и правами доступа к файлам из командной строки Casufi Microsoft Windows NT/2000/2003 4 19-09-2008 13:33
Управление шлюзом из командной строки Shaytan Сетевые технологии 3 11-08-2005 20:25




 
Переход