עבור לתוכן

[C#] כשהתוכנית שלי עולה אוטומטית עם המערכת היא מתרסקת (crash :D)

Featured Replies

פורסם

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

RegistryKey startupKey = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run");
string path = Directory.GetCurrentDirectory() + "\\" + AppDomain.CurrentDomain.FriendlyName;
if (startupCheckbox.Checked)
startupKey.SetValue("NAME", "\"" + path + "\"");
else startupKey.DeleteValue("NAME");

בדקתי ב-REGISTRY וזה מוסיף את הKEY והכל בסדר, מופיע בדיוק כמו שאר הערכים שמופעלים כשהמערכת עולה.

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

errorvf1.th.jpg

וכשאני לוחץ על "view the contents of the error report" זה מציג לי הרבה טקסט שנראה כמו תאי זכרון או משהו כזה ואי אפשר להבין כלום (אני לפחות לא מבין) וגם אי אפשר להעתיק/לשמור/לבחור אותו.

מה אפשר לעשות? והאם ליצור קיצור דרך ב-PROGRAMS->STARTUP לתוכנה יעבוד (בניגוד לזה) או שיש דרך אחרת לפתור את הבעיה?

פורסם

אכן האפשרות הכי טובה היא ליצור קיצור דרך לסטרטאפ וזה גם הכי USER FRIENDLLY כי המשתמש תמיד יוכל להסיר את הקיצור לבדו

פורסם
  • מחבר

שום דבר לא עובד.

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

פורסם

מה לא עובד ? הפעלת את ה JIT Debugger ? מה הוא רשם ?

פורסם
  • מחבר

החלטתי ליצור קיצור דרך כקובץ ולא ברג'יסטרי כדי שהמשתמש יוכל למחוק את קיצור הדרך אם ירצה, וגם שם קיצור הדרך לא פעל, בצורה דומה לרג'יסטרי.

    private void addStartupButton_Click(object sender, EventArgs e)
{
WshShellClass wshShell = new WshShellClass();
string scPath =
Environment.GetFolderPath(Environment.SpecialFolder.Startup)+
@"\NewLaunch.lnk";
IWshRuntimeLibrary.IWshShortcut MyShortcut = (IWshRuntimeLibrary.IWshShortcut)wshShell.CreateShortcut(scPath);
MyShortcut.TargetPath = Application.ExecutablePath;
MyShortcut.Description = "NewLaunch - A Transparent Quicklaunch for Windows";
MyShortcut.IconLocation = Application.StartupPath + @"\app.ico";
MyShortcut.Save();
}

אז מצאתי את הפתרון :) מאוד טפשי למעשה, ותקף ליצירת קיצור דרך.

ניסיתי ליצור ידנית קישור (לגרור את ה-EXE וליצור קישור איפשהו) וזה עבד.

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

ואז שמתי לב-- במאפיינים יש "Start In", מה שקיצור הדרך ב-C# לא יוצר לבד, בניגוד לגרירה בחלונות.

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

כדי לפתור הייתי רק צריך להוסיף:

MyShortcut.WorkingDirectory = Application.StartupPath;

וזה הכל :)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים