Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.72/57: Рейтинг темы: голосов - 57, средняя оценка - 4.72
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,329
1

Команда для закрытия окна

10.09.2015, 20:11. Просмотров 10976. Ответов 27
Метки нет (Все метки)

Очень надоела одна программка, которая при запуске открывает свое окно и кидает на рабочий стол, постоянно приходится щелкать на крестик (закрытие окна) что бы она в трее висела.
Команда TASKKILL /F /IM соответственно не подойдет, т.к. это убивает процесс, а нужно только что бы она с экрана убралась.




Ленивец 80lev (c)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2015, 20:11
Ответы с готовыми решениями:

Предотвращение закрытия окна
есть проблема: руки менее опытных людей постоянно норовят закрыть окно (назовём его окном сервера),...

Батник для закрытия командной строки
Всем привет!Создал Батник для открытия удаленного рабочего стола вот этой командой- mstsc.exe /v:...

Команда для закрытия формы
Народ, какой командой закрыть форму? т.е. есть одна материнская....открыл вторую путем <FONT...

Команда для закрытия программы в с++
Помогите, я новичок в с и еще не все понимаю, подскажите как сделать что бы при нажатии на "3"...

Закрытия первого окна формы без закрытия всей программы
Прошу помочь: в программе два окна, в начале открывается первое, после нажатия кнопки открывается...

27
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
10.09.2015, 20:57 2
Очень надоела одна программка
нет альтернативы? Напишите сами.

Чтобы что-то посоветовать, нужна конкретика о программе. Которой нет в теме. Может у нее есть некие параметры командной строки для минимизации, скрытия окна, как вот у TheBat-а /nologo.

что бы она с экрана убралась.
да без проблем, VBS:
Visual Basic
1
CreateObject("Wscript.Shell").Run "sfericheskayaproga.puperuper", 0, False
1
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,329
10.09.2015, 21:57  [ТС] 3
mailagent, если бы знал какие там ключи есть, давно бы дописал. Через cmd значит ничего нету?
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27969 / 15696 / 961
Регистрация: 15.09.2009
Сообщений: 67,822
Записей в блоге: 78
10.09.2015, 22:19 4
Windows Batch file
1
start /min mailagent.exe
попробуйте.

Добавлено через 3 минуты
возможно придется прописать полный путь к файлу, и если путь содержит пробелы - заключить в кавычки.
0
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,329
10.09.2015, 23:04  [ТС] 5
Возможно в win7 это выглядит так и у меня давно есть, ключ min не помог к сожалению.

Windows Batch file
1
start /min /d "C:\Users\Felix\AppData\Roaming\Mail.Ru\Agent\" magent.exe
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27969 / 15696 / 961
Регистрация: 15.09.2009
Сообщений: 67,822
Записей в блоге: 78
10.09.2015, 23:08 6
Windows Batch file
1
start /min C:\Users\Felix\AppData\Roaming\Mail.Ru\Agent\magent.exe
2
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
10.09.2015, 23:15 7
mailagent, если бы знал какие там ключи есть, давно бы дописал
наконец-то озвучили. Вы пришли за советом потому что не знаете, но не указали название программы. Откуда форумчане узнают про неизвестные вам ключи запуска без названия программы? Вот над этим следует задумываться при создании тем. Впрочем, уже неактуально

Через cmd значит ничего нету?
выше вам подсказали.
0
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,329
11.09.2015, 10:38  [ТС] 8
magirus, работает по старому, запускается, но окно на экране все равно появляется.

raxp, да вы правы, но я думаю, что эти ключи знают только сотрудники mail.ru, а т.к. я их в этой теме не ожидаю услышать и не упомянул об этом.

Добавлено через 1 минуту
raxp, если вы имели ввиду "выше" это
Visual Basic
1
CreateObject("Wscript.Shell").Run "sfericheskayaproga.puperuper", 0, False
то я не знаю как этим пользоваться, подскажите в моем случае как это будет.
0
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
11.09.2015, 10:54 9
я думаю, что эти ключи знают только сотрудники mail.ru, а т.к. я их в этой теме не ожидаю услышать и не упомянул об этом.
мы уже выяснили, что всего знать невозможно. То чего не знаете вы, не значит что не знают другие. И наоборот тоже верно.

