Fungsi CreateConsoleScreenBuffer
Penting
Dokumen ini menjelaskan fungsionalitas platform konsol yang tidak lagi menjadi bagian dari peta jalan ekosistem kami. Kami tidak menyarankan penggunaan konten ini dalam produk baru, tetapi kami akan terus mendukung penggunaan yang ada untuk masa depan yang tidak terbatas. Solusi modern pilihan kami berfokus pada urutan terminal virtual untuk kompatibilitas maksimum dalam skenario lintas platform. Anda dapat menemukan informasi selengkapnya tentang keputusan desain ini di konsol klasik vs. dokumen terminal virtual kami.
Membuat buffer layar konsol.
Sintaks
HANDLE WINAPI CreateConsoleScreenBuffer(
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwShareMode,
_In_opt_ const SECURITY_ATTRIBUTES *lpSecurityAttributes,
_In_ DWORD dwFlags,
_Reserved_ LPVOID lpScreenBufferData
);
Parameter
dwDesiredAccess [in]
Akses ke buffer layar konsol. Untuk daftar hak akses, lihat Keamanan Buffer Konsol dan Hak Akses.
dwShareMode [in]
Parameter ini bisa nol, menunjukkan bahwa buffer tidak dapat dibagikan, atau bisa berupa satu atau beberapa nilai berikut.
Value | Makna |
---|---|
0x00000001 FILE_SHARE_READ | Operasi terbuka lainnya dapat dilakukan pada buffer layar konsol untuk akses baca. |
0x00000002 FILE_SHARE_WRITE | Operasi terbuka lainnya dapat dilakukan pada buffer layar konsol untuk akses tulis. |
lpSecurityAttributes [in, opsional]
Penunjuk ke struktur SECURITY_ATTRIBUTES yang menentukan apakah handel yang dikembalikan dapat diwariskan oleh proses turunan. Jika lpSecurityAttributes adalah NULL, handel tidak dapat diwariskan. Anggota lpSecurityDescriptor struktur menentukan deskriptor keamanan untuk buffer layar konsol baru. Jika lpSecurityAttributes adalah NULL, buffer layar konsol mendapatkan deskriptor keamanan default. ACL dalam deskriptor keamanan default untuk buffer layar konsol berasal dari token utama atau peniruan identitas pembuat.
dwFlags [in]
Jenis buffer layar konsol yang akan dibuat. Satu-satunya jenis buffer layar yang didukung adalah CONSOLE_TEXTMODE_BUFFER.
lpScreenBufferData
Dipesan; harus NULL.
Nilai hasil
Jika fungsi berhasil, nilai pengembalian adalah handel ke buffer layar konsol baru.
Jika fungsi gagal, nilai yang dikembalikan adalah INVALID_HANDLE_VALUE. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.
Keterangan
Konsol dapat memiliki beberapa buffer layar tetapi hanya satu buffer layar aktif. Buffer layar tidak aktif dapat diakses untuk membaca dan menulis, tetapi hanya buffer layar aktif yang ditampilkan. Untuk membuat buffer layar baru menjadi buffer layar aktif, gunakan fungsi SetConsoleActiveScreenBuffer.
Buffer layar yang baru dibuat akan menyalin beberapa properti dari buffer layar aktif pada saat fungsi ini dipanggil. Perilakunya adalah sebagai berikut:
Font
- disalin dari buffer layar aktifDisplay Window Size
- disalin dari buffer layar aktifBuffer Size
- cocok denganDisplay Window Size
(TIDAK disalin)Default Attributes
(warna) - disalin dari buffer layar aktifDefault Popup Attributes
(warna) - disalin dari buffer layar aktif
Proses panggilan dapat menggunakan handel yang dikembalikan dalam fungsi apa pun yang memerlukan handel ke buffer layar konsol, tunduk pada batasan akses yang ditentukan oleh parameter dwDesiredAccess .
Proses panggilan dapat menggunakan fungsi DuplicateHandle untuk membuat handel buffer layar duplikat yang memiliki akses atau pewarisan yang berbeda dari handel asli. Namun, DuplicateHandle tidak dapat digunakan untuk membuat duplikat yang valid untuk proses yang berbeda (kecuali melalui pewarisan).
Untuk menutup handel buffer layar konsol, gunakan fungsi CloseHandle.
Tip
API ini tidak disarankan tetapi memiliki perkiraan terminal virtual yang setara dalam urutan buffer layar alternatif. Mengatur buffer layar alternatif dapat menyediakan aplikasi dengan ruang terpisah yang terisolasi untuk menggambar selama runtime sesinya sambil mempertahankan konten yang ditampilkan oleh pemanggil aplikasi. Ini mempertahankan bahwa informasi menggambar untuk pemulihan sederhana pada proses keluar.
Contoh
Misalnya, lihat Membaca dan Menulis Blok Karakter dan Atribut.
Persyaratan
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Header | ConsoleApi2.h (melalui WinCon.h, termasuk Windows.h) |
Pustaka | Kernel32.lib |
DLL | Kernel32.dll |