עבור לתוכן

טבלה, הפעלת תוכנה עם עליית הwindows,ועוד #c

Featured Replies

פורסם

1. אני צריך להציג מידע בצורת טבלה, איך עושים את זה? (מצאתי את הdataGridView,אבל הוא דורש שימוש בsql, יש אפשרות לעשות את זה בלי שימוש בsql?)

2. איך עושים שהתוכנה תפעל עם עליית הwindows?

בעיקרון, מחיפוש באינטרנט מצאתי 2 דרכים:

אפשר פשוט להעביר אותה לתיקייה startup, אבל:

א. איך אני מוצא אותה? אמנם הבנתי שבכל המחשבים היא נמצאת באותו מקום, משהו כזה: C:\Users\eido\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup הבעיה היא שהנתיב כולל את שם המשתמש, איך מוצאים מהו?

ב.להעביר את התוכנה אפשר רק אחרי ההתקנה איך אני עושה את זה דרך התוכנה?

אופציה שניה היא דרך רישום ברג'יסטרי, איך עושים את זה?

כמובן אם יש דרך יותר קלה - אשמח אם תגידו.

3. איך אפשר לגרום לתוכנה לשמור את הנתונים שהוכנסו בה, ולא שאני אצטרך למלא אותם מחדש כל פעם שאני מפעיל את התוכנה?

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

נערך על-ידי eido300

פורסם

1. dataGridView לא דורש SQL, יש פה דוגמה בדיוק איך למלא אותו עם סתם נתונים.

2. בבקשה: http://stackoverflow.com/questions/674628/how-do-i-set-a-program-to-launch-at-startup. שים לב שהאפליקציה תדרוש הרשאות Admin.

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

4. בבקשה: http://msdn.microsoft.com/en-us/library/system.windows.forms.form.showintaskbar.aspx

פורסם
  • מחבר

תודה רבה.

2. אם אני כותב קוד שאוטומטית יוסיף אותה לרג'יסטרי, אז כל פעם שיפעילו את התוכנה היא תוסיף מפתח לרג'יסטרי, וזה יגרום להצפה של הרג'יסטרי, אז מה עושים?

4. הshowInTaskBar אחראי על הצגת האייקון בשורת המשימות, האם כשהתכונה פועלת יוצג שם האייקון או לא, אני מחפש שהתוכנה תפעל אבל לא תוצג על המסך, אלא תוצג בשורת המשימות (כמו בתמונה), כמו האנטי ווירוסים, כל שרתי הענן למינהם וכו.

פורסם

2. אז תחשוב על איך לפתור את זה ככה שזה יעשה את זה רק פעם אחת. לא משימה תכנותית מורכבת.

4. הקטע הזה בשורת המשימות נקרא System Tray. פשוט חפש בגוגל C# System Tray ותמצא הרבה הסברים.

פורסם
  • מחבר

2. חשבתי על זה ויש לי שלוש רעיונות, אשמח אם תגיד לי מה דעתך.

  1. במקום להשתמש במפתח SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run להשתמש במפתח SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce, שכמו שהבנתי רושם את המפתח בצורה חד פעמית, זאת אומרת שבהפעלה הבאה הרישום נמחק ואז הכתיבה כל פעם מחדש לא רק שהיא לא מפריעה אלא היא גם נצרכת.
  2. ליצור משתנה בוליאני שישתנה אחרי הרישום, ולפיו אפשר לדעת אם כבר רשום או לא, אבל זה יצליח רק אם לפני הרישום של ההדלקה הבאה יעדכנו את תוכן המשתנה (כמו סעיף 3).
  3. אם היה אפשר לבדוק אם זה כבר רשום ורק במידה ולא רשום כבר - לרשום, זה אולי היה הפיתרון הכי קל, אבל עד כה לא הצלחתי לראות איך עושים את זה...

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

נערך על-ידי eido300

פורסם

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

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

נערך על-ידי שניצל

פורסם
  • מחבר

טוב אני מניח שאם בשביל לרשום ברג'יסטרי השתמשנו בsetValue, אז בשביל לקרוא אם קיים נשתמש בgetValue.

תודה רבה.

- - - תגובה אוחדה: - - -

אגב, לגבי ההרשאות admin, הבנתי שבשביל לקבל הרשאות מנהל כל מה שצריך זה להוסיף manifest ולשנות את השורה <requestedExecutionLevel level="asInvoker" uiAccess="false" />

לשורה <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />, וזה אמור להביא הרשאות מנהל.

פורסם

אין בעיה עם לקבל הרשאות אדמין, אבל לא היית רוצה שכל פעם שהאפליקציה עולה היא תקפיץ את חלון ה-UAC. זה הדבר שלא הייתי בטוח לגביו.

פורסם
  • מחבר

עכשיו בדקתי וראיתי שצריך לכתוב את כל הכתובות, זה שמור איפה שהוא? (כמו Application.CommonAppDataPath).

עריכה: מצאתי, זה - Application.ExecutablePath.

- - - תגובה אוחדה: - - -

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

נערך על-ידי eido300

פורסם
  • מחבר

תודה רבה!

ארכיון

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

דיונים חדשים