о я не знаю как этим пользоваться, подскажите в моем случае как это будет.
открываете блокнот, копируете туда сию строку, закрываете блокнот и сохраняете в файл 'blahideproga.vbs'. Все. VBS скрипт работает из коробки в Windows OC, ничего инсталлировать и компилировать не надо. Считайте это аналогом батника.

Однако в контексте обсуждения метод требует коррекции. WScript.Shell метод Run - задает режим запуска внешних программ, в данном случае в скрытом режиме. Вам же свернуть надо, а значит код будет:
Visual Basic
1
CreateObject("Wscript.Shell").Run "sfericheskayaproga.puperuper", 2, False
Второй параметр расшифровывается как:
0 – скрывает окно, будет виден только процесс в диспетчере задач.
1 – нормальный режим
2 – свернутый вид
3 – развернутый вид

Удачи.
0
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,329
11.09.2015, 11:08  [ТС] 10
то же самое получилось, что и в случае с cmd, вот моя строка:
Visual Basic
1
CreateObject("Wscript.Shell").Run "C:\Users\Felix\AppData\Roaming\Mail.Ru\Agent\magent.exe", 2, False
0
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
11.09.2015, 11:55 11
Касательно ситуации: речь о разных окнах, а мы пытаемся управлять главным окном. В сети пишут, что агент запускается в свернутом виде, если ему поставить автоввод (сохранить его) пароля и автозапуск. С другой стороны, оригинальное поделие MAIL.RU не пользуется особой популярностью и рекомендовал бы вам использовать альтернативный мультипротокольный клиент Miranda с плагином mail.ru, который вы сможете настроить так как вам и не снилось.
2
Garry Galler
1917 / 1456 / 551
Регистрация: 28.10.2013
Сообщений: 3,735
11.09.2015, 12:54 12
Mailo,
Окно авторизации mail (в отличие от залогиненного - с ним то отрабатывают все команды, но оно и так свернутым запускается ) действительно ничем не закрывается\не сворачивается. Сообщения SW_HIDE и SW_SHOWMINIMIZED ему неинтересны. Также как и WM_CLOSE и WM_QUIT (проверил через powershell) - реакция индифферентная.
То есть оно их перехватывает и не передает дальше, а реагирует только на сообщение от кнопки закрытия.
Послать кнопке сообщение простым способом фиг знает как - класс не определяется. Только эмуляцией клика мыши по координатам крестика Но это уже совершенно другая (и вряд ли кому нужная) задача.
0
raxp
10190 / 6573 / 492
Регистрация: 28.12.2010
Сообщений: 21,166
Записей в блоге: 1
11.09.2015, 13:34 13
...у скайпа также, кнопка рисованная. Нажатие только посылкой сообщения по хэндлу окна по заданным координатам. Заморачиваться ради агента тоже не вижу смысла.
0
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,329
11.09.2015, 13:59  [ТС] 14
Если провести аналогию со скайпом по данной задаче, то в нем есть пару ключей, которые собственно и решают данную задачу для скайпа, ещеб бесячую рекламу какнить вырезать.

Windows Batch file
1
start /d "C:\Program Files (x86)\Skype\Phone\" Skype.exe /minimized /regrun
Если у cmd и vbs или как там её нету функции на закрытие окна = крестик у видовских окон, то в альтернативных решениях действительно смысла немного.
0
Garry Galler
1917 / 1456 / 551
Регистрация: 28.10.2013
Сообщений: 3,735
11.09.2015, 14:06 15
Mailo,
Однако я ошибся Окно все-таки можно свернуть - через тот же powershell. Была проблема с получением handle окна - по имени процесса оказывается нифига не отрабатывает. Пришлось юзать системную функцию FindWindow для поиска окна по классу:
Как скрипт powershell запускать знаете? Сохраните с расширением .ps1 и запускать можно в cmd:
Windows Batch file
1
powershell путь_до_скрипта.ps1
При желании можно и в батник обернуть.
PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Add-Type -type @"
using System; 
using System.Runtime.InteropServices; 
 
namespace System {
    public class WIN {
 
