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

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

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

קומפיונט

@קומפיונט
אודות
פוסטים
280
נושאים
22
קבוצות
0
עוקבים
2
עוקב אחרי
6

פוסטים

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

  • שיתוף | קוד #C לזיהוי גרסת Videoff המותקנת במחשב
    קומפיונטק קומפיונט

    הקוד הבא מחזיר את גרסת הדרייבר של videoff המותקנת במחשב.

    public static class VideoffDetector
    {
        private const string VideoffPortName = "\\msdtghPort";
    
        public static bool TryGetVersion(out int? version)
        {
            return TryGetVersionByCommunicationPort(out version);
        }
    
        private static bool TryGetVersionByCommunicationPort(out int? version)
        {
            version = null;
    
            var hResult = FltLib.FilterConnectCommunicationPort(VideoffPortName, 0, 0, 0, 0, out var hPort);
    
            if (hResult != 0)
            {
                return false;
            }
    
            try
            {
                var input = BitConverter.GetBytes(1);
                var output = new byte[4];
    
                hResult = FltLib.FilterSendMessage(hPort, input, output);
    
                if (hResult != 0)
                {
                    return false;
                }
    
                version = BitConverter.ToInt32(output);
    
                return true;
            }
            finally
            {
                Kernel32.CloseHandle(hPort);
            }
        }
    }
    
    internal static partial class FltLib
    {
        private const string LibraryName = "FltLib";
    
        [LibraryImport(LibraryName, StringMarshalling = StringMarshalling.Utf16)]
        public static partial int FilterConnectCommunicationPort(string lpPortName, int dwOptions, nint lpContext, short wSizeOfContext, nint lpSecurityAttributes, out nint hPort);
    
        [LibraryImport(LibraryName, EntryPoint = "FilterSendMessage")]
        public static partial int FilterSendMessage(nint hPort, ReadOnlySpan<byte> lpInBuffer, int dwInBufferSize, ReadOnlySpan<byte> lpOutBuffer, int dwOutBufferSize, out uint lpBytesReturned);
    
        public static int FilterSendMessage(nint hPort, ReadOnlySpan<byte> lpInBuffer, ReadOnlySpan<byte> lpOutBuffer)
        {
            return FilterSendMessage(hPort, lpInBuffer, lpInBuffer.Length, lpOutBuffer, lpOutBuffer.Length, out _);
        }
    }
    
    internal static partial class Kernel32
    {
        private const string LibraryName = "Kernel32";
    
        [LibraryImport(LibraryName)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static partial bool CloseHandle(nint hObject);
    }
    

  • תוכנה להקפאת מחשב
    קומפיונטק קומפיונט

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


  • הפעלת אימולטור אנדרואיד על וינדוס
    קומפיונטק קומפיונט

    https://www.ldplayer.net/blog/virtualization-technology-enabled-in-bios-but-not-detected-by-ldplayer.html


  • כיצד להגדיר לתוכנה לפעול תמיד בקנ"מ של 100%?
    קומפיונטק קומפיונט

    @אביי אני רק זורק רעיון, לשים את כל התצוגה ב Viewbox, אולי יעזור לך.


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

    @laswater זה קרה לי כמה פעמים ובדרך כלל שחזור מערכת עזר, ניסית?


  • איך להשיג את האייקון של כל סוגי הקבצים בC#
    קומפיונטק קומפיונט

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

    זה הקוד:

    public static class Shell
    {
        private static readonly Guid _s_imageFactoryShellId = new("BCC18B79-BA16-442F-80C4-8A59C30C463B");
    
        public static byte[] GetImage(string path, ImageSize size, ShellItemGetImageOptions options)
        {
            if (OperatingSystem.IsWindows())
            {
                if (SHCreateItemFromParsingName(path, 0, _s_imageFactoryShellId, out var imageFactory) != 0)
                {
                    throw new Win32Exception(Marshal.GetLastWin32Error());
                }
    
                if (imageFactory.GetImage(size, (int)options, out var hBitmap) != 0)
                {
                    throw new Win32Exception(Marshal.GetLastWin32Error());
                }
    
                try
                {
                    using var stream = new MemoryStream();
    
                    var bitmap = Image.FromHbitmap(hBitmap);
    
                    bitmap.Save(stream, ImageFormat.Jpeg);
    
                    return stream.ToArray();
                }
                finally
                {
                    DeleteObject(hBitmap);
                }
            }
    
            throw new PlatformNotSupportedException();
        }
    }
    
    public enum ShellItemGetImageOptions
    {
        ResizeToFit = 0,
        BiggerSizeOk = 1,
        MemoryOnly = 2,
        IconOnly = 4,
        ThumbnailOnly = 8,
        InCacheOnly = 0x10,
        CropToSquare = 0x20,
        WideThumbnails = 0x40,
        IconBackground = 0x80,
        ScaleUp = 0x100
    }
    
    public readonly struct ImageSize(int width, int height)
    {
        public int Width { get; } = width;
    
        public int Height { get; } = height;
    }
    
    internal static partial class Unmanaged
    {
        [GeneratedComInterface]
        [Guid("BCC18B79-BA16-442F-80C4-8A59C30C463B")]
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        public partial interface IShellItemImageFactory
        {
            [PreserveSig]
            int GetImage(ImageSize size, int flags, out nint hBitmap);
        }
    
        [LibraryImport("Shell32", SetLastError = true, StringMarshalling = StringMarshalling.Utf16)]
        public static partial int SHCreateItemFromParsingName(string pszPath, nint pbc, Guid riid, out IShellItemImageFactory ppv);
    
        [LibraryImport("Gdi32", SetLastError = true)]
        public static partial int DeleteObject(nint hObject);
    }
    

    נ.ב.
    זה הקוד הבסיסי, אפשר לשנות ולהתאים אותו למה שאתה צריך.
    לא בדקתי אם זה עובד גם על מערכות windows יותר ישנות.
    הקוד תואם ל NativeAOT (אם תשתמש בו בעתיד)
    לא יודע אם הקוד הזה יעבוד ב net-framework.


  • #C | עזרה באיתור או יצירת אופרטור ריאקטיבי
    קומפיונטק קומפיונט

    @dovid נראה שזה לא פשוט לבנות אופרטורים ב-Rx, זה לדוגמא הקוד של Throttle, אבל כבר לא צריך כי Sample עושה את מה שחיפשתי.


  • #C | עזרה באיתור או יצירת אופרטור ריאקטיבי
    קומפיונטק קומפיונט

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


  • #C | עזרה באיתור או יצירת אופרטור ריאקטיבי
    קומפיונטק קומפיונט

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


  • #C | עזרה באיתור או יצירת אופרטור ריאקטיבי
    קומפיונטק קומפיונט

    @dovid עכשיו אני רואה ש - debounceTime הוא המקביל של Throttle ב RxJS, אז זה לא עוזר לי.
    גם לפי התרשים כאן זה לא מה שאני מחפש.


  • #C | עזרה באיתור או יצירת אופרטור ריאקטיבי
    קומפיונטק קומפיונט

    יש לי תוכנה עם נגן וידאו מוטמע, יש למטה את מחוון המיקום שהמשתמש יכול לגרור אותו ולחפש מקומות אחרים בקובץ,
    נכון לעכשיו בכל אירוע של גרירה מתבצעת פעולת חיפוש בקובץ, ובקבצים באיכות גבוהה זה לא זורם חלק,
    אני מחפש את האופרטור (ריאקטיבי) שבכל פעולה של גרירה הוא יסנן את הערכים הרבים ויחזיר רק ערך אחד בכל פרק של זמן שניתן כקלט, זה דומה ל - Throttle אבל Throttle מחכה שכל שלא יהיה תפוקה בכלל לזמן מסויים ורק אח"כ הוא נותן את הערך האחרון, אני מחפש משהו דומה ל Throttle שיסנן כמות של ערכים אבל כן יחזיר לי פעם בשניה (לדוג') את הערך האחרון.

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


  • ProgressBar בWPF תוך כדי פעולת thread
    קומפיונטק קומפיונט

    @pcinfogmach כתב בProgressBar בWPF תוך כדי פעולת thread:

    private async void search(string[] files)
    {
        progressBar.Maximum = files.Length;
        List<System.Threading.Tasks.Task> searchTasks = new List<System.Threading.Tasks.Task>();
        foreach (string file in files)
        {
            searchTasks.Add(Task.Run(() =>
            {
                this.Dispatcher.Invoke(() =>
                {
                    progressBar.Value = progressBar.Value + 1;
                    File.ReadAllLines(file);
                });
            }));
        }
        await System.Threading.Tasks.Task.WhenAll(searchTasks);
        progressBar.Value = 0;
    }
    

    למה File.ReadAllLines(file) נמצא בתוך הקריאה ל Dispatcher.Invoke ? תנסה להוציא אותו מחוץ ל Dispatcher, הקריאה אמורה להכיל קוד שמשנה את התצוגה בלבד. הגיוני שהתרד של התצוגה נתקע כי את מריץ עליו עוד לוגיקה שלא קשורה ל UI שיתכן שגוזלת זמן, ובגלל שה UI לא מגיב אתה לא רואה את ההתקדמות. (חוץ מזה שצריך לאפס את progressBar.Value לאפס, מה ש @dovid כתב לך)


  • C# webview2 navigatetostring- טעינת טקסט בפקד
    קומפיונטק קומפיונט

    @dovid כתב בC# webview2 navigatetostring- טעינת טקסט בפקד:

    תקרא לה מייד אחרי הInitializeComponent כדי שזה "יספיק" להיטען,
    או שתוסיף לפניה await (ותוסיף למתודה async).

    או לחילופין תקרא לה ככה: ()EnsureCoreWebView2Async().Wait, זה יעצור את הטרד הנוכחי עד שהפונקציה תסתיים.

    (מומלץ מאוד להשתמש ב async / await)


  • wpf treeview עם scrollBar יותר יפה
    קומפיונטק קומפיונט

    @pcinfogmach כתב בwpf treeview עם scrollBar יותר יפה:

    לא מצאתי משהו שמטפל בscrollbar מישהו מכיר?

    אני רואה לדוג' את הריפו הזה https://github.com/benruehl/adonis-ui נראה בצילום מסך שיש לו scrollbar עם עיצוב דומה למה שאתה מחפש, אני לא התנסיתי אישית וגם אני רואה שהריפו לא פעיל כמה שנים, אבל אולי זה יכול לעזור לך.

    ובהמשך למה ש @dovid כתב, באמת לא כדאי לעבוד על כל פקד, אבל אם זה משהו שמפריע לך רק ב scrollbar אז אולי עדיף לקחת איזה ריפו שמכיל עיצוב שאתה אוהב ולעשות copy-paste ולשלב לתוך הפרויקט שלך.


  • mvvm בc# wpf
    קומפיונטק קומפיונט

    אני לא יודע אם אני מכוון בדיוק להגדרה, אבל MVVM זה אוסף של כללים ושיטות לפיתוח תוכנה עם ממשק משתמש, זה מתחלק לשלוש חלקים: 1) Model - זה החלק שמחזיק את הנתונים והלוגיקה, 2) View - זה התצוגה, 3) ViewModel זה החלק שמתווך בין ה - View ל - Model, מה שאני מרוויח פה זה שאין קשר הדוק בין ה - View ל - Model, אלא הוא נעשה על ידי מתווך שלישי (ViewModel) שנותן דרך מאוד ברורה איך לעשות את זה (Bindings ו - Commands), המטרה העיקרית של MVVM זה להפריד את הלוגיקה של התוכנה מה UI, אבל יש לו עוד יתרונות, ביניהם: עבודה נוחה עם הזרקת תלות (DependencyInjection), אפשר לעשות טסטים יותר בקלות (כי לא צריך להפעיל את ה - View), ועוד..


  • יצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו
    קומפיונטק קומפיונט

    @מוטי-מן כתב ביצירת קובץ exe יחיד לאחר הקימפול בויזו'אל סטודיו:

    איך אני עושה את זה? לא מצאתי דבר כזה בממשק הגרפי

    למקרה שעדין לא הצלחת, תתחיל מה ש @dovid כתב, ואח"כ:
    1.png 2.png 3.png 5.png 6.png 7.png


  • שאלה בwpf האם יש דרך להסיר את הצל שסביב האובייקט window
    קומפיונטק קומפיונט

    חלון קלאסי מקבל את העיטורים והלחצנים (של ה'סגור', 'מזער' וכו') ממערכת ההפעלה, זה משתנה בין מערכות הפעלה וזה כולל גם את הצל שמסביב, אם אתה רוצה חלון ללא עיטורים תגדיר את WindowStyle ל - None, בכזה מקרה תקבל מלבן לבן בלי שם דברים מסביב.


  • עזרה בקוד C# wpf
    קומפיונטק קומפיונט

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 13
  • 14
  • 6 / 14
  • התחברות

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

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