דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
pcinfogmachP

pcinfogmach

@pcinfogmach
אודות
פוסטים
706
נושאים
186
שיתופים
0
קבוצות
0
עוקבים
3
עוקב אחרי
1

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • איך להתנהל עם קיצורי דרך עבור תיקיות וקבצים ב-C# עם תמיכה מלאה לעברית
    pcinfogmachP pcinfogmach

    היה לי צורך ליצור ולקרוא קיצורי דרך ב-C# אז חקרתי את הנושא קצת וזה מה שיצא.
    בעיקרון יש דרך פשוטה לעשות זאת על ידי IWshRuntimeLibrary

    כדי להשתמש בה יש להוסיף את ה- refrence הבא:
    Reference > COM > Windows Script Host Object Model.

    ואז אפשר ליצור קיצור דרך:

     static void createShortcut(string sourcePath, string destinationPath)
     {
         var wshShell = new WshShell();
         IWshShortcut shortcut = (IWshShortcut)wshShell.CreateShortcut(destinationPath);
    
         shortcut.TargetPath = sourcePath;
         shortcut.Description = $"Shortcut to {sourcePath}";
         shortcut.Save();
     }
    

    או לקרוא אותם

    public static string GetShortcutTarget(string shortcutFilePath)
    {
        WshShell shell = new WshShell();
        IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(shortcutFilePath);
        return shortcut.TargetPath;
    }
    

    שיטה זו עובדת יפה אם איזור המערכת מוגדר לעברית אבל אם ברצונכם להשתמש בה גם במחשבים שבהם אין איזור המערכת מוגדר כעברית (כלומר עם תיקיות או קבצים עם שמות בעברית ויש עברית מותקן במחשב אבל איזור המערכת במחשב אינו מוגדר כעברית - מצוי מאוד אצל חוצניקים)
    9448c73c-45e0-4582-9694-ebf0c7ccbe89-image.png
    תתיקלו בשגיאה בקוד מאחר ו- WshShell אינו ממוטב ל-Unicode.

    במקום זאת מצאתי שיטה אחרת המובאת להלן (מבוסס על כתבה זו:http://www.vbaccelerator.com/home/NET/Code/Libraries/Shell_Projects/Creating_and_Modifying_Shortcuts/article.asp)

    יצרתי בה גם פונקציות ליצירת וקריאת קיצורי דרך אם תעיינו בקוד תמצאו שם אפרויות לעוד דברים.

    using System;
    using System.Runtime.InteropServices;
    using System.Text;
    
    public enum EShellLinkResolveFlags : uint
    {
        SLR_NO_UI = 0x0001,
        SLR_ANY_MATCH = 0x0002,
        SLR_UPDATE = 0x0004,
        SLR_NOUPDATE = 0x0008,
        SLR_NOSEARCH = 0x0010,
        SLR_NOTRACK = 0x0020,
        SLR_NOLINKINFO = 0x0040,
        SLR_INVOKE_MSI = 0x0080,
        SLR_NO_UI_WITH_MSG_PUMP = 0x101,
        SLR_OFFER_DELETE_WITHOUT_FILE = 0x200,
        SLR_KNOWNFOLDER = 0x400,
        SLR_MACHINE_IN_LOCAL_TARGET = 0x800,
        SLR_UPDATE_MACHINE_AND_SID = 0x1000
    }
    
    public class ShellLink
    {
        private IShellLinkW link = null;
    
        public ShellLink()
        {
            link = (IShellLinkW)new CShellLink();
        }
    
        public void Open(
            string linkFile,
            IntPtr hWnd,
            EShellLinkResolveFlags resolveFlags,
            ushort timeOut
        )
        {
            uint flags;
    
            if ((resolveFlags & EShellLinkResolveFlags.SLR_NO_UI) == EShellLinkResolveFlags.SLR_NO_UI)
            {
                flags = (uint)((int)resolveFlags | (timeOut << 16));
            }
            else
            {
                flags = (uint)resolveFlags;
            }
    
            // Get the IPersistFile interface and call Load:
            ((IPersistFile)link).Load(linkFile, 0);
            // Resolve the link:
            link.Resolve(hWnd, flags);
        }
    
        public string Arguments
        {
            get
            {
                StringBuilder arguments = new StringBuilder(260, 260);
                link.GetArguments(arguments, arguments.Capacity);
                return arguments.ToString();
            }
            set
            {
                link.SetArguments(value);
            }
        }
    
        public void CreateShortcut(string shortcutPath, string targetPath, string arguments, string description)
        {
            link.SetPath(targetPath);
            link.SetArguments(arguments);
            link.SetDescription(description);
    
            IPersistFile persistFile = (IPersistFile)link;
            persistFile.Save(shortcutPath, true);
        }
    
        public string ReadShortcutPath(string shortcutPath)
        {
            if (System.IO.File.Exists(shortcutPath))
            {
                link = (IShellLinkW)new CShellLink();
                IPersistFile persistFile = (IPersistFile)link;
                persistFile.Load(shortcutPath, 0);
                StringBuilder pathBuilder = new StringBuilder(260, 260);
                link.GetPath(pathBuilder, pathBuilder.Capacity, default, 0);
                return pathBuilder.ToString();
            }
            else
            {
                throw new System.IO.FileNotFoundException("Shortcut file not found.", shortcutPath);
            }
        }
    
        [ComImport]
        [Guid("000214F9-0000-0000-C000-000000000046")]
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        private interface IShellLinkW
        {
            void GetPath(
                [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszFile,
                int cchMaxPath,
                ref _WIN32_FIND_DATAW pfd,
                uint fFlags);
    
            void GetIDList(out IntPtr ppidl);
    
            void SetIDList(IntPtr pidl);
    
            void GetDescription(
                [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszFile,
                int cchMaxName);
    
            void SetDescription(
                [MarshalAs(UnmanagedType.LPWStr)] string pszName);
    
            void GetWorkingDirectory(
                [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszDir,
                int cchMaxPath);
    
            void SetWorkingDirectory(
                [MarshalAs(UnmanagedType.LPWStr)] string pszDir);
    
            void GetArguments(
                [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszArgs,
                int cchMaxPath);
    
            void SetArguments(
                [MarshalAs(UnmanagedType.LPWStr)] string pszArgs);
    
            void GetHotkey(out short pwHotkey);
    
            void SetHotkey(short pwHotkey);
    
            void GetShowCmd(out uint piShowCmd);
    
            void SetShowCmd(uint piShowCmd);
    
            void GetIconLocation(
                [Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder pszIconPath,
                int cchIconPath,
                out int piIcon);
    
            void SetIconLocation(
                [MarshalAs(UnmanagedType.LPWStr)] string pszIconPath,
                int iIcon);
    
            void SetRelativePath(
                [MarshalAs(UnmanagedType.LPWStr)] string pszPathRel,
                uint dwReserved);
    
            void Resolve(
                IntPtr hWnd,
                uint fFlags);
    
            void SetPath(
                [MarshalAs(UnmanagedType.LPWStr)] string pszFile);
        }
    
        [ComImport]
        [Guid("00021401-0000-0000-C000-000000000046")]
        [ClassInterface(ClassInterfaceType.None)]
        private class CShellLink { }
    
        [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 0, CharSet = CharSet.Unicode)]
        private struct _WIN32_FIND_DATAW
        {
            public uint dwFileAttributes;
            public _FILETIME ftCreationTime;
            public _FILETIME ftLastAccessTime;
            public _FILETIME ftLastWriteTime;
            public uint nFileSizeHigh;
            public uint nFileSizeLow;
            public uint dwReserved0;
            public uint dwReserved1;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 260)]
            public string cFileName;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)]
            public string cAlternateFileName;
        }
    
        [StructLayout(LayoutKind.Sequential, Pack = 4, Size = 0)]
        private struct _FILETIME
        {
            public uint dwLowDateTime;
            public uint dwHighDateTime;
        }
    
        [ComImport]
        [Guid("0000010B-0000-0000-C000-000000000046")]
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        private interface IPersistFile
        {
            [PreserveSig]
            int GetClassID(out Guid pClassID);
    
            [PreserveSig]
            int IsDirty();
    
            void Load(
                [MarshalAs(UnmanagedType.LPWStr)] string pszFileName,
                uint dwMode);
    
            void Save(
                [MarshalAs(UnmanagedType.LPWStr)] string pszFileName,
                [MarshalAs(UnmanagedType.Bool)] bool fRemember);
    
            void SaveCompleted(
                [MarshalAs(UnmanagedType.LPWStr)] string pszFileName);
    
            void GetCurFile(
                [MarshalAs(UnmanagedType.LPWStr)] out string ppszFileName);
        }
    }
    
    
    תכנות

  • המלצה לקורס
    pcinfogmachP pcinfogmach

    @ארי
    לפני שמישהו ימליץ מה ואיפה, אולי כדאי שתפרט קצת יותר.
    זה תחביב? יש לך מטרה מסויימת? לאן אתה שואף להגיע? כמה זמן אתה מוכן להשקיע בזה? ומהו תחום העניין שלך (עלול להשליך על איזה שפה כדאי לך ללמוד)? אלו שאלות שאתה צריך גם לענות לעצמך.
    ועוד שאלה רבת השלכות: האם אתה שולט באנגלית וכמה?

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

    בהצלחה רבה

    תכנות

  • קוד C# להמרת מספר למספר עברי
    pcinfogmachP pcinfogmach

    קוד C# להמרת מספר למספר עברי - מקווה שיהיה שימושי למישהו.

    using System;
    
    public class ClassHebrewNumbering
    {
        public static string ToHebrewNumber(int number)
        {
            if (number < 1)
            {
                throw new ArgumentOutOfRangeException("המספר צריך להיות מעל 1");
            }
    
            string hebrewNumber = "";
    
            while (number >= 400)
            {
                hebrewNumber += "ת";
                number -= 400;
            }
    
            // Handle numbers 100-390
            if (number >= 300)
            {
                hebrewNumber += "ש";
                number -= 300;
            }
            else if (number >= 200)
            {
                hebrewNumber += "ר";
                number -= 200;
            }
            else if (number >= 100)
            {
                hebrewNumber += "ק";
                number -= 100;
            }
    
            // Handle numbers 10-90
            if (number >= 10)
            {
                int tensIndex = (number / 10) - 1; // Subtract 1 to match array indexing
                hebrewNumber += Tens[tensIndex];
                number -= (tensIndex + 1) * 10; // Add 1 back for indexing
            }
    
            // Handle numbers 1-9
            if (number > 0)
            {
                hebrewNumber += Units[number - 1]; // Subtract 1 to match array indexing
            }
    
            hebrewNumber = hebrewNumber.Replace("יה", "טו");
            hebrewNumber = hebrewNumber.Replace("יו", "טז");
    
            //hebrewNumber.Replace("רעב", "ערב");
            //hebrewNumber.Replace("רעד", "עדר");
            //hebrewNumber.Replace("רע", "ער");
            //hebrewNumber.Replace("רצח", "רחצ");
            //hebrewNumber.Replace("תשמד", "תדשם");
            //hebrewNumber.Replace("שמד", "שדמ");
            //hebrewNumber.Replace("שד", "דש");
    
            return hebrewNumber;
        }
    
        private static readonly string[] Units =
       {
            "א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט"
        };
    
        private static readonly string[] Tens =
        {
            "י", "כ", "ל", "מ", "נ", "ס", "ע", "פ", "צ", "ק"
        };
    }
    
    
    תכנות

  • רשימה מדורגת בוורד
    pcinfogmachP pcinfogmach

    @שואף-לדעת
    הוראות לשימוש בשדה SEQ דרך רצועת הכלים ב-Word:

    • מקם את הסמן במקום שבו אתה רוצה שהמספר הממוספר יופיע.
    • עבור ללשונית "הוספה" (Insert) ברצועת הכלים.
    • לחץ על "חלקים מהירים" (Quick Parts).
    • בחר "שדה" (Field) מהרשימה.
    • בחלון שנפתח, בחר "SEQ" מהרשימה "שמות שדות" (Field names).
    • בתיבת הטקסט "קוד שדה" (Field codes) הוסף את שם הרצף. לדוגמה:
    SEQ דוגמה
    

    לחץ על "אישור" (OK).

    הוספת שדות SEQ נוספים:

    חזור על שלב 1 עבור כל מקום בו אתה רוצה להוסיף את השדה SEQ, והשתמש באותו שם רצף ("דוגמה" הינו שם הרצף שהתמשנו בו במדריך זה אתה יכול גם לבחור שם רצף אחר).

    אם אתה מעונין במשהו קצת יותר מתקדם עיין כאן
    https://www.techrepublic.com/article/10-steps-to-creating-inline-numbering-in-a-word-document/
    הכתבה באנגלית אבל תוכל הלריץ על זה תרגום דפדפן די בקלות

    תוכנה

  • תורת אמת בוורד - עכשיו בvsto
    pcinfogmachP pcinfogmach

    @פלורידה

    2
    3
    תוקן

    1
    בבדיקה

    תודה

    תוכנה

  • תוסף חדש - תורת אמת בוורד
    pcinfogmachP pcinfogmach

    @one1010
    הכנתי גירסה חדשה עם ההצעה שלך
    ושמתי בפוסט המקור
    כמו"כ נוספו עוד כמה שיפורים

    כדי לחפש מקור מדוייק יש להוסיף את המיקום בתוך סוגריים לדוגמא:
    בראשית (כד יא)
    או ברכות (לב ב)

    תוכנה

  • שיתוף להערות - maPraqti תוכנה ליצירת מפת מקומות בבית כנסת
    pcinfogmachP pcinfogmach

    @יהודי-טוב כתב בשיתוף להערות - maPraqti תוכנה ליצירת מפת מקומות בבית כנסת:

    אני חושב שכבר אין הרבה אנשים כאלו.

    אתה טועה. (אני לא מנחש אני אומר לך על בסיס המיילים שאני מקבל מאנשים על התוכנות שלי).
    בפרט שהסיכויים שהתוכנה תהיה בשימוש או על ידי הגבאי במחשב של בית הכנסת או על ידי בחור שהשיג איזשהו מחשב לפני ראש השנה יו"כ.

    בכל אופן גם אתר ובפרט אתר סטטי אפשר להנגיש בלי חיבור לאינטרנט.

    תכנות

  • תוסף חיפוש רגקס בוורד
    pcinfogmachP pcinfogmach

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

    תכנות

  • 💡איך להינצל מחשדות של דפנדר על תוכנות שאתם מפתחים
    pcinfogmachP pcinfogmach

    @מד
    עשיתי את זה ולמחרת חשבון המייקרוסופט שלי נחסם עם הודעה שעשיתי שימוש לא ראוי בחשבון 😧

    תכנות

  • תוסף חיפוש רגקס בוורד
    pcinfogmachP pcinfogmach

    @מד כתב בתוסף חיפוש רגקס בוורד:

    למה אתה לא אורז דרך NSIS או דרך inno ?

    תודה רבה מאוד!
    מקווה שאתפנה לזה בהמשך

    תכנות

  • TextBoxFocusBehavior - לשיפור חוויית המשתמש ב-WPF
    pcinfogmachP pcinfogmach

    @ivrtikshoret
    תודה שעלית את השאלה הזו
    אני מאד אוהב לשתף ולעזור אך תהיתי לעצמי לא פעם אם יש בזה תועלת למישהו
    היה חסר לי confirmation תודה.
    חוץ מזה אני מאוד נבניתי מהפורום כאן הערה פה הערה שם של אנשים טובים על הקודים שלי נתנו לי המון ידע.

    תכנות

  • מדריך: איך לייצר לוקליזציה ב-wpf בצורה פשוטה וקלילה
    pcinfogmachP pcinfogmach

    @OdedDvir
    json הוא פורמט עבודה נוח וגמיש יותר בשבילי, את שאר הנימוקים כבר כתבתי וכתבו אחרים למעלה. כל אחד לפי טעמו כמובן. אני לא יכול להכחיש שיש איזושהי מעלה בפיתרון המובנה אישית זה היה מריטת עצבים עד שנמאס לי והלכתי על כיוון אחר. כשאתה בונה כמה פרוייקטים במקביל הפעולות המכניות הזוטרות האלה שחוזרים על עצמם שוב ושוב מתחילים להציק לך מאוד הם מפריעם לזרימה ולכיף שבתכנות. אז בחרתי בדרך קצת פחות מציקה.
    נקוט האי כללא בידך (בעירבון מוגבל): כל דבר שאפשר לעשות עליו העתק הדבק ולמחזר אותו עבור הפרוייקט הבא שלך שווה זהב. תרגומים של פקדים שהרבה פעמים חוזרים על עצמם שווים זהב ב-json.

    תכנות

  • WPF: ממשק מודרני עבור טאבים בתוך שורת הכותרת (TabControl in TitleBar)
    pcinfogmachP pcinfogmach

    הייתי צריך ממשק מודרני עם טאבים בתוך שורת הכותרת של החלון (בדומה למה שיש בכל דפדפן אינטרנט קלאסי)

    לא מצאתי משהו לרוחי אז יצרתי משהו לעצמי
    מצו"ב הלינק לגיט למקרה שעוד מישהו מעוניין בכזה דבר
    https://github.com/pcinfogmach/ChromeTabs

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

    37ddc135-96c6-4933-a3da-4dd0fc07ed93-image.png

    תכנות

  • איך להשתמש ב-pdf.js לפתיחת קבצי pdf מהמחשב ב-C#
    pcinfogmachP pcinfogmach

    בניתי תוכנה שמדגימה את הימוש בספרייה זו ב-C# למי שמעוניין להלן הקישור לגיט האב
    https://github.com/pcinfogmach/PdfJs2
    התוכנה רק מדגימה שימוש בסיס יש עוד המון אפשרויות להתממשקות דרך js

    תכנות

  • איך לוודא שסגירת משאבים תתבצע גם בעת עצירת ניפוי באגים ב-Visual Studio?
    pcinfogmachP pcinfogmach

    @yossiz
    הסיבה לסגור את התוכנה מה-debugger הוא במקרה שיש באג שתוקע את ה-UI

    תכנות

  • הסרת שורות ריקות מ-string ב-C#
    pcinfogmachP pcinfogmach

    מצו"ב קוד להסרת שורות ריקות ממחרוזת טקסט ב-C#
    אשמח לקבל משוב

    public static string RemoveEmptyLines(this string input)
    {
        var lines = input.Split(new[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries);
        var nonEmptyLines = lines.Where(line => !string.IsNullOrWhiteSpace(line));
        return string.Join("\n", nonEmptyLines);
    }
    
    תכנות

  • FolderPicker מתקדם ב-C# עבור .Net FrameWork
    pcinfogmachP pcinfogmach

    @dovid
    זה עובד, אך לדעתי הוא פחות מתקדם מהאופציה שהצעתי. זה ממש מעצבן למשתמש להשתמש ב- FolderBrowserDialog. האינטרנט מלא בפוסטים של אנשים שמחפשים תחליף לדיאלוג הזה, ולכן כשמצאתי תחליף אחר, החלטתי לשתף ולהמליץ עליו למי שגם כן מחפש חוויית משתמש יפה יותר.

    מצו"ב תמונות לשם המחשה

    א. FolderBrowserDilogue

    0509f7c9-38e7-4810-854f-182cd68cb9ed-image.png

    ב. CommonOpenFileDialog של WindowsAPICodePack

    7a9093de-8d8a-4b1f-b40b-5c64d7d64fe9-image.png

    תכנות

  • איך ליצר קיצור מקשים בוורד עבור קודים ב-C# VSTO
    pcinfogmachP pcinfogmach

    יש כמה דרכים לעשות זאת כאן אכתוב את הבסיס איך לעשות זאת על ידי הוספת קוד vba('רך אחרת תוכלו לראות פה)

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

    1. יצירת קלאס ב-C#: בקוד C# יש ליצור class ולהוסיף לו את התג ComVisible(true) כדי לאפשר ל-Microsoft Office לגשת אליו דרך COM. לשם הדוגמה בתוך הקלאס נגדיר פונקציה פשוטה בשם GetNumber שמחזירה את המספר 42.
     [ComVisible(true)]
     public class MyManagedFunctions
     {
         public int GetNumber()
         {
             return 42;
         }
     }
    
    1. קוד עבור ה-startup של התוסף: בקוד ה-C# הוא נכתב תחת אירוע ה-startup של התוסף. בעת ה-startup, הקוד מפעיל את הפונקציה RegisterCallback עם אינסטנס של ה-class שנוצר בצעד הקודם. בנוסף, הקוד מצריך תגובה לאירוע של פתיחת מסמך חדש (DocumentOpen). כאשר מסמך נפתח, הקוד מפעיל פונקציה נוספת (Application_DocumentOpen) בו אפשר לקרוא לקודים של המאקרו דלהלן שאחראיים על חיבור או הסרת הקיצורי מקשים לפונקציה.
     private void ThisAddIn_Startup(object sender, System.EventArgs e)
     {
         this.Application.Run("RegisterCallback", new MyManagedFunctions());
         
         this.Application.DocumentOpen += Application_DocumentOpen; 
     }
    
     private void Application_DocumentOpen(Microsoft.Office.Interop.Word.Document Doc)
     {
         //this.Application.Run("AssignShortcut");  // Run the VBA macro to assign the shortcut
         //this.Application.Run("RemoveShortcut");  // Run the VBA macro to remove the shortcut
         this.Application.DocumentOpen -= Application_DocumentOpen;
     }
    
    1. קוד בשביל ה-מאקרו VBA: הקוד ב-VBA מגיב לפעולות של המשתמש בתוכניות כמו Word. הוא כולל כמה פונקציות:
      RegisterCallback שמקבלת אובייקט ומגדירה אותו למשתנה managedObject,
      ו-GetNumberFromVSTO שמפעילה את הפונקציה GetNumber מה-C# ומציגה את התוצאה ב-MessageBox.
      יש גם פונקציות להקצאת קיצורי מקלדת (AssignShortcut ו-RemoveShortcut) ופונקציה (RemoveAllShortcuts) להסרת כל הקיצורי מקלדת.
      ו- ShowAllShortcutKeys - למקרה ששחכתם מה עשיתם בעבר
    Dim managedObject As Object
    
    Public Sub RegisterCallback(callback As Object)
        Set managedObject = callback
    End Sub
    
    Public Function GetNumberFromVSTO() As Integer
        GetNumberFromVSTO = managedObject.GetNumber()
        MsgBox "The number is " & GetNumberFromVSTO
    End Function
    
    Sub CallVstoFunction()
    Call GetNumberFromVSTO
    End Sub
    
    Public Sub AssignShortcut()
        ' Assign Ctrl+Shift+Q to CallVstoFunction
        CustomizationContext = NormalTemplate
        KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyControl, wdKeyShift, wdKeyQ), _
                        KeyCategory:=wdKeyCategoryMacro, _
                        Command:="CallVstoFunction"
    End Sub
    
    Public Sub RemoveShortcut()
        ' Remove the shortcut key assignment for CallVstoFunction
        Dim keyBinding As keyBinding
        For Each keyBinding In KeyBindings
            If keyBinding.Command = "Normal.Module1.CallVstoFunction" Then
                keyBinding.Clear
            End If
        Next keyBinding
    End Sub
    
    Public Sub RemoveAllShortcuts()
        ' Remove the shortcut key assignment
         CustomizationContext = NormalTemplate
        KeyBindings.ClearAll
    End Sub
    
    Sub ShowAllShortcutKeys()
        Dim keyBinding As keyBinding
        Dim msg As String
        
        msg = "Currently assigned shortcut keys:" & vbCrLf
        
        For Each keyBinding In Application.KeyBindings
            msg = msg & "Command: " & keyBinding.Command & ", Key: " & keyBinding.KeyString & vbCrLf
        Next keyBinding
        
        MsgBox msg
    End Sub
    

    לפעמים צריך להתחיל את וורד מחדש כדי שהקודים 'ייתפסו'

    תכנות

  • איך להמיר צבע למספר int בודד על ידי RGB ב-C#.
    pcinfogmachP pcinfogmach

    מצאתי קוד חמוד כיצד להמיר צבע על ידי RGB שלו ל- int בודד אני כותב אותו פה למקרה שמישהו יצטרך ג"כ יום אחד
    הצורך שלי היה כדי לעשת colorpicker פשוט בשביל תוסף לוורד. בוורד צבע costume מוגדר באופן זה - על ידי int בודד.

    Color c = Colors.Blue;
    var wdc = (Microsoft.Office.Interop.Word.WdColor)(c.R + 0x100 * c.G + 0x10000 * c.B);
    

    מקור
    https://stackoverflow.com/a/13075575

    תכנות
  • 1 / 1
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום