"Вывести на передний план" для командной оболочки Windows XP

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

6 ответов


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


nircmd сделает это, хотя это включает в себя немного сценариев.

nircmd win activate "titleofwindow"

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

таким образом:

TITLE %SOME_UNIQUE_VALE%
nircmd win activate %SOME_UNIQUE_VALE%

следует сделать трюк.

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


другой способ сделать окно cmd, чтобы показать перед окончанием файл1.bat с командой для вызова второго file2.файл bat, за которым следует команда exit.

пример использования файл1.летучая мышь!--2-->

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

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


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


У меня была аналогичная проблема, и мне пришлось разработать простое консольное приложение 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");

        }
    }
}

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

tasklist / FI " IMAGENAME эквалайзер программы.exe "/ найти " программу.исполняемый" если errorlevel 1 (программа.exe) еще (BringToFront.exe "название окна программы")


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