У нас есть решение на основе MSAccess, работающее на компьютерах клиентов и использующее VBScript-скрипт. Из-за окружающей среды сети мы ЗНАЕМ, что в большинстве случаев приложение не будет работать на компьютере, который будет переведен в режим ожидания. Это означает, что при возобновлении работы компьютера соединение с базой данных теряется и не подлежит восстановлению.
Пока мы не найдем способ восстановить db-соединение при возобновлении, я хотел бы УБИТЬ процесс, когда компьютер переходит в режим ожидания, чтобы избежать путаницы с пользователями, которые пытаются продолжить работу с приложением, которое перестает работать, когда оно хочет получить доступ к БД в следующий раз. время.
В настоящее время я жду Win32_PowerManagementEvent, как это:
Set wmiPowerManagementEvent = GetObject("winmgmts:").ExecNotificationQuery("Select * from Win32_PowerManagementEvent")
Do
on error resume next
evt = wmiPowerManagementEvent.NextEvent(5000).EventType
on error goto 0
If evt = cntEventEnteringSuspend Then
WshShell.Run "taskkill /FI ""WINDOWTITLE eq SWEPiT*"" /FI ""IMAGENAME eq MSACCESS.EXE"" /F", 0, true
WScript.Quit
End If
Loop
По какой-то причине это больше не будет перехватывать все события, как это было в WindowsXP, поэтому я предполагаю некоторое изменение поведения в Win7. Итак, что я делаю не так или:
Как я могу сделать это, надежно, на Windows 7?