Avatar billede thomas_fogh Nybegynder
19. februar 2006 - 19:07 Der er 6 kommentarer og
1 løsning

Lukke vinduet i for en anden process?

Jeg har et meget irriterende printer status program, som altid har et vindue åbent når computeren starter. Derfor har jeg lavet et program som finder processen og jeg vil gerne lukke vinduet.
Jeg finder processen ved at søge på MainWindowTitle, men når jeg bruger Close, CloseMainWindow eller Kill lukkes hele programmet og ikke bare vinduet. Klikker jeg selv på 'X' knappen på vinduet lukkes det som det skal.
Er der nogen som har en idé?
Kan jeg få fat i 'X' knappen eller selv sende en tilsvarende event på en eller anden måde?
Avatar billede nielle Nybegynder
19. februar 2006 - 21:09 #1
Prøv om du kan få dette til at virke:

using System;
using System.Runtime.InteropServices;

namespace e689299
{
    class Program
    {
        [DllImport("user32.dll")]
        public static extern int FindWindow(
            string lpClassName, // class name
            string lpWindowName  // window name
            );

        [DllImport("user32.dll")]
        public static extern int SendMessage(
            int hWnd, // handle to destination window
            uint Msg, // message
            int wParam, // first message parameter
            int lParam // second message parameter
            );

        public const int WM_SYSCOMMAND = 0x0112;
        public const int SC_CLOSE = 0xF060;

        static void Main(string[] args)
        {
            int hwnd = FindWindow(null, "titlen på det vindue du vil lukke");

            if (hwnd != 0)
            {
                SendMessage(hwnd, WM_SYSCOMMAND, SC_CLOSE, 0);
            }
            else
            {
                Console.WriteLine("Fandt ikke vinduet. Måske forkert titel?");
            }
        }
    }
}
Avatar billede thomas_fogh Nybegynder
20. februar 2006 - 08:24 #2
Tak det vil jeg prøve...
Findes der virkelig ikke en "rigtig" C# måde til det samme?
Avatar billede nielle Nybegynder
20. februar 2006 - 18:07 #3
Ikke så vidt jeg ved. :^|
Avatar billede thomas_fogh Nybegynder
22. februar 2006 - 13:39 #4
Af en eller anden grund finder den altid vinduet, selvom det er lukket og printer programmet kun kører i baggrunden.
Avatar billede thomas_fogh Nybegynder
22. februar 2006 - 13:57 #5
Hmm. Hvis jeg nu finder vinduet med det jeg og lukker det med dit, så skulle den være i vinkel :)

Tak for hjælpen. Opret lige et svar hvis du vil have nogle point...
Avatar billede nielle Nybegynder
22. februar 2006 - 15:26 #6
Hvis den finder altid vinduet, mon så ikke det simpelthen skyldes at vinduet ikke er lukket men faktisk kun er skjult?
Avatar billede thomas_fogh Nybegynder
22. februar 2006 - 16:42 #7
Den kan selvfølgelig godt være... det er jo ikke til at vide.
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