אנטי וירוס חושד בתוכנה כוירוס - עמוד 4 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון
  • מי אנחנו?

    שלום אורח/ת!

     
    שים לב - על מנת להשתתף בקהילה שלנו, להגיב ולפתוח דיונים חדשים, עליך להצטרף כחבר רשום.

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

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

אנטי וירוס חושד בתוכנה כוירוס


eido300

Recommended Posts

ציטוט של eido300

השורה:


יצאלאקסלToolStripMenuItem.Enabled = System.Reflection.TypeInfo.GetTypeFromProgID("Excel.application") != null ? true : false;

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

יש לך אקסל?

 

ציטוט של eido300

עוד משהו שמבאס זה הגודל של החלצנים taskBar אין דרך להגדיל אותם? קושי רואים אותם...

תנסה אייקון גדול יותר.

קישור ישיר להודעה
שתף באתרים אחרים
  • תגובות 77
  • נפתח בתאריך
  • תגובה אחרונה

משתתפים בולטים בדיון

משתתפים בולטים בדיון

תגובות פופולריות

מערכת ההפעלה מעבירה את הpath של הקובץ (או כמה קבצים) לתוכנה שלך כארגומנט, אז הדרך הפשוטה ביותר היא לפרסר את System.Environment.GetCommandLineArgs. לדוג' אם אתה מפעיל את התוכנה על הקובץ file.txt בספריי

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

אתה לא רוצה לדעת... חיטטתי בקוד המקור של WPF כדאי בהחלט. מת על WPF. אבל UWP זה די סוס מת.   ממש לא על רגל אחת... אציין מספר הבדלים: הlayout של WPF גמיש הרבה יותר משל WINFOR

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

System.IO.FileNotFoundException: לא היתה אפשרות לטעון קובץ או הרכבה 'Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null' או אחת מהתלויות שלו. The system cannot find the file specified.
שם קובץ: 'Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'
   ב-  timeWork.form1.form1_Load_1(Object sender, EventArgs e)
   ב-  System.Windows.Forms.Form.OnLoad(EventArgs e)
   ב-  System.Windows.Forms.Form.OnCreateControl()
   ב-  System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   ב-  System.Windows.Forms.Control.CreateControl()
   ב-  System.Windows.Forms.Control.WmShowWindow(Message& m)
   ב-  System.Windows.Forms.Control.WndProc(Message& m)
   ב-  System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   ב-  System.Windows.Forms.Form.WmShowWindow(Message& m)
   ב-  System.Windows.Forms.Form.WndProc(Message& m)
   ב-  System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   ב-  System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   ב-  System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
 

System.IO.FileNotFoundException: לא היתה אפשרות לטעון קובץ או הרכבה 'Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null' או אחת מהתלויות שלו. The system cannot find the file specified.
שם קובץ: 'Microsoft.WindowsAPICodePack.Shell, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null'
   ב-  timeWork.form1.form1_Load_1(Object sender, EventArgs e)
   ב-  System.Windows.Forms.Form.OnLoad(EventArgs e)
   ב-  System.Windows.Forms.Form.OnCreateControl()
   ב-  System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   ב-  System.Windows.Forms.Control.CreateControl()
   ב-  System.Windows.Forms.Control.WmShowWindow(Message& m)
   ב-  System.Windows.Forms.Control.WndProc(Message& m)
   ב-  System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   ב-  System.Windows.Forms.Form.WmShowWindow(Message& m)
   ב-  System.Windows.Forms.Form.WndProc(Message& m)
   ב-  System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   ב-  System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   ב-  System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

 

קישור ישיר להודעה
שתף באתרים אחרים

עוד משהו, למה כשאני כותב this.close(); הקומפלייר שולח אותי לפקודה:

Application.Run(new form1());

וזורק את השגיאה:

An unhandled exception of type 'System.ObjectDisposedException' occurred in System.Windows.Forms.dll
אין אפשרות לגשת לקובץ שהושלך.

 

קישור ישיר להודעה
שתף באתרים אחרים
ציטוט של eido300

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

 

צריך לשים באותה תיקייה את הקובץ Microsoft.WindowsAPICodePack.Shell.dll. וכדאי לשים במצב release.

