Avatar billede akilleuz Nybegynder
01. februar 2008 - 21:51 Der er 3 kommentarer og
1 løsning

Minimer window

Hej

Jeg har et spørgsmål til hvordan jeg kan minimere en window jeg lige har åbnet :-)

Her er min kode:

Process[] pArry = Process.GetProcesses();

            foreach (Process p in pArry)
            {
                string s = p.ProcessName;
                s = s.ToLower();
                if (s.CompareTo("notepad") == 0)
                {
                    Process.Start(@"C:\");
                    //minimize window
                   
                }
               
            }

Og her vil jeg gerne minimere "C:\" eller lukke det.

Skriver programmet som "Console" hvis det betyder noget.
Avatar billede cwboy Nybegynder
01. februar 2008 - 22:08 #1
For at starte et program som minimeret kan du gøre det via ProcessStartInfo:


System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:\");
            psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
            System.Diagnostics.Process.Start(psi);
        }
Avatar billede cwboy Nybegynder
01. februar 2008 - 22:13 #2
Og for at have en reference til det program du lige har startet, kan du gemme det Process-objekt, der kommer ud af din Process.Start:

System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:\");
            psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized;
            System.Diagnostics.Process proc = System.Diagnostics.Process.Start(psi);

Du kan fx. afslutte en proces med proc.CloseMainWindow();
Avatar billede akilleuz Nybegynder
01. februar 2008 - 22:31 #3
Det virker perfekt. Kan jeg få dig til at fortælle mig hvordan jeg starter mit program op som minimeret?
Avatar billede cwboy Nybegynder
03. februar 2008 - 17:52 #4
Det er vist ikke lige til - men ved hjælp af P/Invoke skulle det være muligt.

1. indsæt en "using System.InteropServices;" i toppen.

2. indsæt følgende i din klasse:

        [DllImport("kernel32.dll", ExactSpelling = true)]
        private static extern IntPtr GetConsoleWindow();

        private static IntPtr ThisConsole = GetConsoleWindow();

        [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
        private static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
        private const int HIDE = 0;
        private const int MAXIMIZE = 3;
        private const int MINIMIZE = 6;
        private const int RESTORE = 9;


3. Indsæt denne linje som det første i dit program:
ShowWindow(ThisConsole, MINIMIZE);
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester