batch fil - 'Bring to front' til Windows XP kommando shell

Indlæg af Hanne Mølgaard Plasc

Problem



Er der en kommando, jeg kan indsætte i en Windows XP .bat-fil for at bringe kommandoskallen til forsiden?

Bedste reference


Fra en batch-fil, nej. Hvis du vil aktivere et vindue, skal du bruge SetActiveWindow (). Hvis du ikke ønsker at blive snavset med Windows programmering, men stadig vil aktivere Windows og simpelt materiale som det, anbefaler jeg stærkt at tjekke Autoit. Du kan altid kalde dette program fra din batchfile for at få det til at gøre opgaven.]] [6]

Andre referencer 1


nircmd vil gøre dette, selv om det indebærer en lille scripting. [7]


nircmd win activate "titleofwindow"


Du skal grundlæggende vide titlen på cmd-vinduet, du udfører (du kan indstille dette via kommandoen TITLE i Windows)


dermed:


TITLE \%SOME\_UNIQUE\_VALE\%
nircmd win activate \%SOME\_UNIQUE\_VALE\%


bør gøre det trick.


Bemærk, at nogle malware-værktøjer gør brug af NirCmd-eksekverbare (det kræver ingen implementering, da det er meget kraftfuldt), det kan medføre problemer.

Andre referencer 2


En anden måde at få vinduet cmd prompt til at vise foran er ved at afslutte file1.bat med en kommando for at kalde en anden file2.bat-fil efterfulgt af en exit-kommando.


EKSEMPEL ved anvendelse af
file1.bat


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


Dette lukker filen1.bat og åbner en anden .bat-fil, hvor du kan fortsætte med din kode. Denne anden .bat kommandoprompt åbnes foran andre vinduer

Andre referencer 3


CMDOW er også nyttig til dette og til andre DOS programmeringsopgaver, hvor der er behov for en lille tilføjet funktionalitet. Enkel at bruge og veldokumenteret. Mind dit anti-virus program, selvom - CMDOW har evnen til at skjule vinduer, som dit anti-virus program vil afhente som en mulig virus. Tilføj blot det til din undtagelsesliste. CMDOW er helt bærbar, er absolut IKKE en virus, og hvis du har nogen bekymringer om at det bliver brugt af en tredjepart til at skjule noget, skal du bare smide det væk i nogle uindlysende mapper et sted. [8]

Andre referencer 4


Jeg havde et lignende problem, og jeg var nødt til at udvikle en simpel C # konsol applikation, der bringer frem til et vindue. Vinduerne er valgt ved hjælp af vinduet titelpas som argument.


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");

        }
    }
}


Koden til mit batch script er så noget ligner


opgaveliste/FI 'IMAGENAME eq program.exe' | find 'program.exe'
hvis errorlevel 1 (program.exe) andet (BringToFront.exe 'Program Window Title')

Andre referencer 5


En anden hurtig måde at skifte til et vindue ved navn er via Ctrl + Shift + Esc, som åbner Task Manager. Skriv så først de første få bogstaver i vinduetitel for at vælge processen, og tryk derefter på Enter.