    [DllImport("user32.dll")]
    public static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
    public const int SW_HIDE          = 0;
    public const int SW_SHOWNORMAL    = 1;
    public const int SW_SHOWMINIMIZED = 2;
    public const int SW_SHOWMAXIMIZED = 3;
    public const int SW_SHOWNOACTIVATE= 4;
    public const int SW_SHOW          = 5;
    [DllImport("user32.dll")]
    public static extern IntPtr FindWindow(string ClassName, IntPtr  TitleApp);
 
    }
}
"@
 #$hWnd = [WIN]::FindWindow("MRA_LOGIN_WINDOW",[IntPtr]::Zero)
 #if ($hWnd -ne 0) {[WIN]::ShowWindow($hWnd, [Win]::SW_SHOWMINIMIZED)}
$hWnd=0
while ($hWnd -eq 0) 
{
    $hWnd = [WIN]::FindWindow("MRA_LOGIN_WINDOW",[IntPtr]::Zero)
    if ($hWnd -ne 0) {[WIN]::ShowWindow($hWnd, [Win]::SW_SHOWMINIMIZED)}
    sleep -s 1
  
}
0
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,329
11.09.2015, 16:13  [ТС] 16
Если я правильно все написал, то скрипт не сработал:
Windows Batch file
1
2
start /d "C:\Users\Felix\AppData\Roaming\Mail.Ru\Agent\" magent.exe
powershell S:\Alfa\Programs\=scripts=\die_mailagent.ps1
0
Миниатюры
Команда для закрытия окна  
Garry Galler
1917 / 1456 / 551
Регистрация: 28.10.2013
Сообщений: 3,735
11.09.2015, 16:36 17
Mailo,
Вот так запускайте скрипт:
Windows Batch file
1
powershell -NoLogo -NoProfile -ExecutionPolicy Bypass скрипт.ps1
так как у вас политика запуска скриптов powershell не установлена.
Это повлияет только на текущий сеанс запуска интерпретатора.
Или выполните команду:
Windows Batch file
1
powershell Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
для постоянного разрешения запуска скриптов.
Вот допустимые значения установки политики:

-- Restricted: не загружает файлы конфигурации и не выполняет скрипты. "Restricted" — значение по умолчанию.

-- AllSigned: требует, чтобы все скрипты и файлы конфигурации были подписаны доверенным издателем, в том числе скрипты, подготовленные на локальном компьютере.

-- RemoteSigned: требует, чтобы все скрипты и файлы конфигурации, загруженные из Интернета, были подписаны доверенным издателем.

-- Unrestricted: загружает все файлы конфигурации и выполняет все скрипты. Если запущен неподписанный скрипт, который был загружен из Интернета, то программа просит ввести разрешение перед запуском.

-- Bypass: ничего не блокируется, и никакие предупреждения и запросы не появляются.
0
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,329
11.09.2015, 16:42  [ТС] 18
Воспользовался первым вариантом, надеюсь правильно:
Windows Batch file
1
powershell -NoLogo -NoProfile -ExecutionPolicy Bypass S:\Alfa\Programs\=scripts=\die_mailagent.ps1
Ну собственно ничего не произошло, ещё хотел спросить, этот скрипт должен только открытое окно находить и закрывать его или он ещё и стартует агента?
0
Миниатюры
Команда для закрытия окна  
Garry Galler
1917 / 1456 / 551
Регистрация: 28.10.2013
Сообщений: 3,735
11.09.2015, 16:51 19
Должен находить уже открытое окно.
Если у вас не находит - покажите скрин вашего окна.
-------------------------
И если хотите, чтобы окно сворачивалось не на панель задач, а сразу в трей - замените
[Win]::SW_SHOWMINIMIZED на [Win]::SW_HIDE (или просто на 0).

Добавлено через 6 минут
И закройте в диспетчере задач процесс powershell - иначе он если окно не найдено - так и будет висеть, потому что выхода по таймауту в скрипте нет. Надо дописывать.
0
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,329
11.09.2015, 17:10  [ТС] 20
Окно это правильно в трей сворачивается только при закрытии, т.е. "имитация клика по крестику" необходима.
0
Миниатюры
Команда для закрытия окна  
11.09.2015, 17:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2015, 17:10

Можете подкинуть код для закрытия окна
Всем привет. Ни у кого нету кода, чтобы при закрытии страницы выскакивало окошко, такого плана:...

Функция для закрытия указаного хендла окна
Добрый вечер. При запуске приложения, у меня запускается доп. приложение с помощью функции:...

Сделать кнопку для закрытия модального окна
Как закоыть модальное HTML окно после отправки формы? Окно открыто с помощю :target. Желательно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru