מאמרים עם התגית “פיתוח Windows”
51 מאמרים עם התגית “פיתוח Windows”, מהחדש לישן.
-
הרשת עובדת אבל Windows מציג "אין אינטרנט" — לבודד NCSI, DNS, Proxy ו-VPN ב-Windows
למה Windows מציג "אין אינטרנט" בזמן שהרשת עובדת — נקודת המוצא היא קביעת הקישוריות של NCSI. כאן מפרידים בין DNS, proxy, VPN ו-captive portal בעזרת בדיקות קריא...
-
מה Fast Startup באמת עושה — למה "Shut down" ב-Windows אינו אותו דבר כמו Restart
Shutdown ב-Windows הוא hybrid shutdown כברירת מחדל, ושומר את ה-kernel ואת ה-drivers ל-hiberfil.sys. למה רק restart מאפס אותם, ומתי לכבות Fast Startup.
-
Time Travel Debugging — להקליט ולהריץ אחורה באגים שלא משתחררים באפליקציות ארוכות-ריצה
באג פעם בחודש משאיר ב-crash dump רק את התוצאה. מקליטים ומריצים אחורה את הביצוע עם WinDbg Time Travel Debugging (TTD): TTD.exe, ring buffers ו-TTD.Calls.
-
למה arguments נשברים — כללי command-line arguments ב-Windows
Windows מעביר ל-CreateProcess מחרוזת אחת שהמקבל מפצל. מכסה את כללי CommandLineToArgvW, CRT ו-.NET, ArgumentList, ובניה ב-C++.
-
סיום התמיכה ב-printer drivers של Windows — איך אפליקציות עסקיות מתכוננות להדפסת דוחות ותוויות
Microsoft מפסיקה בהדרגה printer drivers מסוג v3/v4. מה Windows protected print mode מסיר, ואיך עושים inventory ומכינים הדפסת דוחות ותוויות באפליקציות עסקיות.
-
WinRT הוא COM — IInspectable, .winmd, language projections, ולמה WinUI עדיין יושב על חוזה בינארי
WinRT אינו managed runtime אלא ABI שנבנה על COM ועליו metadata של .winmd ו-language projections. מכסה IUnknown מול IInspectable, הגדרת HWND, ו-package identity.
-
מה נשאר אחרי שה-parent מת — מחזיקים child processes ב-Job Object
למה SDK helpers שורדים UI שנהרג ומחזיקים את המצלמה או את ה-COM port? מתכננים משך חיים של child process עם Job Objects, KillOnJobClose ו-completion ports.
-
מה זה OLE object? — איך embedding ו-linking עובדים, והמלכודות במסמכים עסקיים
OLE object הוא מה שמטמיע טבלת Excel ב-Word. לומדים embedding מול linking, compound files, In-Place Activation, קישורים שבורים, ניפוח ואבטחה.
-
Win32 Thread Pool API — מקביליות בלי CreateThread, דרך CreateThreadpoolWork
מפזרים קריאות CreateThread בכל הקוד ה-native? המאמר מסביר את ה-Win32 Thread Pool API שעוצב מחדש ב-Vista: ארבעת האובייקטים work, timer, wait ו-io, cleanup gro...
-
Named Pipes בפועל — ה-IPC הסטנדרטי של Windows, מתכנון עד אבטחה
מדריך מעשי ל-Named Pipes, ה-IPC הסטנדרטי ב-Windows. המאמר מסדר לפי מקורות ראשוניים את הבחירה בין byte mode ל-message mode, תכנון server לכמה clients, אבטחה ע...
-
אפליקציות שנשברות אחרי Sleep — power events ואיך לבנות אפליקציה עסקית ששורדת resume
פתחתם את ה-laptop והתקשורת של האפליקציה העסקית הייתה מתה. הסיבה היא תכנון שלא לקח Sleep בחשבון. המאמר עובר על זרימת WM_POWERBROADCAST, התנהגות Modern Standby...
-
DllMain ו-loader lock — הסיבה האמיתית שאומרים לא לעשות כלום ב-initialization של DLL
למה אסור לקרוא ל-LoadLibrary או להסתנכרן עם threads מתוך DllMain. המאמר מסביר ממקורות ראשוניים איך loader lock מסדר כל DLL notification, תרחישי deadlock קלאס...
-
מה Not Responding באמת אומר — איך Windows מחליט שיש hang, ואיך לתכנן אפליקציות שלא נתקעות
Windows מסמן window כ-Not Responding אחרי 5 שניות בלי שליפת message ומציג ghost window: השיפוט, סיבות ה-hang, תכנון ה-UI thread, והחקירה.
-
איך clipboard ו-drag-and-drop עובדים — טיפול נכון ב-OLE data transfer באפליקציות עסקיות
למה הדבקת Excel מתפרקת ולמה paste נכשל אחרי סגירת המקור: clipboard formats, delayed rendering, OLE drag-and-drop, ומדיניות clipboard history וסנכרון ענן.
-
WPR/WPA בפועל — מבוא לחקירת "כל ה-PC איטי" על פני כל המערכת
חוקרים PC איטי או startup איטי ש-Task Manager לא מסביר עם ETW trace ברמת ה-OS: מצלמים ב-wpr.exe, ואז קוראים CPU, המתנות ו-I/O דיסק ב-WPA.
-
Shutdown ב-Windows מנקודת המבט של האפליקציה — לשרוד exit notifications, restart ו-power loss נכון
השחתת נתונים מ-restart לילי של Windows Update ניתנת למניעה בתכנון: notifications של WM_QUERYENDSESSION/PRESHUTDOWN, cleanup תוך שניות, ושמירות שעמידות ל-powe...
-
AppCompat ב-Windows: compatibility mode, shims ו-Compatibility Administrator
למה סימון compatibility mode מחזיר אפליקציה ישנה לחיים. המאמר מסביר shim כ-API hook, מה עושים ה-shims הנפוצים, איך מפיצים אותם עם Compatibility Administrator...
-
Context menu ו-file association ב-Windows 11 — IExplorerCommand, MSIX ו-sparse package
ב-Windows 11 פריטי context menu של האפליקציה נדחקים מאחורי "הצג אפשרויות נוספות". המאמר מסביר את שרשרת extension → ProgID → verb, מגבלות של shell extension ק...
-
פענוח קודי שגיאה ב-Windows — שלוש השכבות Win32, HRESULT ו-NTSTATUS
כשמופיע 0x80004005, מפרקים אותו לפני החיפוש. המאמר עובר על שלוש השכבות Win32, HRESULT ו-NTSTATUS, על ה-pattern של 0x8007xxxx, ועל חיפוש עם err.exe ו-PowerShell.
-
WMI/CIM מ-C# ומ-PowerShell — מדריך מעשי למידע חומרה, ניטור process ושאילתות remote
WMI/CIM הוא הדרך הסטנדרטית לשלוף serial number של מחשב, לנטר דיסק פנוי ולזהות process שהתחיל. המאמר מכסה CIM cmdlets כמו Get-CimInstance, מעבר מ-Get-WmiObjec...
-
Pitfalls באפליקציות serial communication — reconnect ותכנון log
Pitfalls שכדאי להימנע מהן באפליקציית serial לחיבור ציוד ולשליטה במכשירי מדידה: framing, timeout, RTS/CTS, DTR/RTS, reconnect ותכנון log, מזווית מעשית.
-
איך משאירים לוגים ו-crash dump כשאפליקציית Windows קורסת
איך משלבים לוג רגיל, fatal crash marker, WER LocalDumps ותהליך watchdog, כדי שאפילו כשאפליקציית Windows קורסת מ-exception לא צפוי או מ-bug בקוד, יישאר תיעוד ...
-
עיצוב UX לאפליקציות Windows - סדר עדיפויות לפי סביבת שימוש
מה לתעדף ב-UX של אפליקציות Windows: טבלת החלטה לפי B2C/B2B, אמצעי קלט, סביבת שימוש ועלות של טעות הפעלה.
-
WinForms, WPF או WinUI — טבלת החלטה מעשית
איך בוחרים בין WinForms, WPF ו-WinUI לפי פיתוח חדש, אפליקציות קיימות, deployment, גמישות UI ומבנה הצוות.
-
מלכודות של shared memory ו-best practices מעשיים
המאמר עובר על המלכודות בשימוש ב-shared memory בשטח, ועל התכנון שמוריד את שיעור התקלות: סנכרון, visibility, lifetime, ABI והרשאות.
-
User profile ב-Windows: AppData ו-NTUSER.DAT
יסודות ה-user profile ב-Windows: איך מחלקים AppData, local / roaming / Mandatory / Temporary, Folder Redirection, FSLogix, ומאיפה בודקים כשמשהו נשבר.
-
מה זה Reg-Free COM: COM בלי רישום ב-registry
יסודות Reg-Free COM: תפקיד ה-activation context וה-manifest, היתרונות, המגבלות, ואיך מחליטים בפועל.
-
איך בונים פלט דוחות Excel: COM, Open XML ו-template
העיצוב של פלט דוחות Excel משתנה מאוד לפי השאלה אם מריצים את Excel באוטומציה, בונים xlsx ישירות, או משאירים VBA קיים. על בסיס אפליקציות Windows ומערכות עסקיות...
-
Overlay של תמונה וטקסט על MP4 עם Media Foundation
איך בונים pipeline ב-Media Foundation שמוסיף overlay של תמונה וטקסט על כל פריים ב-MP4 וכותב MP4 חדש: חלוקת העבודה בין Source Reader, ציור, המרת צבע ו-Sink Wr...
-
איך אוספים crash dump באפליקציית Windows: WER, ProcDump, WinDbg
איך בוחרים ומשתמשים ב-WER LocalDumps, ProcDump, MiniDumpWriteDump ו-WinDbg כדי לחקור קריסות באפליקציות Windows שקשה לשחזר, כולל נקודות תפעול.
-
למה Sleep(1) ב-Windows לא מדויק, ולמה עדיף event wait
ב-Windows דיוק של timed wait קצר תלוי ב-system clock resolution ובתזמון. כשמחכים להגעת עבודה, השלמת I/O או בקשת עצירה, עדיף event-driven על פני polling תקופתי.
-
Exception לא צפוי ב-.NET: מתי מסיימים תהליך ומתי ממשיכים
מתי מסיימים אפליקציית Windows אחרי exception לא צפוי ומתי אפשר להמשיך: לפי state corruption, side effect חיצוני, threads וגבול native.
-
UAC ב-Windows: איך מפרידים רק פעולות שדורשות Administrator
באפליקציית Windows משאירים את ה-UI ב-asInvoker ומפרידים רק פעולות שדורשות הרשאות Administrator ל-helper EXE. המאמר עובר בפירוט על UAC, runas, named pipe ו-va...
-
Secrets ביישומי Windows: DPAPI במקום plaintext ב-config
איך לא לשמור connection strings ו-API tokens ב-plaintext בקובץ config של יישום Windows. המאמר עובר על DPAPI / ProtectedData, על ההבדל בין CurrentUser ל-Local...
-
צ'קליסט לפני migration מ-.NET Framework ל-.NET
צ'קליסט מעשי לפני migration מ-.NET Framework ל-.NET: סוג פרויקט, טכנולוגיות לא נתמכות, תלויות NuGet, SDK-style, WPF/WinForms, CI/CD ותפעול.
-
איך ממירים YUV ל-RGB ב-Media Foundation
איך ממירים frame ב-YUV ל-RGB ב-Media Foundation: ההמרה האוטומטית של Source Reader, המרה עצמית של NV12/YUY2, stride, ומרחב הצבע.
-
הגדרות Advanced של NIC ב-Windows: RSS, LSO, EEE ו-Wake on LAN
הגדרות Advanced של NIC ב-Windows בגישה מעשית. מה באמת משתנה כשמשנים Jumbo Packet, Speed & Duplex, RSS, RSC, LSO, Flow Control, EEE ו-Wake on LAN.
-
Checklist מינימלי לאבטחת אפליקציות Windows
Checklist לאפליקציות WPF / WinForms / WinUI / C++ / C#: admin rights, code signing, updates, secrets, HTTPS, validation של קלט, טעינת DLL ולוגים — מה חייבים ...
-
COM, ActiveX ו-OCX — ההבדלים והקשר ביניהם
מהו COM, מהו ActiveX ומהו OCX — סקירה מעשית של ההבדלים והקשר ביניהם, הזיקה ל-OLE, איפה זה בשימוש, ואיך כדאי להתייחס לזה היום.
-
איך קוראים ל-DLL של C# Native AOT מ-C/C++
איך מפרסמים ספריית מחלקות C# כ-DLL native עם Native AOT, וקוראים לנקודות כניסה מסוג UnmanagedCallersOnly מ-C/C++ — לפי מקום השימוש, דפוסי מימוש ונקודות זהירות.
-
למה להכניס Generic Host ו-BackgroundService לאפליקציית desktop ב-.NET
בכלי Windows ובאפליקציות long-running, איך להשתמש ב-Generic Host וב-BackgroundService כדי לרכז הפעלה, עיבוד תקופתי, shutdown, לוג, הגדרות ו-DI.
-
ActiveX / OCX: להשאיר, לעטוף או להחליף
כשמוצאים ActiveX או OCX, איך בוחרים בין להשאיר, לעטוף או להחליף — כולל 32bit / 64bit, registration, תלות בדפדפן ותחזוקת vendor.
-
תשתית לבדיקות failure path ב-Windows עם Application Verifier
מה זה Application Verifier, ואיך בונים איתו תשתית לבדיקות failure path ב-Windows בעזרת Handles, Heaps, Low Resource Simulation ו-!htrace.
-
Handle leak באפליקציית מצלמה תעשייתית שקורסת אחרי ריצה ארוכה
איך בוחנים אפליקציית Windows שקורסת פתאום אחרי ריצה ארוכה, דרך מקרה של אפליקציית בקרת מצלמה תעשייתית: איך מוצאים handle leak ואיך מתכננים את הלוגים.
-
TCP Retransmission שעוצר תקשורת עם מצלמה תעשייתית — איך מפרקים את זה
איך מפרקים עצירה של כמה שניות בתקשורת עם מצלמה תעשייתית שנגרמת מ-TCP retransmission: packet loss, RTO, timestamps של RFC1323, ונקודות בדיקה ב-Wireshark.
-
FileSystemWatcher בפועל: miss ו-duplicate
איך משתמשים ב-FileSystemWatcher בזהירות: miss, duplicate, מלכודות בקביעת סיום, rescan, atomic claim ו-idempotency.
-
Locking ב-file handoff: file lock ו-atomic claim בפועל
איך מתכננים locking ב-file handoff: file lock, atomic claim, temp -> rename ו-idempotency, כדי להימנע מתקלות בתיקייה משותפת.
-
C# מול native DLL: מתי P/Invoke ומתי C++/CLI wrapper
כשקוראים מ-C# ל-native DLL, מתי P/Invoke מספיק ומתי C++/CLI wrapper דק משתלם יותר: ownership, exceptions, טיפוסי C++ ו-callback. סיכום של מבנה עם wrapper דק.
-
STA ו-MTA ב-COM — threading model, ואיך נמנעים מ-hang
STA/MTA ב-COM הם ה-apartment model שקובע מאיזה thread מותר לקרוא ל-component. המאמר מסביר UI thread, message loop, marshaling, ולמה קריאה מ-thread או apartme...
-
גשר COM: אפליקציית 32-bit קוראת ל-DLL של 64-bit
אפליקציית 32-bit לא יכולה לטעון DLL של 64-bit באותו process. המאמר מסביר איך Out-of-proc COM (EXE server) מגשר על זה, כולל המגבלות של Windows, הרישום ב-Regis...
-
מה זה COM — למה התכנון של Windows COM עדיין מחזיק
COM הוא binary contract בין components ב-Windows. המאמר מסביר את התכנון של interfaces, IUnknown, GUID ו-binary compatibility, ולמה העקרונות האלה עדיין רלוונט...