fxp
שחזור סיסמה הרשמה
  • הודעות
  • אשכולות
  • רשומים
  • מחוברים כרגע
הרשמה לאתר הרשמה באמצעות facebook

מדריך | עבודה עם רג'יסטרי ב- VB.NET

  1. 17-07-2007 00:31 #1
    תאריך הצטרפות
    28-06-07
    הודעות
    459
    היי, הפעם כתבתי לכם מדריך "עבודה עם רג'יסטרי ב- VB.NET".
    מדריך זה מסביר איך לגשת לרג'יסטרי ולכתוב לו ערכים / לשנות / למחוק ועוד.

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

    קודם כל, כדי לגשת לרג'יסטרי ידנית (בלי ויבי), תיכנסו להתחל (start), הפעל (run) ובתוך הפעל תכתבו Regedit.

    זה יראה לכם את החלון של הרג'יסטרי. אז הנה קצת הסבר על הרג'יסטרי:

    HKEY_CLASSES_ROOT - שם נכלל כל סוגי הקבצים, לדוגמא .doc (קובץ וורד).
    HKEY_CURRENT_USER - כל הערכים של התוכנות ועוד רק של המשתמש הנוכחי.
    HKEY_LOCAL_MACHINE - על הערכים של התוכנות ועוד של כל המחשב.
    HKEY_USERS - לא נחוץ לנו.
    HKEY_CURRENT_CONFIG - גם לא נחוץ.

    אז כדי לגשת לרג'סטרי דרך vb.net, נשתמש בעזרת המחלקה My.Computer.Registry (שזו הדרך היותר מסובכת), ובעזרת הפונקציות SetSetting ו- GetSetting (שזו הדרך הפשוטה).

    אז נתחיל מהדרך הפשוטה.

    כתיבת ערכים לרג'יסטרי
    פונקצית כתיבת ערכים לרג'יסטרי SaveSetting.

    קוד:
    SaveSetting("appname", "Controls", "TextBox1", TextBox1.Text)
    הסבר:
    SaveSetting היא דרך מאוד פשוטה לשמור ערכים לרג'יטסרי. תחליפו את appname בשם התוכנית שלכם, וזה ישמור את הטקסט שבתוך Textbox1 לתוך הרג'יטסרי.

    הערך ישמר בתוך:

    קוד:
    HKEY_CURRENT_USER\Software\VB and VBA Program Settings\AppName\Controls
    כמובן ש- AppName יוחלף בשם התוכנית שלכם.
    שמירת ערכים לרג'יסטרי תשימו באירוע של כפתור שבכפתור כתוב שמור.

    קריאת ערכים מהרג'יסטרי
    פונקצית קריאת ערכים מהרג'יסטרי GetSetting.

    קוד:
    TextBox1.Text = GetSetting("AppName", "Controls", "TextBox1", "Not Found")
    הסבר:GetSetting היא ההפך מ- SaveSetting, היא קוראת ערכים שכבר שמרנו. תחליפו את AppName בשם התוכנית שלכם, וזה יקרא את הערך ששמרנו מקודם. אם התוכנית לא תמצא את הערך, הפונקציה תחזיר Not Found (כמו שכתבתי באחרון).

    כשכתבנו TextBox1.Text, זה אומר שמה שהפונקציה תחזיר, ירשם בתוך TextBox1. אם הפונקציה תמצא את הערך, היא תחזיר את מה שיש בערך (הערך הוא מה ששמרתם, ומה ששמרתם קודם זה את הטקסט בתוך TextBox1). אם הפונקציה לא תמצא את הערך היא תחזיר Not Found כמו שרשמתי מקודם.

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

    -------------------------------------------------------------

    יפה. שמרתם ופתחתם ערכים ברג'יסטרי / מהרג'יסטרי. עכשיו נעבור לדרך המתקדמת.

    קודם כל בטח שאלתם את עצמכם, מה הוא ההבדל בין הדרך "המתקדמת" לדרך "הפשוטה".
    אם שמתם לב הדרך הפשוטה לא נותנת לכתוב בנתיב מלא (לדוגמא
    היי, הפעם כתבתי לכם מדריך "עבודה עם רג'יסטרי ב- VB.NET".
    מדריך זה מסביר איך לגשת לרג'יסטרי ולכתוב לו ערכים / לשנות / למחוק ועוד.

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

    קודם כל, כדי לגשת לרג'יסטרי ידנית (בלי ויבי), תיכנסו להתחל (start), הפעל (run) ובתוך הפעל תכתבו Regedit.

    זה יראה לכם את החלון של הרג'יסטרי. אז הנה קצת הסבר על הרג'יסטרי:

    HKEY_CLASSES_ROOT - שם נכלל כל סוגי הקבצים, לדוגמא .doc (קובץ וורד).
    HKEY_CURRENT_USER - כל הערכים של התוכנות ועוד רק של המשתמש הנוכחי.
    HKEY_LOCAL_MACHINE - על הערכים של התוכנות ועוד של כל המחשב.
    HKEY_USERS - לא נחוץ לנו.
    HKEY_CURRENT_CONFIG - גם לא נחוץ.

    אז כדי לגשת לרג'סטרי דרך vb.net, נשתמש בעזרת המחלקה My.Computer.Registry (שזו הדרך היותר מסובכת), ובעזרת הפונקציות SetSetting ו- GetSetting (שזו הדרך הפשוטה).

    אז נתחיל מהדרך הפשוטה.

    כתיבת ערכים לרג'יסטרי | דרך פשוטה
    פונקצית כתיבת ערכים לרג'יסטרי SaveSetting.

    קוד:
    SaveSetting("appname", "Controls", "TextBox1", TextBox1.Text)
    הסבר:
    SaveSetting היא דרך מאוד פשוטה לשמור ערכים לרג'יטסרי. תחליפו את appname בשם התוכנית שלכם, וזה ישמור את הטקסט שבתוך Textbox1 לתוך הרג'יטסרי.

    הערך ישמר בתוך:

    קוד:
    HKEY_CURRENT_USER\Software\VB and VBA Program Settings\AppName\Controls
    כמובן ש- AppName יוחלף בשם התוכנית שלכם.
    שמירת ערכים לרג'יסטרי תשימו באירוע של כפתור שבכפתור כתוב שמור.

    קריאת ערכים מהרג'יסטרי | דרך פשוטה
    פונקצית קריאת ערכים מהרג'יסטרי GetSetting.

    קוד:
    TextBox1.Text = GetSetting("AppName", "Controls", "TextBox1", "Not Found")
    הסבר:GetSetting היא ההפך מ- SaveSetting, היא קוראת ערכים שכבר שמרנו. תחליפו את AppName בשם התוכנית שלכם, וזה יקרא את הערך ששמרנו מקודם. אם התוכנית לא תמצא את הערך, הפונקציה תחזיר Not Found (כמו שכתבתי באחרון).

    כשכתבנו TextBox1.Text, זה אומר שמה שהפונקציה תחזיר, ירשם בתוך TextBox1. אם הפונקציה תמצא את הערך, היא תחזיר את מה שיש בערך (הערך הוא מה ששמרתם, ומה ששמרתם קודם זה את הטקסט בתוך TextBox1). אם הפונקציה לא תמצא את הערך היא תחזיר Not Found כמו שרשמתי מקודם.

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

    בהמשך גם הפונקציות: DeleteSetting ו- GetAllSettings.
    -------------------------------------------------------------

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

    קודם כל בטח שאלתם את עצמכם, מה הוא ההבדל בין הדרך "המתקדמת" לדרך "הפשוטה".
    אם שמתם לב הדרך הפשוטה לא נותנת לכתוב בנתיב מלא (לדוגמאHKEY_CURRENT_USER\Software\Intel\Indeo\5.0. הדרך המתקדמת נותנת את זה).

    כתיבת ערכים לרג'יסטרי | דרך מתקדמת
    בעזרת הפונקציה My.Computer.Registry.SetValue

    קוד:
    My.Computer.Registry.SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "MyProgram", My.Application.Info.DirectoryPath & "\" & My.Application.Info.ProductName)
    הסבר

    הפונקציה הזאת כרגע שמרה לתוך

    קוד:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    את שם התוכנה שלכם, והערך שלה היה מיקום התוכנה.
    מה זה עשה? זה עשה שבכל המשתמשים (HKEY_LOCAL_MACHINE), יופעל בהתחלת המחשב את התוכנה שלכם. בעצם, זה גם יופיע בתוך MsConfig.

    בפונקציה SaveSetting לא יכולתי לשמור לאיזה מקום שאני רוצה ברג'יטסרי. אם הפונקציה הזאת אני יכול לכל מקום שאני רוצה.

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

    קריאת ערכים מהרג'יסטרי | דרך מתקדמת
    משתמשת בפונקציה My.Computer.Registry.GetValue

    קוד:
    MsgBox(My.Computer.Registry.GetValue("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main", "Start Page", "Not Found"))
    אני עכשיו יודע את דף הבית שלכם
    חח סתם בצחוק..

    הפונקציה הזאת עושה MsgBox לדף הבית שלכם ב- Internet Exploler.

    הסבר:

    הפונקציה קוראת ב HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main את הערך של Start Page, כמובן ש- Start Page הוא String Value.
    הפונקציה מחזירה את הערך של Start Page ל- MsgBox.

    אם הפונקציה לא מוצאת את הערך היא תחזיר Not Found.

    -------------------------------------------------------

    הדרך היותר היותר מסובכת
    בעזרת API.

    ב- VB6 אין את My.Computer.Registry (למרות שיש את SaveSetting ו- GetSetting) ולכן, כדי לגשת למקומות אחרים ברג'יטסרי זה סיפור.

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

    --------------------------------------------------------

    לכל בקשות ושאלות אתם יכולים לפנות אלי בפרטי.
    מקווה שנהנתם והשכלתם!!

    נ.ב: המאמר הבא הוא: אירועים
    נערך לאחרונה על ידי DevilDemon, 17-07-2007 בשעה 01:06

  2. 17-07-2007 00:35 #2
    בן
    תאריך הצטרפות
    13-04-07
    הודעות
    4,703
    יפה!!!
    תמשיך ככה!
    EasyClip
    !Create your own slideshow clips easily
    !Available on the AppStore


  3. 17-07-2007 01:06 #3
    תאריך הצטרפות
    28-06-07
    הודעות
    459
    תודה רבה

מקרא דרגות:  » יו"ר » מנכ"ל » מנהל ראשי » מפקח » מנהל פורום » צוות פרויקטים » צוות סיקורים » משתמש כבוד » היכל התהילה » Champ » משקיען כבוד » Winner