U nekom trenutku vas je sigurno zasmetalo što se konzola na krivom mjestu ili krivom monitoru. Nažalost, konzola ne nudi out of the box rješenje, tako da moramo potražiti alternativu ovom problemu.

Moje se rješenje temelji na korištenju Windows API-ja i Windows Forms-a.a.

Funkcija SetWindowPos  se čini kao dobar početak. Pomoću nje možemo postaviti ekran s početnim X i Y osima, širinom, visinom i položajem prozora. Za korištenje ove funkcije postoje dva izazova:

 

Dobivanje početne x koordinate monitora i dohvaćanje samog ekrana konzole.

 

Točku x monitora možete lako dobiti pomoću WinForms System.Windows.Forms.Screen.AllScreens property-a, koje pohranjuje sve informacije vezane uz monitore.

Dobivanje “handle-” prozora Console malo je teže. Prvo moramo koristiti funkciju GetConsoleWindow i proslijediti funkciju pointeru, a zatim ga proslijediti SetWindowPos funkciji.

SetWindowPos ne može maksimizirati zaslon (možemo konzolu proširiti da zauzme maksimalnu širinu i visinu ekrana ali state i dalje ne bi bio “Maximized”). Za to možemo iskoristiti funkciju ShowWindow kojoj prosljeđujemo prozor konzole i željeni state.

To bi bilo sve za ovaj kratki vodič, a code sample prikazan u nastavku.

Sretno kodiranje!