עבור לתוכן

עזרה פרוייקט שלקחתי על עצמי - קשור בשינוי המידע הויזואלי על המסך

Featured Replies

פורסם

אוקיי נפל עלי יום אחד רעיון שאני רוצה לממש, אך אין לי ממש רקע בנושא. אם למישהו פה יש רעיון הוא יתקבל בברכה.

הרעיון הוא לכתוב תוכנה שתוכל לגרום לטשטוש שכל חלון אחר, כך שלא יהיה אפשר לראות מה כתוב/מה מוצג באותו חלון(כשחלון יכול להיות תיקייה, משחק, חלון שיחה וכו'.

את הUI אין לי בעייה לתכנת. ליצור רשימה של החלונות הפתוחים ולאפשר בחירה של חלון מתוכם בעזרת C# היא משימה פשוטה יחסית.

הבעיה היא כיצד לגשת למידע שכל תוכנה שולחת למערכת ההפעלה כדי שתוכל להציג אותו על המסך.

אני מאמין שזה עובד ככה, אבל אין לי ממש מושג איך עובדת מע' חלונות(אני על XP) בקטע הזה.

בקיצור שאלתי אליכם - כיצד אתם חושבים שהכי טוב לטשטש חלון?(בלי סתם לצייר מעליו חלון חדש שחור שמסתיר אותו או משהו xD)

לרקורד יש לי ידע סביר בASM ובC#, אני מכיר את הסינטקסט ודרך העבודה בC כך שאשמח אם דרך הפתרון תהייה באמצעות אחת מהשפות האלו.

פורסם

נשמע רעיון מעניין. אני לא חושב שיש פתרון פשוט יחסית לזה, כי אני מניח שזה משהו שה-API של חלונות לא ממש חושף.

זה קצת מזכיר לי את העקרון של WindowBlinds, שזו תוכנה שמשנה את ה-UI הסטנדרטי של חלונות. חיפשתי קצת ומצאתי הסבר על איך הוא עובד:

http://www.osnews.com/story/879/Interview_with_Stardock_s_Brad_Wardell

קרא את סעיף 3.

אולי כדאי לך דווקא לנסות לעשות את זה בלינוקס, שם יש הפרדה יותר חזקה בין מערכת ההפעלה וה-GUI, ויש לך גישה מלאה לקוד המקור.

פורסם
  • מחבר

חשבתי לעשות את זה בלינוקס, אבל אני רוצה גם להשתמש בזה ביומיום אז אני מעדיף ווינדוס :P

אז בתכלס מה שצריך לעשות זה למצוא איפה שולחים מידע לציור למערכת ההפעלה, ולשלוח פקודת ביטול או משהו כזה תוך כדי שליחת בקשת ציור חדשה דרך פונקציה ייעודית משלי.

זה ידרוש לא מעט מחקר ...

חשבתי על דרך נוספת, שהיא לנסות לגשת לזיכרון המערכת, ולשחק עם הsegmentים הרלוונטיים לחלון שאני צריך, כך שלא משנה אם המערכת מציירת או לא, תמיד ישאר שם זבל. כמובן זה תוך התחשבות בגודל החלון ומיקומו.

תודה על התגובה :)

אם יש פה עוד אנשים המעוניינים בסיעור מוחות, תרגישו חופשיים .

פורסם

על VISTA\WIN7 זה לא בעייתי במיוחד.

תעבוד עם DWM, יש לך חלון למשל של Notepad שאותו אתה רוצה לטשטש,תתשאל את הגודל והמיקום המדוייק של החלון במרחב המסך ותיצור חלון מעליו עם DwmEnableBlurBehindWindow מופעל ללא toolbox או אפשרות הזזה, וד"א יש המון תוכנות שמסתירות תוכן של חלון...

פורסם

במקום כל הבלאגן שהציעו לך הייתי מציע FindWindow למציאת החלון ו ShowWindow להסתרת החלון

פורסם

אבל המטרה היא לא סתם להסתיר את החלון, המטרה היא לעשות לו blur.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים