[C#] כשהתוכנית שלי עולה אוטומטית עם המערכת היא מתרסקת (crash :D) - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

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


pilotkevin

Recommended Posts

בתוכנה שלי הוספתי כמה שורות שכשהמשתמש מסמן 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 לתוכנה יעבוד (בניגוד לזה) או שיש דרך אחרת לפתור את הבעיה?

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

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

    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;

וזה הכל :)

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

ארכיון

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

×
  • צור חדש...