Тема: AHK: Ежемесячное однократное выполнение задачи
Добрый всем день!
Написал скрипт на ежемесячный сброс статистики 3G модема на ноуте. Собсна, вот код:
#NoEnv
#SingleInstance force
SetBatchLines -1
If !A_IsAdmin
{
Run *RunAs "%A_ScriptFullPath%"
ExitApp
}
;__________________________________________________________________________________________________________________
; TrayMenu
Menu Tray, NoStandard
Menu Tray, Tip, Huawei Statistics Reset
Menu Tray, Add, Автозапуск с Windows, SwitchAutoLaunch
Menu Tray, Add
Menu Tray, Add, Выйти из программы, CloseProg
Menu Tray, Default, Выйти из программы
RegRead AutoLaunch, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, HuaweiStatisticsReset
If !AutoLaunch ; Добавляем Huawei Statistics Reset в автозапуск
{
RegWrite REG_SZ, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, HuaweiStatisticsReset, % """" . A_ScriptFullPath . """"
}
AutoLaunchOn := 1 ; Метка для проверки автозапуска SwitchAutoLaunch
Menu Tray, Check, Автозапуск с Windows
GoSub Tasks
;__________________________________________________________________________________________________________________
; Переключение автозапуска
SwitchAutoLaunch:
If AutoLaunchOn
{
RegDelete HKCU, Software\Microsoft\Windows\CurrentVersion\Run, HuaweiStatisticsReset
AutoLaunchOn := ""
Menu Tray, UnCheck, Автозапуск с Windows
}
Else
{
RegWrite REG_SZ, HKCU, Software\Microsoft\Windows\CurrentVersion\Run, HuaweiStatisticsReset, % """" . A_ScriptFullPath . """"
AutoLaunchOn := 1
Menu Tray, Check, Автозапуск с Windows
}
return
;__________________________________________________________________________________________________________________
; Выполнение задач
Tasks:
If A_DD = 01 ; Выполнение задач первого числа каждого месяца
{
RegRead HuaweiPath, HKLM, SOFTWARE\Wow6432Node\Huawei technologies\HUAWEI Modem Nano, ExePath ; Получение из реестра директории установленной HUAWEI Modem Nano
If HuaweiPath
{
FileDelete % HuaweiPath . "\userdata\NetInfo.dat" ; Удаление статискики трафика за прошедший месяц
}
}
Sleep % ((23-A_Hour)*3600000+(59-A_Min)*60000+(60-A_Sec)*1000)*+1 ; Отсчет времени до полуночи
GoSub Tasks
;__________________________________________________________________________________________________________________
CloseProg:
ExitApp
Все работает, но криво. Недостаки:
1. Удаляет статистику при каждом включении или перезагрузке ноута первого числа месяца.
2. Если не включать ноут в первый день месяца, то сброс статистики вообще не происходит.
Как исправить это? Нужно сделать однократное удаление файла "NetInfo.dat" первого числа каждого месяца, а если ноут не влючался в это время, то удаление при первом включении вначале месяца.
Нужна идея. Самому ничего в голову не идет.


