Diskuze: Jak vytvořit a uložit screenshot formu (formuláře)
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
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.


Ano, ale všechny jsou přes bitmapu \)nebo alespon ty, které jsem našel)
Chybu to vypisuje jasně.Musíš to tam dát celé:
System.Drawing.Imaging.ImageFormat.Jpeg
jinak ti to bere ImageFormat z prostoru OxyPlot
aha díky to jsem nevěděl, nicméně mi to nesnímá ten graf, jak to?
OxyPlot neznám, nemusí být podporován. Hledat se mě to nechce.
To je právě ono, ona ta knihovna nepodporuje bitmapu, proto by mě spíše jen zajímal obyčejný print screen, který třeba snadno udělám ve window zkratkou alt+print
Dolaď si to:
using System;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace WINGDISAMPLE
{
public partial class Form1: Form
{
string screenshotfileneme;
public Form1()
{
InitializeComponent();
screenshotfileneme = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "appscreenshot.png");
}
private void button1_Click(object sender, EventArgs e)
{
try
{
using(Bitmap bmp = SafeNativeMethods.CaptureWindow(this.Handle))
{
using(FileStream fs = new FileStream(screenshotfileneme, FileMode.Create, FileAccess.Write))
{
bmp.Save(fs, System.Drawing.Imaging.ImageFormat.Png);
}
}
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, Text, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
internal static class SafeNativeMethods
{
[DllImport("gdi32.dll")]
static extern bool BitBlt(IntPtr hdcDest, int nxDest, int nyDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
[DllImport("gdi32.dll")]
static extern IntPtr CreateCompatibleBitmap(IntPtr hdc, int width, int nHeight);
[DllImport("gdi32.dll")]
static extern IntPtr CreateCompatibleDC(IntPtr hdc);
[DllImport("gdi32.dll")]
static extern IntPtr DeleteDC(IntPtr hdc);
[DllImport("gdi32.dll")]
static extern IntPtr DeleteObject(IntPtr hObject);
[DllImport("user32.dll")]
static extern IntPtr GetDesktopWindow();
[DllImport("user32.dll")]
static extern IntPtr GetWindowDC(IntPtr hWnd);
[DllImport("user32.dll")]
static extern bool ReleaseDC(IntPtr hWnd, IntPtr hDc);
[DllImport("gdi32.dll")]
static extern IntPtr SelectObject(IntPtr hdc, IntPtr hObject);
const int SRCCOPY = 0x00CC0020;
const int CAPTUREBLT = 0x40000000;
//
[DllImport("user32.dll", SetLastError = true)]
public static extern bool GetWindowRect(IntPtr hwnd, out RECT lpRect);
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int left;
public int top;
public int right;
public int bottom;
}
//
static Bitmap CaptureRegion(Rectangle region)
{
IntPtr desktophWnd;
IntPtr desktopDc;
IntPtr memoryDc;
IntPtr bitmap;
IntPtr oldBitmap;
bool success;
Bitmap result;
desktophWnd = GetDesktopWindow();
desktopDc = GetWindowDC(desktophWnd);
memoryDc = CreateCompatibleDC(desktopDc);
bitmap = CreateCompatibleBitmap(desktopDc, region.Width, region.Height);
oldBitmap = SelectObject(memoryDc, bitmap);
success = BitBlt(memoryDc, 0, 0, region.Width, region.Height, desktopDc, region.Left, region.Top, SRCCOPY | CAPTUREBLT);
try
{
if(!success)
{
throw new Win32Exception();
}
result = Image.FromHbitmap(bitmap);
}
finally
{
SelectObject(memoryDc, oldBitmap);
DeleteObject(bitmap);
DeleteDC(memoryDc);
ReleaseDC(desktophWnd, desktopDc);
}
return result;
}
public static Bitmap CaptureWindow(IntPtr hWnd)
{
RECT region;
GetWindowRect(hWnd, out region);
return CaptureRegion(Rectangle.FromLTRB(region.left, region.top, region.right, region.bottom));
}
}
}
Zobrazeno 8 zpráv z 8.