Diskuze: konzolová aplikace ve fullscreenu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 30 zpráv z 30.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


using System;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
[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;
static void Main(string[] args)
{
Console.SetWindowSize(Console.LargestWindowWidth, Console.LargestWindowHeight);
ShowWindow(ThisConsole, MAXIMIZE);
Console.WriteLine("Hello World in Full Screen!");
Console.ReadLine();
}
}
}
Error 2 The type or namespace name 'DllImport' could not be found (are you missing a using directive or an assembly reference?)
néé můj tajnej projekt byl prozrazen 
Jsem ti to umázl a je dobré poslat zdroják 
Máš v using toto:
using System.Runtime.InteropServices;
?
ještě jsem se na to koukal že to tam nesmím zapomenout dát 
jede tak napůl,maximalizuje se to ale není to ve fullscreenu :/
No s parametry
Console.SetWindowSize
Není co bych dodal,... Ještě to přeložím Konzole.NastavOknoVelikost - tedy nastav velikost okna konzole,...
Console.LargestWindowWidth
Je maximální šířka okna - tedy stačí k tomu něco málo příčíst - asi 1 - totéž k max height a je to - tedy asi bude třeba upravit pozici - a pak přičíst asi 2 k oboum parametrům,...
Jak he? Co víc chceš? 
using System;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
[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;
static void Main(string[] args)
{
Console.SetWindowSize(Console.LargestWindowWidth + Nějaké číslo - typuji 2, Console.LargestWindowHeight + nějaké číslo - typuji 3);
ShowWindow(ThisConsole, MAXIMIZE);
Console.WriteLine("Hello World in Full Screen!");
Console.ReadLine();
}
}
}
Peostě si s těmi čísli hraj, dokud to nedá fullscreen,...
no to jsem pochopil,ale jk mám vědět jaký monitor bude mít uživatel ?
Proto je tam Console.LargestWindowWidth to largest obou paramatrů - Width a Height se postará o zjištění rozlišení - tedy tato aplikace - ta původní se vždy maximalizuje - no a když k tomu přidáš nějaké o´hodnoty, tak zmizí i rámy - skutečný fullscreen se dělá úplně stejně - změnou velikosti okna,...
No jo - úplně jsi mne zmátl - nech si původní návrh - beze změn - tedy
using System;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
[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;
static void Main(string[] args)
{
Console.SetWindowSize(Console.LargestWindowWidth, Console.LargestWindowHeight);
ShowWindow(ThisConsole, MAXIMIZE);
Console.WriteLine("Hello World in Full Screen!");
Console.ReadLine();
}
}
}
Konzoli není možné hodit do fullscreenu - jen ji lze maximalizovat - což umí ten kód hoře - umí:
private const int HIDE = 0; - skrýt
private const int MAXIMIZE = 3; - maximizace
private const int MINIMIZE = 6; - minimizace
private const int RESTORE = 9; obnovení
Jak jsi tam hodil alt + enter v hlavě se mi to přehodilo na DosBox - který je konzoli hodně podobný - ten fullscreenovat jde - konzole nikoliv.
Jestli se ti bude chtít - udělej to v grafickém módu - winform application či wpfapplication. Tam dej dockovat textbox - nastav mu černé pozadí a fullscreen nastavíš:
http://www.dreamincode.net/…ppet2541.htm
Přepracováno - hoď toto jako funkci - tedy ne do nějaké metody - ale do třídy:
struct clientRect
{
public Point location;
public int width;
public int height;
}
clientRect restore;
A pak do metody:
this.restore.location = this.Location;
this.restore.width = this.Width;
this.restore.height = this.Height;
this.TopMost = true;
this.Location = new Point(0, 0);
this.FormBorderStyle = FormBorderStyle.None;
this.Width = Screen.PrimaryScreen.Bounds.Width;
this.Height = Screen.PrimaryScreen.Bounds.Height;
Nebo použít XNA
Ale
obecně je fullscreen až na výjimky ve Windows blbost, proto ho také nativně
nijak nepodporují.
V čem je běžný? Windows se jmenují Windows proto, že programy běží v oknech. Okno je maximálně maximalizované, nikoli ve fullscreenu, protože to odporuje návrhu systému. Ve fullscreenu běží pouze hry, maximálně videopřehrávače.
No právě - hry a video přehravače - ty se používají běžně,... Navíc podle tvé definice - existuje snad OS, kde se fullscreen používá více?
Ano, ale Dan dělá Windows Forms aplikaci (nebo přesněji dokonce konzolovou) a tam je prostě fullscreen blbost. Hry jsou jiný typ aplikací, kde se používá DirectX a ten je pro fullscreen navržený.
Fullscreenové OS jsou ty singletaskingové, býval to např. DOS. Naštěstí jsou ty doby již za námi.
Zobrazeno 30 zpráv z 30.