Kopya

Nasıl çalışır

Yakalama dışı bırakma nasıl çalışır: setContentProtection ve WDA_EXCLUDEFROMCAPTURE

Bir uygulama, kendi penceresini ekran paylaşımında ve ekran kaydında gizlemek için işletim sisteminden onu yakalamanın dışında tutmasını ister. Windows’ta bu iş SetWindowDisplayAffinity işlevine WDA_EXCLUDEFROMCAPTURE değeriyle düşer; macOS’taki karşılığı NSWindow.sharingType = .none, Electron’un setContentProtection yöntemi ise ikisini tek çağrıda toplar. Masaüstü yapay zeka asistanı Kopya AI da yanıt panelinde bunu kullanır. Windows tarafını Microsoft belgeliyor; Apple kendi bayrağını eski (legacy) sayıyor, bu yüzden macOS’ta sonuç sistem sürümüne ve yakalama aracına göre değişiyor. İkisi de güvenlik sınırı değil.

Son güncelleme · Kopya AI ekibi

Pencereyi ekran yakalamanın dışında bırakmak ne demek?

Yakalama dışı bırakma, bir uygulamanın kendi penceresini işaretlemesine izin veren bir işletim sistemi özelliğidir. Sistem o pencereyi senin ekranında çizmeyi sürdürür, ama desteklenen ekran görüntülerine, kayıtlara ve ekran paylaşımlarına almaz. Uygulama kendi başına hiçbir şey gizlemez; yalnızca bir bayrak ayarlar. Bayrağa hangi yakalama yollarının uyacağına işletim sistemi karar verir.

Kopya AI (kopya.ai), macOS ve Windows için bir masaüstü yapay zeka asistanıdır: kısayola bastığında ekranındaki işle ilgili sorularını yanıtlar; paneli, desteklenen ekran paylaşımlarının ve kayıtların dışında kalır. Bu sayfa işin geliştirici tarafını anlatıyor. Ürün tarafı için Kopya AI’ın ekran kaydı gizliliği sayfasına, terimler için ekran yakalama sözlüğüne bak.

API ya da bayrakPlatformYakalama yazılımına ne gider?
WDA_EXCLUDEFROMCAPTUREWindows 10 sürüm 2004 ve sonrası, Windows 11Pencerenin hiç yer almadığı bir masaüstü
WDA_MONITORWindows (eski derlemeler dahil)İçi boş bir pencere: boş ya da siyah bir dikdörtgen
NSWindow.sharingType = .nonemacOS (Apple eski/legacy sayıyor)Değişir; ScreenCaptureKit kullanan araçlar pencereyi yakalayabilir
setContentProtection(true)Windows ve macOS’ta ElectronAlttaki işletim sistemi bayrağı ne veriyorsa o

Windows’ta SetWindowDisplayAffinity bir pencereyi ekran paylaşımından ve kayıttan nasıl gizler?

SetWindowDisplayAffinity, bir pencerenin içeriğinin nerede görüntülenebileceğini Windows’a bildiren bir Win32 işlevidir. WDA_EXCLUDEFROMCAPTURE değeri Windows 10 sürüm 2004’ten (derleme 19041) beri destekleniyor. Microsoft’un belgelerine göre bu değerle işaretlenen pencere yalnızca monitörde görünür, başka hiçbir yerde yer almaz: yakalama yazılımına giden görüntüde o pencere yoktur.

#include <windows.h>

// hwnd: bu işleme ait, üst düzey bir pencere.
BOOL ok = SetWindowDisplayAffinity(hwnd, WDA_EXCLUDEFROMCAPTURE);

// Windows 10 sürüm 2004 öncesinde aynı çağrı WDA_MONITOR gibi davranır:
// pencere yakalamanın dışında kalmaz, içi boş görünür.

DWORD affinity = 0;
GetWindowDisplayAffinity(hwnd, &affinity); // bunu başka işlemler de okuyabilir

Microsoft’un belgelediği sınırlar şunlar:

  • Yalnızca üst düzey pencerelerde çalışır ve pencere, çağrıyı yapan işleme ait olmalıdır. Yani bir uygulama kendi penceresini hariç tutabilir, başkasınınkini tutamaz.
  • Yalnızca masaüstünü Desktop Window Manager (DWM) oluştururken geçerlidir.
  • Bayrağa, işletim sisteminin herkese açık belirli özellikleri ve API’leri uyar; Microsoft bunların listesini vermez.