ציטוט של eido300

עוד משהו, למה כשאני כותב this.close(); הקומפלייר שולח אותי לפקודה:


Application.Run(new form1());

וזורק את השגיאה:


An unhandled exception of type 'System.ObjectDisposedException' occurred in System.Windows.Forms.dll
אין אפשרות לגשת לקובץ שהושלך.

 

כנראה שהצגת אותו מחדש אח"כ (this.Show()).

קישור ישיר להודעה
שתף באתרים אחרים
ציטוט של eido300

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

אז אני מקווה שהבנת שזו הסיבה. ביקשת את זה במפורש :P

ציטוט של eido300

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

תפתח Media Player, האייקונים באותו גודל כמו של התוכנית שלך?

קישור ישיר להודעה
שתף באתרים אחרים
ציטוט של af db creid

צריך לשים באותה תיקייה את הקובץ Microsoft.WindowsAPICodePack.Shell.dll. וכדאי לשים במצב release.

כנראה שהצגת אותו מחדש אח"כ (this.Show()).

זה הform הראשי, לא הצגתי אותו אחר כך, ניסיתי לסגור את התוכנה לגמרי.

קישור ישיר להודעה
שתף באתרים אחרים
ציטוט של af db creid

אפשר את הקוד?

 public form1()
        {
            InitializeComponent();
            יצאלאקסלToolStripMenuItem.Enabled = System.Reflection.TypeInfo.GetTypeFromProgID("Excel.application") != null ? true : false;
        
            var args = Environment.GetCommandLineArgs();
            if (args.Length > 1 && args[1] != null && File.Exists(args[1]) && Path.GetExtension(args[1]) == ".wt1")
            {
                pathOfFile = args[1];
                readFile(pathOfFile);
                nameLbl.Text = Path.GetFileNameWithoutExtension(args[1]);
            }
            else
            {
                openFiles of = new openFiles();
                switch (of.ShowDialog())
                {
                    // ok - exists file
                    case DialogResult.OK:
                        pathOfFile = of.pathOfSelctedFile;
                        readFile(of.pathOfSelctedFile);
                        nameLbl.Text = of.nameOfTheSelctedFile;
                        break;

                    // yes - new file
                    case DialogResult.Yes:
                        pathOfFile = of.pathOfSelctedFile;
                        nameLbl.Text = of.nameOfTheSelctedFile;
                        break;

                    // default - no file has selcted
                    default:
                        this.Close();
                        break;
                }
            }
            
        }

 

קישור ישיר להודעה
שתף באתרים אחרים
ציטוט של af db creid

צריך לשים באותה תיקייה את הקובץ Microsoft.WindowsAPICodePack.Shell.dll. וכדאי לשים במצב release.

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

 

במצב release הקומפלייר כל הזמן מקפיץ אזהרה שאי אפשר לדבג.

 

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

נערך על-ידי eido300
קישור ישיר להודעה
שתף באתרים אחרים
ציטוט של eido300

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

כמו שכתבתי כבר לא-יודע-כמה פעמים כאן, הפיתרון: תתרום לקוד פתוח. תמצא לא מעט מקצוענים שיכולים להדריך אותך (באנגלית, כמובן! ואם שאלת כאן ולא בSO מי יודע... :)).

ציטוט של eido300

במצב release הקומפלייר כל הזמן מקפיץ אזהרה שאי אפשר לדבג.

הוא לא צודק, אפשר :) אם כי זה באמת לא נועד לדיבאג. וזה לא הקומפיילר, זה הVS. הפיתרון: Build ללא הרצה (Ctrl+Shift+B).

ציטוט של eido300

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

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

 1. תתקין את חבילת הNuGet שנקראת ilmerge ממיקרוסופט.

 2. פתח את הגדרות הפרוייקט, תבחר בכרטיסייה Build Events (אני מצטט מהזיכרון אז יש סיכוי שהשם קצת שונה).

 3. תדביק לתוך הtextbox שכתוב עליו Post-Build Event את הקוד הבא:

@echo off

:: this script needs https://www.nuget.org/packages/ilmerge

:: set your target executable name (typically [projectname].exe)
SET APP_NAME=$(ProjectName).exe

