הרשאה לשינוי ערך ברג'יסטרי באמצעות דוט נט
-
יש לי הרשאה כמשתמש לשנות ערכים ברג'יסטרי, אבל בתוכנה הוא תמיד זורק שגיאה הגישה נדחתה, גם כשאני מפעיל אותה כמנהל מערכת, מה שאני צריך זה שהתוכנה תעבוד אצל כל המשתמשים (כולל מי שאינו מנהל) אבל תקבל הרשאות של מנהל מבפנים על מנת לבצע את השינוי ברישום.
זה הקוד שאני רוצה להפעיל:Registry.SetValue(@"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.accde\UserChoice", "Progid", "Access.Application.15");
וגם השורה הזאת בקובץ app.manifast:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
לא עוזרת לי כלום...
פורסם במקור בפורום CODE613 ב11/08/2014 11:26 (+03:00)
-
לא הבנתי.
לפי מה שאני רואה בקוד, אתה מנסה לשנות ערך של רג'יסטרי שאמור להגדיר שACCDE נפתח באקסס 2013.
מי אתה רוצה שיקבל את הרשאות המנהל, האקסס או התוכנה שבנית בדוטנט?
ובכלל, כדי לכתוב לרג'יסטרי במקום הזה לא צריך הרשאות מנהל, ויותר מכך,כשאתה נכנס עם הרשאות מנהל אתה בעצם משנה את הREG אצל המנהל ולא אצל המשתמש הנוכחי.במידה ואתה רוצה שהאקסס יופעל כמשתמש מנהל, אתה יכול ליצור פרוסס שירוץ עם המשתמש המסויים (אני לא בטוח שזה מה שאתה רוצה).
קוד:
Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.accde\UserChoice] "Progid"="Access.ACCDEFile.15"
נסה להדביק את הקוד הנ"ל בעורך טקסט ושמור את הקובץ עם סיומת REG.
אח"כ תריץ את הקובץ הזה ותראה אם אתה מקבל "הגישה נדחתה" (אני קיבלתי משהו אחר [כביכול יש איזו תוכנית שמאזינה לREG הזה])אבל באמת, אני חושב שהפיתרון כאן אמור להיות קצת שונה (אא"כ אתה בונה תוכנית התקנה).
אם אתה מנסה להריץ דוח או טופס באופן אוטו' מתוך הדוטנט, או סתם לפתוח אותו בזמן ריצה של הדוטנט, פשוט תיתן הגדרה ישירה לאקסס 2013.dim acc as object acc=CreateObject(Aappliction.Access.15")
וכמובן תבדוק אם אתה מקבל שגיאה, אז אין אקסס 2013.
או להשתמש בInteropפורסם במקור בפורום CODE613 ב12/08/2014 00:17 (+03:00)
-
טוב, אז הנושא הזה קשור באופן ישיר להרשאות. (בדקתי את ההרשאות של המפתח הבודד,ואחרי שהגדרתי שאני יכול לערוך, אז באמת ערכתי, אבל לא לפני.)
ד"א, למה אתה עורך את UserChoice ולא את OpenWithList בערך a? (ההרשאות שלו לא נעולות)
פורסם במקור בפורום CODE613 ב12/08/2014 00:40 (+03:00)
-
במידה ואתה רוצה שהאקסס יופעל כמשתמש מנהל, אתה יכול ליצור פרוסס שירוץ עם המשתמש המסויים (אני לא בטוח שזה מה שאתה רוצה).
אני בסך הכל רוצה לשנות ערך ברג'יסטרי פעם אחת ולתמיד, וזאת במקום להסביר ל 30 איש איך לעשות תוכנית ברירת מחדל...
נסה להדביק את הקוד הנ"ל בעורך טקסט ושמור את הקובץ עם סיומת REG.
אח"כ תריץ את הקובץ הזה ותראה אם אתה מקבל "הגישה נדחתה" (אני קיבלתי משהו אחר [כביכול יש איזו תוכנית שמאזינה לREG הזה])הוא נותן הודעה כזאת:
מוזר מאוד, בעורך עצמו אפשר לשנות ערכים.
ד"א, למה אתה עורך את UserChoice ולא את OpenWithList בערך a? (ההרשאות שלו לא נעולות)
הערך שם הוא: MSACCESS.EXE בלי כל התייחסות לגירסה, אז אינני יודע מה צריך לכתוב שם.
פורסם במקור בפורום CODE613 ב12/08/2014 10:56 (+03:00)
-
זה נראה לי כן קשור להרשאות, אבל לא בהכרח שאדמיניסטרטור מועיל כאן.
זה עניין של בעלות כמבואר כאן: http://superuser.com/a/277597/292722
ואם הבעלים זה system למשל אז האדמיניסטרטור לא יכול לשנות עד שהוא ייקח בעלות. דרך הregedit זה כנראה משתמש ביוזר system.צריך לבדוק את העניין.
פורסם במקור בפורום CODE613 ב13/08/2014 21:07 (+03:00)