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

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

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

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




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

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

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

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

Команда для автозапуска сети
Вообщем, Интернет в принципе кабельный, но через ВПН #_# Нужно при каждом...

Команда для bat файла
Есть bat файл который выполняет определенные функции для приложения. Для...

27
Garry Galler
1821 / 1383 / 527
Регистрация: 28.10.2013
Сообщений: 3,528
11.09.2015, 17:23 21
Mailo,
Ну дак это не то окно - конечно, скрипт его не находит.
Мы тут все думали, что вы клиента в неавторизованном виде запускаете.
А в авторизованное окно у меня и через start /min сворачивалось. И вообще само минимизировалось при старте системы.
Ладно. Сейчас некогда этим заниматься. Позже попробую с этим разобраться.

Добавлено через 6 минут
Замените скрипт на это - здесь поиск по заголовку - а у mail агента они вроде одинаковые на всех окнах.
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
32
33
34
35
36
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);
    [DllImport("user32.dll", EntryPoint = "FindWindow")]
    public static extern IntPtr FindWindow2(IntPtr ClassName, string  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)
    $hWnd = [WIN]::FindWindow2([IntPtr]::Zero,"Mail.Ru Агент")
    if ($hWnd -ne 0) {[WIN]::ShowWindow($hWnd, [Win]::SW_HIDE)}
    sleep -s 1
  
}
 
 "Окно $hWnd свернуто!"
0
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,325
11.09.2015, 17:51  [ТС] 22
Зачем бы мне понадобилось сворачивать неавторизованное окно при запуске, что бы разворачивать и данные вводить Новый скрипт это здорово, но у меня, как я понял скрипты эти по какой то причине не срабатывают. Остается только черное окно с одной строкой. Спасибо за старания кстать.
0
Garry Galler
1821 / 1383 / 527
Регистрация: 28.10.2013
Сообщений: 3,528
11.09.2015, 18:20 23
Mailo,
Зачем бы мне понадобилось сворачивать неавторизованное окно при запуске
Ну кто вас знает
А вы в автозапуск агента ставили? У меня он сразу на панель сворачивается.
-------------------------------------------
В общем, cкачайте программу Spy++ или ControlViewer (с сайта autoitscript.com) - вторую предпочтительнее.
Как пользоваться разберетесь - нужно просто запустить программу и навести лупу на нужное окно. Программа отобразит все данные по окну: самое важное - пункты Title и Class на вкладке Window. И киньте сюда скрин полученной информации.
Надо сравнить вашего агента с моим - чего-то они отличаются.
1
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,325
11.09.2015, 20:43  [ТС] 24
В автозапуск уже ставил, добавляется ключ -CU который приводит к вот такому багу при загрузке (скрин 1) (скрин 2 - моя версия, у вас другая?)
0
Миниатюры
Команда для закрытия окна   Команда для закрытия окна  
vavun
9866 / 5235 / 802
Регистрация: 07.04.2013
Сообщений: 15,192
11.09.2015, 20:54 25
Mailo, последняя версия на сайте 6.5
1
raxp
11.09.2015, 20:59
  #26

Не по теме:

...сколько мучений и траты времени.

0
Mailo
136 / 127 / 15
Регистрация: 18.02.2010
Сообщений: 1,325
11.09.2015, 21:35  [ТС] 27
О и правда, странно что он не обновился, ключ -CU без багов заработал в 6.5. Извиняюсь за косяк с обновой
В общем solved, спасибо!
0
Garry Galler
1821 / 1383 / 527
Регистрация: 28.10.2013
Сообщений: 3,528
11.09.2015, 22:26 28
Mailo,
Вроде решили проблему?
У меня так вообще 6.3 версия. Но дело не в ней было. У mailagent много хитрых окон - в том числе сдвоенных, которое я ловил себя (MRA_SENDRECEIVE), а у вас окно одиночное было (ContactsHostWindow).
... В общем, даже если не понадобится, оставлю решение здесь - в этом варианте перебираются все основные окна mailagent - и есть выход по таймауту, который можно передать как аргумент скрипту.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Param (
[int]$timeout=10 # 10 секунд
)
 
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);
    [DllImport("user32.dll", EntryPoint = "FindWindow")]
    public static extern IntPtr FindWindow2(IntPtr ClassName, string  TitleApp);
 
    }
}
"@
 
$hWnd=0
$start=[Environment]::TickCount
while ($hWnd -eq 0) 
{
    @("MRA_LOGIN_WINDOW", "MRA_SENDRECEIVE", "ContactsHostWindow")|%{
    $hWnd = [WIN]::FindWindow($_,[IntPtr]::Zero)   
    if ($hWnd -ne 0) {
        if ([WIN]::ShowWindow($hWnd, [Win]::SW_HIDE))
        {
            "Окно $_ с handle=$hWnd свернуто!"
             break
        }
     }
     sleep -Milliseconds 100
     if (([Environment]::TickCount - $start)/1000  -ge $timeout) 
       {"Окно не найдено. Выход по таймауту."; break}  
     }
}
0
11.09.2015, 22:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.09.2015, 22:26

Команда для запуска софта
Доброе время суток. . Помогите пожалуйста с написанием кода. Суть : Есть...

Команда для запоминания даты
Нужно создать бат файл который От имени администратора запоминает текущую...

Команда для скрытия объектов каталога
Например. Необходимо скрыть все объекты определенного каталога (в моем случае...


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

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

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