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

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

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

קומפיונט

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

פוסטים

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

  • מה ההבדל בין שני סוגי הפרויקטים הללו בויז'ואל סטודיו?
    קומפיונטק קומפיונט

    @dovid כתב במה ההבדל בין שני סוגי הפרויקטים הללו בויז'ואל סטודיו?:

    אז אני לא יודע בדיוק מה הייתרון לפתח ב.net core.

    אפשר לשאול הפוך: מה היתרון לפתח ב net framework?

    תכנות

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

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

    בכל אופן, כשאני מעתיק את הקובץ exe לבדו מהפרויקט שבתמונה לעיל זה לא עובד

    אתה צריך גם את ה dll עם אותו שם, ככה זה עובד ב NET., (הקוד שלך נמצא רק ב dll ולא ב exe) אם אתה רוצה לפרסם כקובץ אחד, זה אפשרי ברוב המקרים (אם אין תלות לא מנוהלת) על ידי המאפיין PublishSingleFile, בשורת הפקודה זה משהו כזה dotnet publish .. /p:PublishSingleFile=true ויש גם אפשרות בממשק של ויז'ואל סטודיו.

    תכנות

  • #C | הטמעת ממשקי COM במצב NativeAOT‏
    קומפיונטק קומפיונט

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

    א. הוספתי מחלקת עזר שתייצר ממשקי COM כדלהלן:

    public static partial class ComActivator
    {
        [LibraryImport("ole32")]
        private static partial int CoCreateInstance(
            ref Guid clsid,
            nint pUnkOuter,
            int dwClsContext,
            ref Guid iid,
            [MarshalAs(UnmanagedType.Interface)] out object pObj
        );
    
        public static TInterface ActivateClass<TInterface>(Guid clsid, Guid iid)
        {
            Debug.Assert(iid == typeof(TInterface).GUID);
    
            var hResult = CoCreateInstance(ref clsid, default, 1, ref iid, out var obj);
    
            if (hResult < 0)
            {
                Marshal.ThrowExceptionForHR(hResult);
            }
    
            return (TInterface)obj;
        }
    }
    

    ב. למחלקה ITaskbarList3 הוספתי את התכונה GeneratedComInterface

    ג. ככה אני מקבל את האובייקט:

    var clsid = Guid.Parse("56FDF344-FD6D-11D0-958A-006097C9A090"); // TaskBarList
    var iid = Guid.Parse("EA1AFB91-9E28-4B86-90E9-9E9F8A5EEFAF"); // ITaskBarList3
    
    var taskbar = ComActivator.ActivateClass<ITaskbarList3>(clsid, iid);
    

    קישור שעזר לי: https://learn.microsoft.com/en-us/dotnet/standard/native-interop/tutorial-comwrappers

    נ.ב. מצאתי עוד פתרון עם ComWrappers אבל הפתרון הראשון עובד מצויין אז השתמשתי בו.

    תכנות

  • קוד באט לסגירת תוכנית
    קומפיונטק קומפיונט

    @קו-כשר-מערכות-טל כתב בקוד באט לסגירת תוכנית:

    אגב לפי מה שידוע לי כן אפשר לגשת למנהל המשימות על ידי הצרוף Ctrl+Alt+Delete

    נכון, אבל התוכנה סוגרת את זה ישר אחרי שזה נפתח, ואגב אפשר לפתוח גם עם Crtl+Shift+Esc.

    @אוריי כתב בקוד באט לסגירת תוכנית:

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

    אם אתה רוצה גישה למנהל המשימות בחדר מחשבים, אתה יכול להוריד את systeminformer.

    תוכנה

  • #C | הטמעת ממשקי COM במצב NativeAOT‏
    קומפיונטק קומפיונט

    @חגי כתב ב#C | הטמעת ממשקי COM במצב NativeAOT‏:

    בסוף אחד הקישורים הם מציינים בהקשר הזה שהם מתחילים להוסיף תמיכה לcode generator עבור רכיבי COM, ניסית לבדוק אם זה פותר את השגיאה?
    https://learn.microsoft.com/en-us/dotnet/core/whats-new/dotnet-8#source-generated-com-interop

    ניסיתי גם את זה ונשאר עם אותה שגיאה (זה מגנרט קוד, אבל ב-native-aot זה זורק אותו חריג), אולי לא ממשתי את זה נכון (יש דרך אחרת לקבל מופע של ממשק COM?)

    static partial class Taskbar
    {
        [GeneratedComInterface]
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        [Guid("EA1AFB91-9E28-4B86-90E9-9E9F8A5EEFAF")]
        public partial interface ITaskbarList3
        {
            // ITaskbarList
            [PreserveSig] void HrInit();
            [PreserveSig] void AddTab(IntPtr hwnd);
            [PreserveSig] void DeleteTab(IntPtr hwnd);
            [PreserveSig] void ActivateTab(IntPtr hwnd);
            [PreserveSig] void SetActiveAlt(IntPtr hwnd);
    
            // ITaskbarList2
            [PreserveSig] void MarkFullscreenWindow(IntPtr hwnd, [MarshalAs(UnmanagedType.Bool)] bool fFullscreen);
    
            // ITaskbarList3
            [PreserveSig] void SetProgressValue(IntPtr hwnd, ulong ullCompleted, ulong ullTotal);
            [PreserveSig] void SetProgressState(IntPtr hwnd, int state);
        }
    
        [ComImport]
        [GeneratedComClass]
        [ClassInterface(ClassInterfaceType.None)]
        [Guid("56FDF344-FD6D-11d0-958A-006097C9A090")]
        public partial class TaskBarCommunication { }
    }
    
    תכנות

  • #C | הטמעת ממשקי COM במצב NativeAOT‏
    קומפיונטק קומפיונט

    @dovid לא שמתי לב שזה כתוב שם, אבל אני יודע שאפשר ליישם ממשקי COM ב native-aot, בדקתי את קוד המקור של avalonia שתומכת ב native-aot באופן מלא, וראיתי שהם פיתחו תת פרויקט (MicroCom) שמחולל קוד לממשקי COM מקבצי idl. לא התעמקתי בזה כ"כ כי אני לא מכיר קבצי idl, בתכלס אני שואל מה הדרך הכי קלה ליישם ממשקי COM עם או בלי מיקרוסופט?

    תכנות

  • #C | הטמעת ממשקי COM במצב NativeAOT‏
    קומפיונטק קומפיונט

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

    תכנות

  • #C | הטמעת ממשקי COM במצב NativeAOT‏
    קומפיונטק קומפיונט

    ב - 8 NET. שהושק לפני כמה ימים, במיקרוסופט פיתחו בין היתר את התכונה Native-AOT, למי שלא מכיר זה מאפשר לקמפל קוד #C לקוד מכונה מקורי, ללא קוד IL ובלי שימוש במנגנון JIT. יש בזה הרבה מעלות (אין צורך בזמן ריצה מותקן, זמן טעינה מהיר, ועוד) אבל יש גם קצת מגבלות, כרגיל.
    אחת הבעיות היא הטמעת ממשקי COM בקוד, ראיתי שיש הרבה דיבור על זה ברשת, אבל בתכל'ס אני לא מצליח ליישם את זה.

    אני לוקח לדוגמא את הקוד הבא:

    using System.Runtime.InteropServices;
    using static Taskbar;
    
    try
    {
        var taskbar = (ITaskbarList3)new TaskBarCommunication();
    
        Console.WriteLine("COM interface created successfully");
    }
    catch (Exception exception)
    {
        Console.WriteLine($"Error at creating COM interface: {exception}");
    }
    
    Console.ReadLine();
    
    static class Taskbar
    {
        [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
        [Guid("EA1AFB91-9E28-4B86-90E9-9E9F8A5EEFAF")]
        public interface ITaskbarList3
        {
            // ITaskbarList
            [PreserveSig] void HrInit();
            [PreserveSig] void AddTab(IntPtr hwnd);
            [PreserveSig] void DeleteTab(IntPtr hwnd);
            [PreserveSig] void ActivateTab(IntPtr hwnd);
            [PreserveSig] void SetActiveAlt(IntPtr hwnd);
    
            // ITaskbarList2
            [PreserveSig] void MarkFullscreenWindow(IntPtr hwnd, [MarshalAs(UnmanagedType.Bool)] bool fFullscreen);
    
            // ITaskbarList3
            [PreserveSig] void SetProgressValue(IntPtr hwnd, ulong ullCompleted, ulong ullTotal);
            [PreserveSig] void SetProgressState(IntPtr hwnd, int state);
        }
    
        [ComImport]
        [ClassInterface(ClassInterfaceType.None)]
        [Guid("56FDF344-FD6D-11d0-958A-006097C9A090")]
        public class TaskBarCommunication { }
    }
    

    קובץ הפרויקט:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net8.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <PublishAot>true</PublishAot>
        <BuiltInComInteropSupport>true</BuiltInComInteropSupport>
      </PropertyGroup>
    </Project>
    

    כשאני מריץ עם: dotnet run זה רץ בלי בעיות, אבל כשאני מקמפל עם dotnet publish זה זורק את החריג הבא:

    System.InvalidProgramException: Common Language Runtime detected an invalid program. The body of method 'Void TaskBarCommunication..ctor()' is invalid.
       at Internal.Runtime.TypeLoaderExceptionHelper.CreateInvalidProgramException(ExceptionStringID, String) + 0x40
       at Internal.Runtime.CompilerHelpers.ThrowHelpers.ThrowInvalidProgramExceptionWithArgument(ExceptionStringID, String) + 0x9
       at ComWithNativeAotSample.Taskbar.TaskBarCommunication..ctor() + 0x15
       at Program.<Main>$(String[] args) + 0x34
    

    משהו יכול להסביר לי איך אני אמור לשנות את הקוד כדי שזה יעבוד עם native-aot?

    תכנות

  • קוד נגדי קצר
    קומפיונטק קומפיונט

    @WWW במקרה שלך זה בלתי אפשרי לייצר מספר בן 10 ספרות ממספר בן 5 ספרות.

    הפתרון הוא שהקוד הנגדי יהיה באורך של 8 ספרות (זהה לאורך של מספר פלא' חוץ מהקידומת הקבועה 05, כמו שכתבו פה) ואז להפוך את המספר פלאפון איכשהו (xor לדוגמא) לקוד הנגדי, ובאותה דרך לשחזר למספר הפלאפון שהמשתמש הזין.

    תכנות

  • אנגולר - תכנון סרוויס
    קומפיונטק קומפיונט

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

    תכנות

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

    קרה לי לאחרונה כמה פעמים שאני מנסה להוריד מג'מבו מייל ואני מקבל את ההודעה הבאה:
    2738bdbb-5a1a-45a5-94aa-1ed232632e52-image.png
    יש אפשרות לעקוף את זה, או שתם עידן הג'מבו מייל לאינטרנט מסונן? (למי שאין מנוי)

    אינטרנט

  • המלצה למנהל משימות מתקדם
    קומפיונטק קומפיונט

    Process Hacker

    תוכנה

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

    @nigun כתב בכך תריצו מודל שפה חזק על המחשב הביתי שלכם:

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

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

    תכנות

  • הגנה מפישינג והאקינג
    קומפיונטק קומפיונט

    @משתמש-תמים כתב בהגנה מפישינג והאקינג:

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

    מדויק, זה הסיבה שלא הפעלתי את זה.

    אינטרנט

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

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

    תכנות

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

    אני רק מוסיף שמה ש @אף-אחד-3 כתב זה מגביר את העוצמת שמע בעוצמה קבועה, כדי להגביר בצורה אוטומטית עד שיגיע לסף של 0db צריך ל'נרמל' את השמע, יש לזה פונקציה מיוחדת שנקראת normalize.

    תכנות

  • פלייבקים חדשים באורגני yamaha
    קומפיונטק קומפיונט

    @dovid כתב בפלייבקים חדשים באורגני yamaha:

    האם נכון לומר שאין במפרט אפשרות לדעת אם זה תומך בדגימות?

    תמיכה בדגימות זה דבר בסיסי שאמור להיות כתוב במפרט אבל השאלה איך זה כתוב, לדוג' ב-PST-SX900 זה מצוין כ- internal memory, ובחברה אחרת זה מצוין כ- Wave Expansion Memory for Sampling/Sample Import.

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

    גומלין - כללי

  • פלייבקים חדשים באורגני yamaha
    קומפיונטק קומפיונט

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

    לגבי איזה אורגן תומך באיזה מקצבים זה כבר מסובך, כי זה תלוי איזה מקצב, ואם יש בו שימוש בדגימות (קבצי סאונד חיצונים שימבאים לאורגן) אז צריך אורגן שתומך בדגימות. מה שהיום הכי טוב זה PSR-SX900 אבל הוא יקר (באזור 8,000 ליד שניה), יש את ה PSR-XS700 שהוא קצת פחות יקר, אפשרות יותר זולה זה PSR-S970 או S975, שהוא קצת יותר ישן, ואפשר להשיג יחסית בזול (6,000 בערך) ואמור להתאים לרוב הדברים.

    גומלין - כללי

  • הגדרת חלון כעליון
    קומפיונטק קומפיונט

    @אביי אני לא מכיר את התוכנה של קול הלשון, אבל אם גם היא מוגדרת כ-top-most אז אולי שינוי בחזרה של החלון ל-no-top-most תעזור, כדי לבדוק את זה תריץ את WinSpy (ואגב, אני לא נכנס לאיך תראה את החלון של WinSpy מעל לקול הלשון, בזה תצטרך להתמודד לבד...) תבחר את החלון הראשי של קול הלשון ובחץ הקטן שמופיע בשורה של ה-Handle תוריד את ה-V מה-Always On Top (אם הוא מסומן)

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

    תכנות

  • עיצוב תוכנה כמו בווינדוס 11
    קומפיונטק קומפיונט

    @מוטי-מן כשמפתחים ב-WinUI אז זאת הערכת נושא הדיפולטיבית.

    אם אתה רוצה ב-WPF אז יש את הפרויקט WPF-UI שחוץ מערכת נושא של Fluent נותן גם עוד הרבה פונקציות, לדוג' תפריט מגש מובנה (tray menu) וכרטיסיות צד מעוצבות ועוד...

    תכנות
  • 1
  • 2
  • 6
  • 7
  • 8
  • 9
  • 10
  • 14
  • 15
  • 8 / 15
  • התחברות

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

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