:: Set build, used for directory. Typically Release or Debug
SET ILMERGE_BUILD=Release

:: Set platform, typically x64
SET ILMERGE_PLATFORM=x64

:: set your NuGet ILMerge Version, this is the number from the package manager install, for example:
:: PM> Install-Package ilmerge -Version 3.0.29
:: to confirm it is installed for a given project, see the packages.config file
SET ILMERGE_VERSION=3.0.29

:: the full ILMerge should be found here:
SET ILMERGE_PATH=%USERPROFILE%\.nuget\packages\ilmerge\%ILMERGE_VERSION%\tools\net452
:: dir "%ILMERGE_PATH%"\ILMerge.exe

echo Merging %APP_NAME% ...

:: add project DLL's starting with replacing the FirstLib with this project's DLL
"%ILMERGE_PATH%"\ILMerge.exe Bin\%ILMERGE_PLATFORM%\%ILMERGE_BUILD%\%APP_NAME%  ^
  /lib:Bin\%ILMERGE_PLATFORM%\%ILMERGE_BUILD%\ ^
  /out:%APP_NAME% ^
  $(ProjectName).exe ^
  .WindowsAPICodePack.Shell.dll

echo Done.

זה אומר לVS למזג את הDLLים אחרי כל BUILD.

תבנה במצב RELEASE. תהנה :)

 

לגבי השגיאה, כמו שחשבתי - אסור לסגור form בקונסטרקטור. בכלל לא מומלץ להשתמש בו אלא באירוע Form_Load.

קישור ישיר להודעה
שתף באתרים אחרים
ציטוט של af db creid

לגבי השגיאה, כמו שחשבתי - אסור לסגור form בקונסטרקטור. בכלל לא מומלץ להשתמש בו אלא באירוע Form_Load.

העברתי לform1_load ושוב שגיאה

System.ObjectDisposedException
  HResult=0x80131622
  Message=אין אפשרות לגשת לקובץ שהושלך.
שם אובייקט: 'form1'.
  Source=System.Windows.Forms
  StackTrace:
   at System.Windows.Forms.Control.CreateHandle()
   at System.Windows.Forms.Form.CreateHandle()
   at System.Windows.Forms.Control.get_Handle()
   at timeWork.form1.form1_Load_1(Object sender, EventArgs e) in C:\Users\HP\Desktop\timeWork\timeWork\Form1.cs:line 250
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

  This exception was originally thrown at this call stack:
    [External Code]
    timeWork.form1.form1_Load_1(object, System.EventArgs) in Form1.cs
    [External Code]

 

הקוד הפעם הוא:

private void form1_Load_1(object sender, EventArgs e)
        {
            יצאלאקסלToolStripMenuItem.Enabled = System.Reflection.TypeInfo.GetTypeFromProgID("Excel.application") != null ? true : false;
            var args = Environment.GetCommandLineArgs();
            if (args.Length > 1 && args[1] != null && File.Exists(args[1]) && Path.GetExtension(args[1]) == ".wt1")
            {
                pathOfFile = args[1];
                readFile(pathOfFile);
                nameLbl.Text = Path.GetFileNameWithoutExtension(args[1]);
            }
            else
            {
                openFiles of = new openFiles();
                switch (of.ShowDialog())
                {
                    // ok - exists file
                    case DialogResult.OK:
                        pathOfFile = of.pathOfSelctedFile;
                        readFile(of.pathOfSelctedFile);
                        nameLbl.Text = of.nameOfTheSelctedFile;
                        break;

                    // yes - new file
                    case DialogResult.Yes:
                        pathOfFile = of.pathOfSelctedFile;
                        nameLbl.Text = of.nameOfTheSelctedFile;
                        break;

                    // default - no file has selcted
                    default:
                        Close();
                        break;
                }
            }
            StartButtonBar = new ThumbnailToolBarButton(timeWork.Properties.Resources.start, "start")
            {
                DismissOnClick = true,
            };
            StopButtonBar = new ThumbnailToolBarButton(timeWork.Properties.Resources.stop, "stop")
            {
                Enabled = false,
                DismissOnClick = true,
            };
            StartButtonBar.Click += startBtn_Click;
            StopButtonBar.Click += stopBtn_Click;
            TaskbarManager.Instance.ThumbnailToolBars.AddButtons(Handle, StartButtonBar, StopButtonBar);
        }

 

