ניתוק משתמש אוטומטי (אקסס)
-
ראה כאן:
http://code.613m.org/viewtopic.php?f=1&t=349&p=2373#p2375
ובמיוחד כאן:@דוד ל.ט.
שים לב שייתכן שתרצה שאי פעילות בתוכנה תחשב גם היא ל"ניתוק", יש על זה "דיבורים" ברשת (למשל http://www.codeproject.com/KB/WPF/AutologoffWPF.aspx?msg=3238811)
רק שים לב:
לפעמים אין פעילות אבל זה לא אומר שהתוכנה לא בפעילות.
כלומר:
נניח שהתוכנה מחייבת כעת כרטיסי אשראי, שולחת מיילים / SMS בתפוצה וכו' ויש לך loop בהרצה של 10000רשומות.
ללופ הזה לוקח לרוץ נניח 25 דקות.
בזמן הזה באקסס א"א לעשות כלום - רק ללכת להכין קפה, לנוח קצת, ולהתעצבן, "למה בכלל לא הלכתי לWPF , NodeJS" וכו'.
עכשיו תאר לך שהגדרת שזמן חוסר הפעילות הוא 15 דקות?
הלופ יעוף באמצע.אז ודאי שאתה יכול לבדוק במסגרת החוסר פעילות אם אין כעת לופ שרץ ואם יש להתייחס לזה כפעילות.
רק תזכור לשים לב <!-- s:-) --><img src="{SMILIES_PATH}/icon_e_smile.gif" alt=":-)" title="מחייך" /><!-- s:-) -->עריכה:
מה שאתה מחפש נקרא IDLE = זמן חוסר פעילות.
הנה קוד לדוגמא:Private Declare Function GetTickCount Lib "kernel32" () As Long Private Declare Function GetLastInputInfo Lib "user32" (plii As Any) As Long Private Type LastInputInformation cbSize As Long dwTime As Long End Type Public Function GetUsersIdleTime() As Long Dim lii As LastInputInformation lii.cbSize = Len(lii) Call GetLastInputInfo(lii) GetUsersIdleTime = FormatNumber((GetTickCount() - lii.dwTime) / 1000, 2) End Function
לא העמקתי בקוד, אבל נראה לי שהוא מביא מכלל המערכת, ואתה צריך רק מהאקסס הנוכחי.
מסתבר שיש אפשרות לקבל את הנתון הזה גם לגבי חלון מסויים לפי מזהה החלון. (hWnd)פורסם במקור בפורום CODE613 ב11/05/2015 23:00 (+03:00)
-
לשים לב לפעולה בעת פסיקת זמן, וקצב פסיקת שעון צריך לשנות מ0 ל 1000
צירפתי דוגמה, לפתוח את הטופס ולא לגעת בעכבר ובמקלדת למשך דקה בתוך האקסס, אפשר מזער ולהשתמש בשאר המחשב, הוא מתייחס רק לקובץ הספציפי.פורסם במקור בפורום CODE613 ב12/05/2015 01:01 (+03:00)