«Вывести на передний план» для командной оболочки Windows XP - PullRequest
6 голосов
/ 17 февраля 2009

Есть ли команда, которую я могу поместить в файл .bat Windows XP, чтобы вывести командную оболочку на передний план?

Ответы [ 6 ]

10 голосов
/ 17 февраля 2009

nircmd сделает это, хотя это потребует небольшого количества скриптов.

nircmd win activate "titleofwindow"

В основном вам нужно знать заголовок окна cmd, которое вы выполняете (вы можете установить его с помощью команды TITLE в windows)

следующим образом:

TITLE %SOME_UNIQUE_VALE%
nircmd win activate %SOME_UNIQUE_VALE%

должен сделать трюк.

Обратите внимание, что некоторые вредоносные программы используют исполняемый файл NirCmd (он не требует развертывания, поскольку является очень мощным), это может вызвать проблемы.

3 голосов
/ 18 ноября 2015

Еще один способ отобразить окно приглашения cmd - завершить файл file1.bat командой для вызова второго файла file2.bat, а затем командой выхода.

ПРИМЕР использования file1.bat

....
[your code here]
start C:\file2.bat
exit

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

3 голосов
/ 17 февраля 2009

Из командного файла нет. Если вы хотите активировать окно, вы должны использовать SetActiveWindow () . Если вы не хотите испачкаться при программировании Windows, но по-прежнему хотите активировать Windows и все такое, я настоятельно рекомендую проверить Autoit Вы всегда можете вызвать эту программу из своего пакетного файла, чтобы она выполнила задачу.

2 голосов
/ 13 июля 2016

У меня была похожая проблема, и мне пришлось разработать простое консольное приложение на C #, которое выводит окно на передний план. Окна выбираются с использованием заголовка окна в качестве аргумента.

using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using  System.Runtime.InteropServices; 

 namespace ConsoleApplication1
 {
    class Program
    {

        [DllImport("USER32.DLL", CharSet = CharSet.Unicode)]
        public static extern IntPtr FindWindow(String lpClassName, String lpWindowName);

        [DllImport("USER32.DLL")]
        public static extern bool SetForegroundWindow(IntPtr hWnd);
        [DllImport("User32.dll")]
        private static extern bool IsIconic(IntPtr handle);
        [DllImport("User32.dll")]
        private static extern bool ShowWindow(IntPtr handle, int nCmdShow);
        const int SW_RESTORE = 9;
        public static void bringToFront(string title)
        {
            // Get a handle to the Calculator application.
            IntPtr handle = FindWindow(null, title);

            // Verify that Calculator is a running process.
            if (handle == IntPtr.Zero)
            {
                return;
            }
            if (IsIconic(handle))
            {
                ShowWindow(handle, SW_RESTORE);
            }

            Console.WriteLine("Founded ");
            SetForegroundWindow(handle);

        }

        static void Main(string[] args)
        {

            if (args.Length > 0)
                bringToFront(args[0]);
            else
                Console.WriteLine("specify program window title");

        }
    }
}

тогда код моего пакетного скрипта похож на

список задач / FI "IMAGENAME eq program.exe" | найти "program.exe" если errorlevel 1 (program.exe) else (BringToFront.exe "Заголовок окна программы")

2 голосов
/ 19 ноября 2010

CMDOW также полезен для этого и для других задач программирования DOS, где требуется небольшая дополнительная функциональность. Простой в использовании и хорошо документированный. Имейте в виду, что ваша антивирусная программа - CMDOW имеет возможность скрывать окна, которые ваша антивирусная программа поднимет как возможный вирус. Просто добавьте его в список исключений. CMDOW полностью переносим, ​​определенно НЕ является вирусом, и если у вас есть какие-либо опасения по поводу того, что он используется третьим лицом для сокрытия чего-либо, просто уберите его в какую-то неочевидную папку.

0 голосов
/ 28 октября 2015

Еще один быстрый способ перейти к окну по имени - через Ctrl + Shift + Esc, который открывает диспетчер задач. Затем просто введите первые несколько букв заголовка окна, чтобы выбрать процесс, затем нажмите Enter.

...