Konunun kullanıcı tarafı, winver ile derleme numaranı kontrol etme adımları dahil, Windows 10 ve 11’de pencereyi ekran kaydından gizleme rehberinde.

Gizlenen pencere ekran kaydında neden siyah kutu olarak görünür?

Siyah dikdörtgen, WDA_MONITOR değerinin devrede olduğunu gösterir. Bu eski değer pencereyi monitörde tutar, ama yakalama yazılımına içi boş bir pencere verir; o da boş ya da siyah görünür. WDA_EXCLUDEFROMCAPTURE ise pencereyi yakalamadan tümüyle çıkarır. Sürüm 2004’ten eski Windows’ta yeni değeri istesen de eski sonucu alırsın.

Aynı sonuca framework’ler de yol açabilir: Electron 35.0.1 (Mart 2025), korumalı pencereleri Windows’ta opak siyah gösterdi; 35.4.0 ve 36.2.1 sürümleri bunu düzeltti. Kopya AI da 19041’den eski derlemelerde seni uyarır: orada panel, yakalamalarda siyah bir dikdörtgen olarak çıkabilir.

macOS’ta NSWindow.sharingType = .none ne işe yarar?

NSWindow.sharingType, başka işlemlerin bir pencerenin içeriğine ne kadar erişebileceğini belirleyen bir AppKit özelliğidir. .none değeri, pencereyi eski CoreGraphics API’leriyle yapılan yakalamaların dışında tutardı. Apple’ın belgelerine göre bugün .none, macOS’un artık kullanmadığı eski (legacy) bir sabit; Apple bunu içeriği yakalamadan gizlemek için kullanmamanı söylüyor.

import AppKit

// Eski (legacy) sabit. Apple'ın belgelerine göre macOS bu değeri artık
// kullanmıyor; içeriği yakalamadan gizlemek için de kullanılmamalı.
window.sharingType = .none

Apple’ın geliştirici destek ekibinden (DTS) bir mühendis Temmuz 2024’te nedenini açıkladı: bayrak CGWindow düzeyinde çalışıyor; ekran kaydı ve uzaktan kontrol uygulamalarının neredeyse tamamı ise pencere düzeyinin altında çalıştığı için bayraktan etkilenmiyor.

Bayrağı yok sayan, Apple’ın güncel yakalama framework’ü ScreenCaptureKit’tir. macOS 15.4 ve sonrasında durum sorulduğunda DTS’in Temmuz 2025’teki yanıtı şu oldu: “At this time there are no public APIs for preventing screen capture.” Yani ekran yakalamayı önleyen, herkese açık bir API şu an yok. Kasım 2025 tarihli bir başlıkta ise tutarsız sonuçlar aktarılıyor; QuickTime’ın korumalı pencereyi olduğu gibi kaydetmesi de bunlardan biri.

Kısacası macOS’ta sonuç, sistem sürümüne ve yakalama aracına bağlı. Bugün neyin işe yaradığını ve güvenilir alternatifleri Mac’te uygulamayı ekran kaydından gizleme rehberinde bulursun.

Electron’daki setContentProtection ne yapar?

setContentProtection(true), Electron’ın her iki bayrağı da saran platformlar arası yöntemidir. Windows’ta SetWindowDisplayAffinity işlevini WDA_EXCLUDEFROMCAPTURE ile çağırır; macOS’ta pencerenin paylaşım türünü NSWindowSharingNone yapar. Electron belgeleri yöntemi yalnızca macOS ve Windows için tanımlıyor ve ScreenCaptureKit ile yakalama yapan Mac uygulamalarının pencereyi yine de kaydedeceği konusunda uyarıyor.

import { BrowserWindow } from "electron";

const panel = new BrowserWindow({ frame: false, transparent: true, alwaysOnTop: true });

// Windows: SetWindowDisplayAffinity(hwnd, WDA_EXCLUDEFROMCAPTURE)
// macOS:   NSWindow.sharingType = NSWindowSharingNone (eski sabit, yukarıya bak)
panel.setContentProtection(true);

