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

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


eido300
 Share

Recommended Posts

ציטוט של eido300

השורה:


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

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

יש לך אקסל?

 

ציטוט של eido300

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

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

קישור לתוכן
שתף באתרים אחרים

  • תגובות 77
  • נוצר
  • תגובה אחרונה

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

ועוד משהו, אם אני לוקח את הקובץ מההתיקייה דיבאג (אני לא רוצה לעשות 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.

 Share


×
  • צור חדש...