Απόρρητο · Οδηγοί
Πώς να αποκρύψετε έναν Βοηθό AI από την κοινή χρήση οθόνης στα Windows (Win32 & DirectX)
The Odrivyn team · Ενημερώθηκε · 9 λεπτά ανάγνωσης

Με λίγα λόγια
Τα Windows αποκρύπτουν τα παράθυρα εφαρμογών από τη λήψη οθόνης μέσω του SetWindowDisplayAffinity API με τη σημαία WDA_EXCLUDEFROMCAPTURE. Ο Διαχειριστής παραθύρων επιφάνειας εργασίας των Windows παρακάμπτει το παράθυρο κατά τη διάρκεια των περασμάτων λήψης οθόνης και αποδίδει το υποκείμενο φόντο της επιφάνειας εργασίας. Το Zoom, το Microsoft Teams, το Google Meet και οι συσκευές εγγραφής οθόνης καταγράφουν μόνο το περιεχόμενο κάτω από το παράθυρο του βοηθού.
Γιατί αποτυγχάνουν οι τυπικές εφαρμογές σημειώσεων κατά την κοινή χρήση οθόνης
Η κοινή χρήση οθόνης παραμένει καθημερινή απαίτηση για απομακρυσμένες παρουσιάσεις, τεχνικές συνεντεύξεις και επιδείξεις λογισμικού. Οι παρουσιαστές μοιράζονται πλήρεις οθόνες επιφάνειας εργασίας για εναλλαγή μεταξύ προγραμμάτων επεξεργασίας κώδικα, προγραμμάτων περιήγησης ιστού και διαφανειών παρουσίασης χωρίς να διακόπτεται η ροή της συνάντησης.
Οι τυπικές εφαρμογές λήψης σημειώσεων (όπως τα προγράμματα επεξεργασίας κειμένου Notion, Obsidian και συστήματος) σχεδιάζουν τις διεπαφές τους στην κοινόχρηστη επιφάνεια σύνθεσης επιφάνειας εργασίας. Όταν ανοίγετε ένα παράθυρο σημείωσης για να ελέγξετε τα σημεία συζήτησης ή τις προτροπές συνεντεύξεων, κάθε συμμετέχων στη σύσκεψη προβάλλει το περιεχόμενο.
Η κοινή χρήση ενός απομονωμένου παραθύρου προγράμματος εισάγει πρακτική τριβή. Οι ειδοποιήσεις συστήματος, οι ειδοποιήσεις στο παρασκήνιο και τα αναδυόμενα παράθυρα διαλόγου από άλλο λογισμικό συχνά επικαλύπτουν το περίγραμμα της κοινόχρηστης εφαρμογής, προκαλώντας ακούσια έκθεση εμπιστευτικών δεδομένων.
Η σωλήνωση σύνθεσης Windows Desktop Window Manager
Τα Windows συντονίζουν την απόδοση της γραφικής απεικόνισης μέσω του Desktop Window Manager (dwm.exe). Στα Windows 10 έκδοση 2004 (Build 19041), η Microsoft επέκτεινε τη συνάρτηση Win32 SetWindowDisplayAffinity προσθέτοντας τη σταθερά WDA_EXCLUDEFROMCAPTURE.
Η συνάρτηση δέχεται μια εγγενή λαβή παραθύρου (HWND) και μια παράμετρο συνάφειας: WDA_NONE (0x00), WDA_MONITOR (0x01) ή WDA_EXCLUDEFROMCAPTURE (0x11).
Όταν το λογισμικό καταχωρεί το WDA_EXCLUDEFROMCAPTURE, η μηχανή σύνθεσης αντιμετωπίζει τη συγκεκριμένη επιφάνεια παραθύρου ως διαφανή κάθε φορά που μια εξωτερική διεργασία καλεί API καταγραφής οθόνης. Το λειτουργικό σύστημα αντιγράφει το υποκείμενο φόντο της επιφάνειας εργασίας στην προσωρινή μνήμη λήψης, ενώ ζωγραφίζει το παράθυρο του βοηθού στην οθόνη του φυσικού σας υλικού.
Οι πλατφόρμες διασκέψεων (συμπεριλαμβανομένων των Zoom, Microsoft Teams, Google Meet και Slack) καταγράφουν καρέ οθόνης μέσω τυπικών ρουτινών Windows Graphics Capture ή BitBlt. Το λειτουργικό σύστημα εφαρμόζει το φίλτρο συνάφειας οθόνης πριν επιστρέψει τα buffer πλαισίων στο λογισμικό σύσκεψης.
Σύνθεση swapchain DirectX και δέντρο παραθύρου επιφάνειας εργασίας
Το Windows Desktop Window Manager συντονίζει τις ενημερώσεις εμφάνισης μέσω των swapchains Direct3D. Όταν μια εφαρμογή χρωματίζει τη διεπαφή της, υποβάλλει επιφάνειες pixel στο DWM, το οποίο συνδυάζει μεμονωμένες επιφάνειες παραθύρου σε ένα ενιαίο πλαίσιο οθόνης.
Τα παλαιού τύπου εργαλεία λήψης οθόνης βασίστηκαν στη λειτουργία Win32 GDI BitBlt, η οποία αντέγραφε μπλοκ pixel ράστερ από το περιβάλλον της συσκευής οθόνης. Το σύγχρονο λογισμικό συνδιάσκεψης χρησιμοποιεί το Windows Graphics Capture API ή το Desktop Duplication API, το οποίο διαβάζει απευθείας από τις επιφάνειες μνήμης βίντεο Direct3D.
Επειδή το WDA_EXCLUDEFROMCAPTURE δρα εντός του βασικού δέντρου σύνθεσης DWM, η εξαίρεση ισχύει τόσο για την παλαιού τύπου απόξεση οθόνης GDI όσο και για τις σύγχρονες σωλήνες βίντεο Direct3D. Η διοχέτευση σύνθεσης λειτουργικού συστήματος ανταλλάσσει την εξαιρούμενη επιφάνεια παραθύρου με την επιφάνεια φόντου πριν υποβάλει το buffer πλαισίου στον καταναλωτή λήψης.
Γιατί διαρρέουν το πρόγραμμα περιήγησης ιστού και τα περιτυλίγματα παραθύρων Electron κατά τη διάρκεια της παρουσίασης
Πολλά βοηθητικά προγράμματα επιτραπέζιου υπολογιστή συσκευάζουν μηχανές Ιστού μέσα σε περιτυλίγματα Electron ή Chromium. Αυτά τα πλαίσια εισάγουν επίπεδα αφαίρεσης μεταξύ της εφαρμογής και του υποκείμενου λειτουργικού συστήματος.
Όταν μια εφαρμογή Electron επιχειρεί να αλλάξει την ορατότητα του παραθύρου, η αρχιτεκτονική πολλαπλών διεργασιών της δημιουργεί συχνά συνθήκες αγώνα. Το παράθυρο του προγράμματος περιήγησης ζωγραφίζει σε μια ξεχωριστή αλυσίδα ανταλλαγής DirectX πριν συνδεθεί η κλήση συνάφειας Win32 στη λαβή παραθύρου ανώτατου επιπέδου. Σε διαμορφώσεις πολλαπλών οθονών, η μετακίνηση ενός παραθύρου σε οθόνες με διαφορετικούς παράγοντες κλίμακας DPI μπορεί να επαναφέρει τα στυλ παραθύρων, αναβοσβήνουν εμπιστευτικές σημειώσεις στην κοινόχρηστη ροή βίντεο.
Το Odrivyn αποτρέπει αυτές τις οπτικές διαρροές με τη μεταγλώττιση ως εγγενές δυαδικό επιτραπέζιου υπολογιστή Rust. Το πρόγραμμα εφαρμόζει το WDA_EXCLUDEFROMCAPTURE κατά την αρχική δημιουργία παραθύρου πριν από την εμφάνιση ενός μόνο καρέ, αποτρέποντας την τυχαία έκθεση σε όλες τις διαμορφώσεις οθόνης.
Συμβατότητα λήψης οθόνης σε μεγάλες εφαρμογές συνδιάσκεψης
Επαληθεύτηκε στα Windows 10 Enterprise και Windows 11 Pro σε προγράμματα οδήγησης υλικού οθόνης Intel, AMD και NVIDIA.
| Λογισμικό συνδιάσκεψης | Επιλεγμένη λειτουργία λήψης | Κατάσταση παραθύρου βοηθού | Τι βλέπουν οι συμμετέχοντες στη συνάντηση |
|---|---|---|---|
| Zoom Desktop Client | Κοινή χρήση πλήρους οθόνης (επιτραπέζιος υπολογιστής 1) | Εξαιρείται από την προσωρινή μνήμη λήψης | Ταπετσαρία επιφάνειας εργασίας και παράθυρα εφαρμογών τοποθετημένα πίσω από τον βοηθό |
| Ομάδες της Microsoft | Ολόκληρη κοινή χρήση οθόνης | Εξαιρείται από την προσωρινή μνήμη λήψης | Υποκείμενο περιεχόμενο με μηδενικά περιγράμματα παραθύρων ή οπτικά τεχνουργήματα |
| Google Meet (Chrome / Edge) | Καρτέλα ολόκληρης της οθόνης | Εξαιρείται από την προσωρινή μνήμη λήψης | Καθαρό φόντο της επιφάνειας εργασίας με σταθερό ρυθμό καρέ και μηδενικό τρεμόπαιγμα |
| Slack Huddles | Μετάδοση Full Monitor | Εξαιρείται από την προσωρινή μνήμη λήψης | Μόνο εφαρμογές που εκτελούνται κάτω από τη διεπαφή Odrivyn |
| OBS Studio / Camtasia | Εμφάνιση πηγής λήψης | Εξαιρείται από την προσωρινή μνήμη λήψης | Καθαρίστε την εγγεγραμμένη ροή βίντεο που περιέχει μηδενικές επικαλύψεις βοηθού |
| Εργαλείο αποκοπής των Windows | Ορθογώνια λήψη (Win+Shift+S) | Εξαιρείται από την προσωρινή μνήμη λήψης | Το αποθηκευμένο στιγμιότυπο οθόνης εμφανίζει ταπετσαρία φόντου με μηδενικά εικονοστοιχεία επικάλυψης |
Η συμπεριφορά εξαίρεσης καταγραφής λειτουργικού συστήματος επαληθεύτηκε με ενεργοποιημένη την επιτάχυνση υλικού.
Επαλήθευση βήμα προς βήμα: επιβεβαιώστε ότι το παράθυρό σας παραμένει κρυφό πριν από μια κλήση
Ακολουθήστε αυτόν τον έλεγχο τεσσάρων βημάτων στο σταθμό εργασίας σας πριν ξεκινήσετε μια σημαντική παρουσίαση πελατών ή μια εξ αποστάσεως συνέντευξη.
Βήμα 1: Ανοίξτε το Odrivyn και τοποθετήστε το παράθυρο πάνω από την ταπετσαρία της επιφάνειας εργασίας σας ή σε μια ανοιχτή σελίδα προγράμματος περιήγησης ιστού.
Βήμα 2: Πατήστε το συνδυασμό πλήκτρων συντόμευσης των Windows: Πλήκτρο Windows + Shift + S. Αυτή η συντόμευση πληκτρολογίου καλεί την επικάλυψη του Εργαλείου αποκοπής των Windows.
Βήμα 3: Σύρετε ένα ορθογώνιο επιλογής στην περιοχή της οθόνης όπου βρίσκεται το παράθυρο Odrivyn.
Βήμα 4: Επικολλήστε το στιγμιότυπο οθόνης που τραβήξατε σε πρόγραμμα προβολής εικόνων ή έγγραφο. Εάν η συνάφεια εμφάνισης λειτουργεί όπως προβλέπεται, η εικόνα δείχνει την ταπετσαρία της επιφάνειας εργασίας ή το περιεχόμενο του προγράμματος περιήγησης, με μηδενικό ίχνος του παραθύρου του βοηθού.
Βήμα 5: Ξεκινήστε μια σύσκεψη ατομικής πρόβας στο Zoom ή στο Microsoft Teams, μοιραστείτε ολόκληρη την οθόνη της επιφάνειας εργασίας σας και επιθεωρήστε το παράθυρο προεπισκόπησης της σύσκεψης για να επιβεβαιώσετε την οπτική απομόνωση.
Αρχιτεκτονική απόδοση: native Rust Win32 vs Electron memory footprint
Οι βαριές εφαρμογές επιτραπέζιου υπολογιστή που βασίζονται σε δέσμη Electron ή Chromium συνδυάζουν πλήρεις χρόνους εκτέλεσης προγράμματος περιήγησης ιστού, καταναλώνουν 500 έως 900 megabyte μνήμης εργασίας και δημιουργούν διαμάχη περιβάλλοντος GPU κατά την κοινή χρήση οθόνης 4K.
Το Odrivyn μεταγλωττίζει ως εγγενή εφαρμογή Rust με συνδέσεις δημιουργίας παραθύρου Win32. Το εκτελέσιμο αρχείο ζυγίζει 5,7 megabyte και καταναλώνει 34 megabyte μόνιμης μνήμης κατά τη διάρκεια ενεργών συσκέψεων.
Η ελαφριά εγγενής αρχιτεκτονική αποτρέπει τις πτώσεις καρέ κατά τη διάρκεια παρουσιάσεων στην οθόνη και εφαρμόζει το WDA_EXCLUDEFROMCAPTURE κατά την προετοιμασία του παραθύρου, διασφαλίζοντας ότι η εφαρμογή δεν αποδίδει ποτέ ένα μη προστατευμένο οπτικό πλαίσιο.
Συχνές ερωτήσεις
Απαιτεί η εξαίρεση λήψης δικαιώματα διαχειριστή;
Όχι. Οποιαδήποτε τυπική διεργασία των Windows σε επίπεδο χρήστη μπορεί να ορίσει τη συνάφεια εμφάνισης σε παράθυρα που έχουν δημιουργηθεί στο δικό της νήμα εκτέλεσης.
Μπορούν οι συμμετέχοντες στην κλήση να εντοπίσουν ένα bot συμμετέχοντος στη σύσκεψη;
Κανένα bot δεν μπαίνει στη συνάντηση. Το λογισμικό λειτουργεί ως ανεξάρτητο τοπικό πρόγραμμα επιτραπέζιου υπολογιστή που διαβάζει ήχο από τα τοπικά προγράμματα οδήγησης της κάρτας ήχου.
Το WDA_EXCLUDEFROMCAPTURE λειτουργεί σε παλαιότερες εκδόσεις των Windows;
Απαιτείται Windows 10 έκδοση 2004 (Build 19041) ή νεότερη έκδοση. Σε παλαιότερες εκδόσεις, το λειτουργικό σύστημα αποδίδει ένα συμπαγές μαύρο κουτί αντί για ένα διαφανές επίπεδο λήψης.
Η συνάφεια οθόνης προστατεύει από εξωτερικές βιντεοκάμερες;
Όχι. Η συνάφεια εμφάνισης δίνει εντολή στο λογισμικό λήψης του λειτουργικού συστήματος να παρακάμψει το παράθυρο. Δεν μπορεί να εμποδίσει μια φυσική κάμερα στραμμένη στην οθόνη υλικού σας να συλλάβει το εκπεμπόμενο φως.
Μπορώ να απενεργοποιήσω την εξαίρεση λήψης εάν θέλω να εμφανίζω σημειώσεις;
Ναι. Μπορείτε να ενεργοποιήσετε ή να απενεργοποιήσετε την προστασία λήψης στις Ρυθμίσεις όποτε επιλέγετε να επιδείξετε τον βοηθό σε συναδέλφους.