Uyarı belgelere #48290 numaralı PR ile girdi. Öncesinde #48258 numaralı issue açılmış, Electron ekibinden bir geliştirici sorunu macOS’un kendi ekran kaydıyla yeniden üretmişti. Kopya AI bu yöntemi yalnızca yanıt paneli için çağırır. Ayar ücretsiz paket dahil her pakette varsayılan olarak açıktır; macOS’ta ⌘⇧P, Windows’ta Ctrl+Shift+P kısayoluyla kapatıp açabilirsin.

Yakalama dışı bırakma bir güvenlik ya da DRM özelliği mi?

Hayır. Microsoft, display affinity ayarının bir güvenlik özelliği ya da DRM olmadığını ve birinin ekranın fotoğrafını çekmesini hiçbir şeyin engellemediğini açıkça yazıyor. Azure Virtual Desktop belgeleri de aynı noktaya değiniyor: oradaki ekran yakalama koruması DRM düzeyinde değil. Yakalama dışı bırakma, bir şeyin yanlışlıkla paylaşılmasını önler; kararlı bir gözlemciyi durduramaz.

Şunları kapsamaz:

  • Ekrana doğrultulan bir telefon ya da kamera, ekrana bakan biri, projeksiyon ya da yansıtılan ekran.
  • Kopya AI’ın geri kalanı: menü çubuğundaki ya da sistem tepsisindeki simge, bu simgenin menüsü ve giriş penceresi yakalamanın dışında tutulmaz.
  • Görev Yöneticisi’nde ya da Etkinlik Monitörü’nde görünen işlem; izleme ve uç nokta güvenliği yazılımlarının görebildiği her şey.
  • Bilgisayarda zaten çalışan kod: güvenlik araştırmacıları, aynı oturumdaki başka bir işlemden bayrağı kaldırabildiklerini bildirdi.
  • Korumalı video: Apple bunun için geliştiricileri FairPlay Streaming’e yönlendiriyor.

Başka yazılımlar bir pencerenin yakalama dışında olduğunu anlayabilir mi?

Evet. Windows’ta GetWindowDisplayAffinity işlevi bir pencerenin geçerli ayarını döndürür ve Microsoft’un belgelerine göre bunu herhangi bir işlem çağırabilir. Pencere de çalışan bir işleme ait sıradan bir pencere olarak kalır. Yakalama dışı bırakma yalnızca yakalanan görüntünün içeriğini değiştirir; uygulamanın var olduğunu ya da bayrağın ayarlı olduğunu gizlemez.

Kopya AI’ın daha iddialı bir ifade yerine “yakalamanın dışında kalır” demesinin nedeni de bu. Ayrıntısı görünmez yapay zeka asistanı nedir ve sınırları neler sayfasında.

Hangi yaygın uygulamalar yakalama dışı bırakmayı kullanıyor?

Yakalama dışı bırakma bir güvenlik açığı istismarı değil, yaygın bir işletim sistemi özelliğidir. Microsoft’un kendi örneğinde bir ekran kaydı uygulaması, kendi düğmelerini kaydın dışında tutuyor; Recall rehberi de geliştiricilere aynı API’yi kullanmalarını söylüyor. OBS Studio, Zoom, Signal Desktop, KeePassXC ve Bitwarden da bu özelliğin bir biçimini sunuyor ya da belgeliyor.

ÜrünNe yapıyor?
OBS StudioKendi pencerelerini, OBS dahil yakalama uygulamalarından WDA_EXCLUDEFROMCAPTURE ile gizleyebilir. Windows 10 sürüm 2004 ve OBS 27.2 gerekir.
ZoomPencere filtreleme, ekranı paylaşırken Zoom masaüstü uygulamasının kendi pencerelerini dışarıda bırakır. Zoom bunu yalnızca kendi pencereleri için belgeliyor.
Signal DesktopScreen security (ekran güvenliği) ayarı Mayıs 2025’ten beri Windows 11’de varsayılan olarak açık. Signal, ayarın ekran okuyucuları ve büyüteçleri etkileyebileceği konusunda uyarıyor.
KeePassXC 2.7.0Windows’ta WDA_EXCLUDEFROMCAPTURE, macOS’ta NSWindowSharingNone kullanıyor.
Bitwarden masaüstüAllow screen capture ayarını temkinli bir dille belgeliyor: uygulama çoğu ekran görüntüsünün ve ekran paylaşımının dışında kalır.

