Internet Explorer AddIn using SHDocVw and mshtml

30 במרץ 2011

  כיצד אפשר לייצר AddIn שמוסיף קטעי html לכל הדפדפנים (IE) הפתוחים   (תודה לתומר קיסר על העזרה)   ראשית נוסיף את Microsoft.mshtml (זהו dll המאפשר שליטה על תוכן html - דוגמה לשימוש תוכלו לראות בפוסט Working with Microsoft.mshtml in c#)   לאחר מכן נוסיף את SHDocVw זה אמור להיות ב - C:\Windows\System32 (זהו dll המאפשר גישה לכל הדפדפנים הפתוחים)     כעת נרצה לקבל את כל החלונות הפתוחים, נריץ את הקוד הבא:   private static List<IWebBrowser2> GetIEWindows() {     List<IWebBrowser2> list = new List<IWebBrowser2>();       ShellWindows windows = new ShellWindows();       foreach (IWebBrowser2 item in windows)     {         if (item.Document is HTMLDocument)         {             list.Add(item);         }     }       return list; }   IWebBrowser2 מגיע מ...

WCF 4 (Windows Communication Foundation) for Beginner – part 14

28 במרץ 2011

  ללמוד WCF 4 פרק 14 - היכרות עם האופציות להגדרת המופעים של ה - Services, ועבודה עם כמה תהליכים במקביל.     נושאים בפרק 14. היכרות עם הגישות השונות של יצירת מופעים. כיצד לאפשר PerSession גם ב - http. היכרות עם הגישות השונות לעבודה עם כמה קריאות לשירות בו זמנית.     היכרות עם הגישות השונות של יצירת מופעים. כשכותבים שירות אנחנו יכולים להחליט באיזה מוד נעבוד, כלומר - כשמישהו יפנה ל - host וירצה להפעיל את אחד מהמתודות, ה - host יוכל להחליט:     האם לייצר מופע עבור כל קריאה - כלומר - בכל פעם שמישהו יפעיל מתודה יווצר מופע חדש של ה - service, אופצייה זאת נקראת PerCall.   אופציה נוספת היא...
תגיות: ,
תגובה אחת

From string to bool in javascript

26 במרץ 2011

  כששומרים משתנה בוליאני ב - cookie או ב - storage זה נשמר כמחרוזת, הבעייה כשמנסים להוציא את הערך ולשים אותו למשל ב - checkbox תמיד ה - checkbox יהיה מסומן מכיוון שגם אם הערך הוא "false" נקבל true, בגלל שכתיבה של הקוד הזה:   chk.checked = "false";   זהה לקוד הבא: chk.checked = !("false" == true); או לזה: chk.checked = !("false" == false);     כדי להמיר את הערך (שנשמר כמחרוזת) ניתן להרחיב את האובייקט String.   String.prototype.ToBool = function () {     return this.toLowerCase() == "false" ? false : true; }   ואז נוכל לכתוב   chk.checked = "false".ToBool();
תגובה אחת

מי תומך בגישה ישירה לאלנטים ב – DOM בלי להפעיל את document.getElementById

24 במרץ 2011

  אני מניח שהקוד הבא די ברור   <div id="rightCell"> </div>   <script type="text/javascript">     var rightCell = document.getElementById('rightCell');     rightCell.appendChild(document.createTextNode('Shlomo Goldberg')); </script>   זה בסך הכול יוסיף ל - div את הטסקט Shlomo Goldberg.     אבל מה יקרה אם נריץ את הקוד הבא:   <div id="rightCell"> </div>   <script type="text/javascript">     rightCell.appendChild(document.createTextNode('Shlomo Goldberg')); </script>   אני לא יודע מה התקן מגדיר (חיפשתי ולא מצאתי) בפועל בדקתי בדפדפנים שמותקנים לי על המחשב.   IE בכל הגרסאות ובכרום זה יעבוד מכיוון שהם יודעים לקשר בין המשתנה לאלמנט עם ה - id ב - DOM,   לעומת זאת ב - Firefox הקוד יכשל מכיון שהמשתנה rightCell מחזיר undefined.     אשמח לקבל הפניות לתקן.
2 תגובות

document.createTextNode

23 במרץ 2011

  כיצד להוסיף טקסט לאלמנטים בצד לקוח (ושיעבוד בכל הדפדפנים)     כידוע ב - IE קיים InnerText וב - Firefox יש את textContent (שמגיע מהתקן ו - IE9 כבר תומך בו)   jQuery לדוגמא בפונקציה text בודק באיזה דפדפן אנחנו נמצאים כרגע.     כדי לכתוב בצורה פשוטה ונכונה יותר ושיתמוך בכל הדפדפנים אני בדרך כלל מעדיך לכתוב קוד כזה   element.appendChild(document.createTextNode('text'));  
אין תגובות

Export Resource to Excel

22 במרץ 2011

  במידה ואתם עובדים עם קבצי resx כנראה שמתי שהוא אתם רוצים לשפוך החוצה את התוכן שלהם לקובץ שניתן לעריכה על ידי כאלו שהם לא מפתחים,   הפרוייקט שכתב ידידי היקר תומר קיסר מקבל שם של תיקייה ומוציא החוצה קובץ אקסל עם כל המידע שיש בקבצי ה - resource, כרגע זה תומך בעברית ובאנגלית במידה ותרצו עוד שפות עליכם להרחיב את ה - enum   enum Language {     en = 3,     he = 4 } המספרים הם המיקומים של העמודה בקובץ האקסל (שני הראשונים הם עבור שם הקובץ וה - key).   תוכלו להוריד אותו מכאן   (הפרוייקט עובד לי לוקלית אבל הוא לא מושלם ולא הושקע בו יותר מידי עבודה -...
תגיות: , ,
אין תגובות

Aggregate

18 במרץ 2011

  שימוש נחמד ב - Aggregate של LINQ זה היכולת לחבר מערך כלשהו למחרוזת אחת המופרדת עם פסיקים (עבור שאילתת in).   לדוגמא:   int arr = { 1, 2, 3, 4, 5, 6 };   string s = arr.Select(x => x.ToString()).Aggregate<string>((x, y) => x + "," + y);   יחזיר: "1,2,3,4,5,6"   המשתנה x יכיל בכל סיבוב של הלולאה את הערכים הקודמים ואילו המשתנה y יכיל כל פעם את המשתנה הנוכחי.   אפשר להריץ את הקוד הבא כדי להווכח בכך:   string s = arr.Select(x => x.ToString()).Aggregate<string>((x, y) =>             {                 Console.WriteLine("x:{0}\r\ny:{1}", x, y);                 Console.WriteLine();                 return x + "," + y;            ...
תגיות: , ,
3 תגובות

propdm – snippet for a property with DataMember Attribute

17 במרץ 2011

  אחד ה - snippets המוכרים ביותר הוא prop שזה קיצור דרך ליצירת automatic property.   אם תכתבו prop ותלחצו פעמיים על טאב ייוצר הקוד הבא:   public int MyProperty { get; set; }   אני כותב הרבה מחלקות עבור wcf ואני מעדיף לשים את ה - DataMember על המאפיינים אפילו שלא חייבים,   כדי לקצר את התהליך יצרתי את ה - snippet שתוכלו להוריד אותו מכאן, לאחר מכן ייבאו אותו בעזרת ה - Code Snipped Manager תחת תפריט Tools, ולאחר מכן כתיבה של propdm ייוצר הקוד הבא:     public int MyProperty { get; set; }
תגיות: ,
אין תגובות

Internet Explorer 9 Pin Site

15 במרץ 2011

כיצד לתת למשתמשים ב – IE9 חווית משתמש טובה יותר בעזרת Pin Site.   הקדמה: בהרצאה שלי ב – SDP על IE9, HTML5, CSS3 דברתי על התכונות החדשות של הדפדפן, בפוסט זה נראה חלק מהתכונות המעניינות של הדפדפן.   כמשתמשים במערכת ההפעלה Windows 7 אנחנו יודעים שאפשר לנעוץ אפליקציות ב – Task Bar וליהנות ממגוון אופציות כמו Jump List בלחיצה ימנית על האפליקציה. בנוסף יש לנו את ה – Thumbnail ולפעמים יש בו לחצנים...
אין תגובות

requestedExecutionLevel level=requireAdministrator

14 במרץ 2011

  כיצד להגדיר את האפליקצייה שלכם שתרוץ עם הרשאות מנהל.     כדי להגדיר זאת תצטרכו להכין קובץ עם סיומת manifest ולכתוב את הקוד הבא   <?xml version="1.0" encoding="utf-8" ?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">   <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="WebcastController" type="win32"/>       <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">       <security>         <requestedPrivileges>             <requestedExecutionLevel level="requireAdministrator"/>         </requestedPrivileges>       </security>   </trustInfo> </assembly>     ולאחר מכן להוסיף את הקובץ לפרוייקט, לפתוח את המאפיינים שלו ובטאב application יש מקום לבחירת manifest file תבחרו בקובץ שלכם, ומאותו רגע האפליקצייה שלכם תרוץ עם הרשאות מנהל.    
תגיות: , ,
תגובה אחת