Stänga ett program i systemfältet (nere vid klockan) från ett annat program
Hejsan
Är på jakt efter en lösning på hur jag kan stänga ett program som ligger i systemfältet från ett annat program.
Jag har försökt med Process (.CloseMainWindow()) men fungerar inte. Jag lyckas heller inte få tag om programmets Handle eftersom med Process (.MainWindowHandle) får jag bara 0 eftersom direkt när programmet startar så gömmer det sig.
Det som fungerar är Process.Kill() men då ligger ikonen var i systemfältet tills man rör musen över den.
Hjälp?
Svara
Sv: Stänga ett program i systemfältet (nere vid klockan) från ett annat program
Skicka ett lämpligt meddelande om att programmet ska stängas eller något sådant
Svara
Sv:Stänga ett program i systemfältet (nere vid klockan) från ett annat program
Hur då? Med t.ex. SendMessage måste jag ha tag i programmets Handle, men det jag inte eftersom programmets "MainWindow" är dolt.
Svara
Sv: Stänga ett program i systemfältet (nere vid klockan) från ett annat program
PostThreadMessage verkar lämpligt :) WM_QUIT border vara ett lämpligt meddelande att posta - skicka det till huvudtråden så borde allt vara frid och fröjd =)
Svara
Sv:Stänga ett program i systemfältet (nere vid klockan) från ett annat program
Fungera kanon! Tusen tack!
Lyckades få det att fungera genom att skicka WM_QUIT till alla trådar i processen, då jag inte vet hur man får fram huvudtråden.
Hur skickar man till huvudtråden endast? Känns lite onödigt att skicka det till alla trådar, eller?
Svara
Sv: Stänga ett program i systemfältet (nere vid klockan) från ett annat program
Hm, jag hittar faktiskt ingenting om hur man får fram just den primära tråden, är inte ens säker på att det går när jag tänker efter.. Rent tekniskt tycker jag inte att det borde vara några problem, men.. Skicka till alla, kan nog inte skada tror jag?
Svara
Sv:Stänga ett program i systemfältet (nere vid klockan) från ett annat program
Ett program behöver inte skapa huvudfönstret i någon särskild tråd så det är lika bra att skicka till alla.
Har dock hört att PostThreadMessage är lite opålitlig. Det har att göra med att det inte följer med någon fönsterpekare i meddelandet. Detta innebär att meddelandet går till eventloopen för det fönster som för tillfället är aktivt (t.ex. en dialogbox) och det är inte säkert att det hanterar WM_QUIT.
Svara
Sv: Stänga ett program i systemfältet (nere vid klockan) från ett annat program
Hm, jag tror att det fönstret ska posta om meddelandet då om jag inte minns fel?
Svara
Sv:Stänga ett program i systemfältet (nere vid klockan) från ett annat program
Så länge det fungerar för programmet jag vill stänga så är jag nöjd! Stort tack! =)
Svara