Bitwarden’ın temkinli dili doğru yaklaşım. Kopya AI’ın da desteklenen ekran paylaşımları ve kayıtlar demesinin nedeni bu. Tipik kullanım Microsoft’un örneğiyle örtüşüyor: sunum ve demo ile eğitim videosu kaydı.

Sık sorulan sorular

Bir pencerenin gerçekten yakalama dışında kaldığını nasıl anlarım?

Bayrağı değil, çıktıyı test et: bayrağı GetWindowDisplayAffinity ile geri okumak yalnızca ayarlandığını gösterir. Kullanacağın aracı ve paylaşım modunu aç; on saniye kayıt al ya da ikinci bir cihazdan katıl ve ne çıktığına bak. Kopya AI henüz tek tek araçlar için test sonucu yayımlamadı; uyumluluk sayfasında her üreticinin belgelediği davranış ve 60 saniyelik test var.

Bir uygulama başka bir uygulamanın penceresini ekran yakalamadan gizleyebilir mi?

Hayır, bu API’lerle olmaz. Microsoft, pencerenin çağrıyı yapan işleme ait olması gerektiğini belgeliyor; NSWindow.sharingType da bir uygulamanın kendi penceresinde ayarladığı bir özellik. Başka uygulamalar için ekran paylaşımında pencere gizlemenin 5 yolundaki yerleşik yöntemlere ya da Zoom, Meet ve Teams rehberine bak.

Yakalama dışı bırakma ekran görüntülerinde de geçerli mi?

Windows’ta ekran görüntüsü de bir yakalamadır, yani belgelenen davranış geçerli; Signal, korumalı penceresinin Windows 11 ekran görüntülerinde yer almadığını söylüyor. macOS’ta durum değişiyor: Aralık 2024 tarihli bir Apple forum başlığında bir geliştirici, pencerenin ekran görüntülerine girmediğini ama ekran kayıtlarında göründüğünü bildirdi.

WDA_EXCLUDEFROMCAPTURE pencereyi Windows Recall’ın dışında tutar mı?

Microsoft’un Recall rehberi, uygulama geliştiricilerine pencere içeriğini Recall anlık görüntülerinin dışında tutmak için SetWindowDisplayAffinity kullanmalarını söylüyor; verdiği örnek WDA_MONITOR değerini ayarlıyor. Signal, ekran güvenliğini Windows 11’de bu yüzden varsayılan yaptı. Kopya AI kendi Recall testini henüz yayımlamadı.

Kaynaklar

  1. Microsoft Learn — SetWindowDisplayAffinity
  2. Microsoft Learn — GetWindowDisplayAffinity
  3. Microsoft Learn — geliştiriciler için Recall rehberi
  4. Microsoft Learn — Azure Virtual Desktop ekran yakalama koruması
  5. Apple Developer — NSWindow.SharingType.none
  6. Apple forumları — pencere paylaşım durumu (Temmuz 2024)
  7. Apple forumları — ekran görüntüsü ile ekran kaydı farkı (Aralık 2024)
  8. Apple forumları — yakalamayı önleyen herkese açık API yok (Temmuz 2025)
  9. Apple forumları — tutarsız ScreenCaptureKit davranışı (Kasım 2025)
  10. Electron belgeleri — BrowserWindow setContentProtection
  11. Electron #48258 — macOS ve ScreenCaptureKit
  12. Electron #48290 — belgelere eklenen uyarı
  13. OBS Studio #5698 — pencereleri yakalamadan gizleme
  14. Zoom Destek — pencere filtreleme
  15. Signal blogu — ekran güvenliği
  16. KeePassXC #6030 — ekran yakalama koruması
  17. Bitwarden Yardım — uygulama ayarları

Kopya AI’ı kendi ekranında dene

Ücretsiz başla, kart gerekmez. Ekran paylaşımı gizliliği her pakette varsayılan olarak açıktır — güvenmeden önce kendi araçlarınla test et.

macOS için indir

Ücretsiz başla · kart gerekmez ·

Dışarıdan yardımın yasak olduğu sınavlarda, mülakatlarda, değerlendirmelerde veya başka ortamlarda Kopya’yı kullanma. Kabul edilebilir kullanım koşullarını oku