השפעה מיידית של שינוי ערך registry
-
יש בווינדוס 10 הגדרה (בית >> מכשירים >> עכבר) שנקראת "גלול חלונות לא פעילים בעת ריחוף מעליהם".
יש אפשרות לשינוי של ההגדרה ב HKEY_CURRENT_USER\Control Panel\Desktop\MouseWheelRouting, אבל כשאני משנה את זה שם זה מתעדכן רק ביציאה או הפעלה מחדש.
איך אפשר לשנות את זה ושיעבוד מיידית?ניסיתי את זה ולא עבד (בכלל לא שינה את הערך...)
תודה
-
@אבי
ערכים ברג'סטרי מתעדכנים באופן מיידי כששינית אותם, אבל לא כל התוכנות והשירותים מודעים לעידכון באופן מיידי. למעשה הרבה מהן קוראות את הערך רק בהפעלה. אם אתה רוצה שהתוכנה שלך תהיה מודעת לשינויים אתה צריך להשתמש בכלי עזר כמו Registry Watcher
או לבדוק מדי פעם את הערך בעצמך.
ראה כאן שמעיר כי במקרים של עדכון רכיב של מערכת ההפעלה (כגון בנידון דידן) לפעמים הרג'סטרי הוא לא המקום הנכון לחפש, ויש פעמים רבות שניתן לבצע קריאה ל-API של Windows ע"מ להשיג את אותה התוצאה (כמו במקור הראשון שהבאת)עריכה:
עניתי לך באופן כללי, לפי הכותרת של הפוסט.
ולפתרון מהיר לשאלתך, תוכל להשתמש בכלי העזר AutoHotKey ולרשום את המאקרו הבא (מקור) :~ScrollLock:: SLStatus := GetKeyState("ScrollLock", "T") SPI_SETACTIVEWINDOWTRACKING = 0x1001 SPIF_UPDATEINIFILE = 1 SPIF_SENDCHANGE = 2 DllCall("SystemParametersInfo",UInt,SPI_SETACTIVEWINDOWTRACKING,UInt,0,UInt,SLStatus,UInt,SPIF_UPDATEINIFILE | SPIF_SENDCHANGE) return
-
@odeddvir אמר בהשפעה מיידית של שינוי ערך registry:
אם אתה רוצה שהתוכנה שלך תהיה מודעת לשינויים אתה צריך להשתמש בכלי עזר כמו Registry Watcher
למעשה, אני לא צריך שהתוכנה שלי תהיה מודעת לשינויים אלא שמערכת ההפעלה (העכבר) תנהג בהתאם לשינויים, וזה לא קורה בשינוי הערך או בקריאה ל API של Windows, לכן שאלתי מה התהליך שמתבצע בשינוי ידני של ההגדרה שכן גורם לו להיות מושפע מיד.
אגב, לוקח להגדרה הזו שניה + עד לעדכון שלה, משהו קורה שם, ואני רוצה לדעת מה.@odeddvir אמר בהשפעה מיידית של שינוי ערך registry:
ולפתרון מהיר לשאלתך, תוכל להשתמש בכלי העזר AutoHotKey ולרשום את המאקרו הבא (מקור) :
תודה, ניסיתי להימנע מצד ג', אבל נראה לי שאין ברירה...
-
@yossiz אמר בהשפעה מיידית של שינוי ערך registry:
@אבי אמר בהשפעה מיידית של שינוי ערך registry:
ניסיתי את זה ולא עבד (בכלל לא שינה את הערך...)
שמת לב שיש טעות כתיב בקוד? כתוב
sinature
במקוםsignature
כן (זה לא נתן לקמפל עם השגיאה)
אבל זה לא משפיע בכלל לא על הערך רישום ולא על ההגדרה, אין לי מושג למה
למרות שמחזיר true