קישור ישיר להודעה
שתף באתרים אחרים
ציטוט של af db creid

מו שכתבתי כבר לא-יודע-כמה פעמים כאן, הפיתרון: תתרום לקוד פתוח. תמצא לא מעט מקצוענים שיכולים להדריך אותך (באנגלית, כמובן! ואם שאלת כאן ולא בSO מי יודע... :)).

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

 

אגב, מה זה SO?

 

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

נערך על-ידי eido300
קישור ישיר להודעה
שתף באתרים אחרים
ציטוט של af db creid

echo off :: this script needs https://www.nuget.org/packages/ilmerge :: set your target executable name (typically [projectname].exe) SET APP_NAME=$(ProjectName).exe :: Set build, used for directory. Typically Release or Debug SET ILMERGE_BUILD=Release :: Set platform, typically x64 SET ILMERGE_PLATFORM=x64 :: set your NuGet ILMerge Version, this is the number from the package manager install, for example: :: PM> Install-Package ilmerge -Version 3.0.29 :: to confirm it is installed for a given project, see the packages.config file SET ILMERGE_VERSION=3.0.29 :: the full ILMerge should be found here: SET ILMERGE_PATH=%USERPROFILE%\.nuget\packages\ilmerge\%ILMERGE_VERSION%\tools\net452 :: dir "%ILMERGE_PATH%"\ILMerge.exe echo Merging %APP_NAME% ... :: add project DLL's starting with replacing the FirstLib with this project's DLL "%ILMERGE_PATH%"\ILMerge.exe Bin\%ILMERGE_PLATFORM%\%ILMERGE_BUILD%\%APP_NAME% ^ /lib:Bin\%ILMERGE_PLATFORM%\%ILMERGE_BUILD%\ ^ /out:%APP_NAME% ^ $(ProjectName).exe ^ Microsoft.WindowsAPICodePack.Shell.dll echo Done.

יש שגיאה exited with code1

שיניתי בגירסה במקום 3.0.29 ל3.0.41 כי זו הגירסה שהותקנה אצלי, ועדיין יש שגיאה, לא יודע מה זה אומר...

 

התקנתי את גירסה 3.0.29 ועדיין שגיאה...

נערך על-ידי eido300
קישור ישיר להודעה
שתף באתרים אחרים
ציטוט של eido300

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

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

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

ציטוט של eido300

אגב, מה זה SO?

StackOverflow.

ציטוט של eido300

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

אכן, יש מגבלה ליום.

 

ציטוט של eido300

שיניתי בגירסה במקום 3.0.29 ל3.0.41 כי זו הגירסה שהותקנה אצלי, ועדיין יש שגיאה, לא יודע מה זה אומר...

טוב ששינית :)

ציטוט של eido300

יש שגיאה exited with code1

זה כל מה שכתוב? תסתכל בOutput Window. אם עדיין לא כתוב תוריד את הecho off בהתחלה.

 

ציטוט של eido300

העברתי לform1_load ושוב שגיאה

שים לב שאתה מנסה לאתחל את לחצני הtaskbar אחרי הClose(). אסור לבצע פעולות עם טופס שנסגר.

נערך על-ידי af db creid
קישור ישיר להודעה
שתף באתרים אחרים

הצטרפ/י לדיון

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

אורח
הוסף תגובה

×   התוכן שהודבק הוא עם עיצוב.   הסר עיצוב

  Only 75 emoji are allowed.

×   הקישור שלך הוטמע אוטומטית.   הצג כקישור רגיל

×   התוכן הקודם שלך שוחזר אוטומטית.   נקה הכל

×   You cannot paste images directly. Upload or insert images from URL.


×
  • צור חדש...

בראש החדשות:

חדש באתר

סוני במפגן נדיבות בלתי רגיל: עשרה משחקי PlayStation בחינם לכולם

חדשים על המדף: Galaxy A52 ו-Galaxy A72 זמינים בישראל

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