1

Тема: AutoHotKey: Домашняя Бухгалтерия

#NoTrayIcon
SetBatchLines -1
StringCaseSense Off
AutoTrim Off
SetFormat, float, 0.2 ; ============ Количество нолей после точки
Slot1_16 = грн.
Slot1_17 = руб.
Slot1_18 = usd.
Slot1 = Январь
Slot2 = Февраль
Slot3 = Март
Slot4 = Апрель
Slot5 = Май
Slot6 = Июнь
Slot7 = Июль
Slot8 = Август
Slot9 = Сентябрь
Slot10 = Октябрь
Slot11 = Ноябрь
Slot12 = Декабрь
Slot13 := "--------------------"
Slot14 = %A_MMMM%
Gosub, Load    ; ============  Переходим к разделу загрузки
Gosub, PasswordChek ; ============  Переходим к разделу Проверки пароля
Return

PasswordChek:
CountPass = 0
Gosub, StartPassword
Return

StartPassword: ; ============  Метка проверки пароля
  If (PasswordCheck = 0) { ; ============  Если пароля нет - Создать новый пароль
    MsgBox, Введите Новый Пароль
    InputBox,PasswordCheck,New Passwrd 1, `n    Введите Новый Пароль , HIDE, 200,150,,,,120
    if ErrorLevel <> 0 ; ============  Если нажата Отмена - Выход закрыть скрипт
        ExitApp
    InputBox,PasswordCheck1,New Passwrd 2, `n    Повторите Новый Пароль , HIDE, 200,150,,,,120
    if ErrorLevel <> 0
        ExitApp
    If (PasswordCheck = PasswordCheck1) {
        LCU = 1
        Loop 12 {
              Line%LCU% := PasswordCheck
              LCU += 42
        }
        MsgBox, Пароль Сохранен
        Goto, StartPassword
    }
    Else {
        PasswordCheck = 0
        MsgBox, Пароли несовпадают `n Повторите попытку
        Goto, StartPassword
    }
  }
  If (CountPass > 3) {
        ExitApp
      }
  Else {
      InputBox,Password,Passwrd, `n          Введите пароль , HIDE, 200,150,,,,120
      if ErrorLevel <> 0
          ExitApp
      If (Password = PasswordCheck) {
          goto, gui8
      }
      Else { 
          CountPass += 1
          Попыток := % 4 - CountPass
          MsgBox, Неправельный Пароль!!!  `n У вас осталось %Попыток% Попыток ввода
      }
      Gosub, StartPassword
  }    
Return

PasswordChange:
      Gui, Destroy, 
      InputBox,Password,Passwrd, `n          Введите старый пароль , HIDE, 250,150,,,,120
      if ErrorLevel <> 0
      {
          Goto, Gui1
      }
      If (Password = PasswordCheck) {
          Goto, NewPass
      }
      Else 
      {
          MsgBox,     Внимание!!! `nВы ввели неверный старый пароль
         Goto, PasswordChange 
      }
Return

NewPass:
    MsgBox, Введите Новый Пароль
    InputBox,PasswordCheck,New Passwrd 1, `n    Введите Новый Пароль , HIDE, 200,150,,,,120
    if ErrorLevel <> 0
        Goto, Gui1
    InputBox,PasswordCheck1,New Passwrd 2, `n    Повторите Новый Пароль , HIDE, 200,150,,,,120
    if ErrorLevel <> 0
        Goto, Gui1
    If (PasswordCheck = PasswordCheck1) {
        LCU = 1
        Loop 12 {
              Line%LCU% := PasswordCheck
              LCU += 42
        }
        MsgBox, Новый Пароль Сохранен!
        Goto, Gui1
    }
     Else {
           MsgBox, Пароли не совпадают ! `nПовторите попытку
           Goto, NewPass
    }
Return

Load:       ; ============  Загрузка данных в переменную
IfNotExist, %A_ScriptDir%\DataBase  ; ============  Если нет папки для хранения базы данных -
  {
  FileCreateDir, %A_ScriptDir%\DataBase ; ============  - создать Папку.
  }
IfNotExist, %A_ScriptDir%\DataBase\params.buh ; ============ Если база данных не найдена -
{
If XXStart <> 1
{
Loop 504 {  ; ============ Создаем базовые значения для переменных
            CountPrice += 1
            If CountPrice <= 30 ; ============ Для переменных Line1 - Line 30 - 
                Line%A_Index% := 0.00 ; ============ - задается значение 0.00

            Else ; ============ Для переменных Line31 - Line 42 -
            {
                CountPriceD += 1
                Line%A_Index% := "Доп. Расходы " CountPriceD ; ============ - задается значение Доп. Расходы 1 - Доп. Расходы 12
                If CountPriceD >= 12
                {
                    CountPrice := "0", CountPriceD := "0"
                 }
             }
         }
; ============ --------------------------------
; ============ В Этом разделе, рабочим переменным гуи, задается значение, согласно текущего месяца
LC := A_MM * 42 - 42
LC += 1, PasswordCheck := Line%LC%
LC += 1, UE := Line%LC%
}
Else {
LC := MonthNow * 42 - 42
LC += 1, PasswordCheck := Line%LC%
LC += 1, UE := Line%LC%
}
}
Else ; ============ Если база данных существует
{
FileRead, VAL, %A_ScriptDir%\DataBase\params.buh ; ============ Считать базу данных в переменную
Gosub, DEcrypt ; ============ отправляем переменную на расшифровку
count := ""
Loop, parse, VAL, `n, `r ; ============ Цикл считывает строки переменной, и последовательно присваивает значения строк переменным Line1- Line504
     if InStr(A_LoopField, "=")
     {
          count++
          Line%count% := RegExReplace(A_LoopField, ".*=(.*)", "$1")
     }
VAL := "" ; ============ по избежание наслаивания строк, очищаем значение переменной

LC := A_MM * 42 - 42
LC += 1, PasswordCheck := Line%LC%
LC += 1, UE := Line%LC%1
}
WinName := "Домашняя Бухгалтерия 2.06"
SpaseS := " "
Cont = 0
Cont1 = 1
Return



; ============ =========================================
gui8: ; ============  Метка выбора месяца
  Gui, Destroy
  Gui, Font, cBlue
  Gui, +AlwaysOnTop
  Gui, Add, Text , , За какой месяц Вы хотите редактировать `n                    Доходи и расходы?
  Gui, Add, DropDownList,w100 r7 vDropDownList2 gDropDownList2, %Slot14%|%Slot13%|%Slot1%|%Slot2%|%Slot3%|%Slot4%|%Slot5%|%Slot6%|%Slot7%|%Slot8%|%Slot9%|%Slot10%|%Slot11%|%Slot12%|
  Gui, Add, Button, gNTR, Продолжить
  Gui, Show, , Выбор месяца
  Gui, -Caption ; Убираем Границы окна
Return

DropDownList2:
    Gui, Submit, NoHide
    Month := % DropDownList2
    GuiControl, , Static1,  Внимание! `nВы выбрали месяц %Month%
    Gui, Font, cRed
    GuiControl, Font, Static1
return

; ==============================================================================
; ============  В Этом разделе, рабочим переменным гуи, задается значение, согласно текущего месяца
NTR:
  Gui, Destroy, 
  If (Month = "--------------------") { ; ============  Если месяц выбран неправильно -
            MsgBox, Внимание! `nВы выбрали несуществующий месяц `n Сделайте правильный выбор
            Goto, gui8 ; ============ - вернутся к выбору месяца
            }
  Gosub, ChekMonth
LC := MonthNow * 42 - 42
LC += 1, PasswordCheck := Line%LC%
LC += 1, UE := Line%LC%
LC += 1, Input := Line%LC%
LC += 1, Input1 := Line%LC%
LC += 1, Input2 := Line%LC%
LC += 1, Input3 := Line%LC%
LC += 1, Out1 := Line%LC%
LC += 1, Out2 := Line%LC%
LC += 1, Out3 := Line%LC%
LC += 1, Out4 := Line%LC%
LC += 1, Out5 := Line%LC%
LC += 1, Out6 := Line%LC%
LC += 1, Out7 := Line%LC%
LC += 1, Out8 := Line%LC%
LC += 1, Out9 := Line%LC%
LC += 1, Out10 := Line%LC%
LC += 1, Out19 := Line%LC%
LC += 1, Out21 := Line%LC%
LC += 1, Out12 := Line%LC%
LC += 1, Out13 := Line%LC%
LC += 1, Out14 := Line%LC%
LC += 1, Out15 := Line%LC%
LC += 1, Out16 := Line%LC%
LC += 1, Out17 := Line%LC%
LC += 1, Out18 := Line%LC%
LC += 1, CashNow := Line%LC%
LC += 1, Свет := Line%LC%
LC += 1, Газ := Line%LC%
LC += 1, Вода := Line%LC%
LC += 1, Комун := Line%LC%
LC += 1, Доп_Расход_1 := Line%LC%
LC += 1, Доп_Расход_2 := Line%LC%
LC += 1, Доп_Расход_3 := Line%LC%
LC += 1, Доп_Расход_4 := Line%LC%
LC += 1, Доп_Расход_5 := Line%LC%
LC += 1, Доп_Расход_6 := Line%LC%
LC += 1, Доп_Расход_7 := Line%LC%
LC += 1, Доп_Расход_8 := Line%LC%
LC += 1, Доп_Расход_9 := Line%LC%
LC += 1, Доп_Расход_10 := Line%LC%
LC += 1, Доп_Расход_11 := Line%LC%
LC += 1, Доп_Расход_12 := Line%LC%
  Gosub, Gui1
Return
; ==============================================================================



ChekMonth:
If (Month = "Январь") {
  MonthNow = 1
  }
If (Month = "Февраль") {
    MonthNow = 2
  }
If (Month = "Март") {
  MonthNow = 3
}
If (Month = "Апрель") {
  MonthNow = 4
}
If (Month = "Май") {
  MonthNow = 5
}
If (Month = "Июнь") {
  MonthNow = 6
}
If (Month = "Июль") {
  MonthNow = 7
}
If (Month = "Август") {
  MonthNow = 8
}
If (Month = "Сентябрь") {
  MonthNow = 9
}
If (Month = "Октябрь") {
  MonthNow = 10
}
If (Month = "Ноябрь") {
  MonthNow = 11
}
If (Month = "Декабрь") {
  MonthNow = 12
}
Return

; ==============================================================================
; ============= Метка выбора денежной единицы
gui:
If (FirstStart = "1") {
  Gosub, Start
}
Else {
Money:
  Gosub, Save
  Gui, Destroy, 
  Gui, +AlwaysOnTop
  Gui, Add, Text , , Выберите Денежную Единицу
  Gui, Add, DropDownList,w100 r3 vDropDownList1 gDropDownList1, %Slot1_16%|%Slot1_17%|%Slot1_18%
  Gui, Show, , Выбор Денежной Единицы
  Gui, -Caption ; Убираем Границы окна
  Return
}
Return
DropDownList1:
    Gui, Submit, NoHide
    UE := % DropDownList1
    LCU = 2
    Loop 12 {
      Line%LCU% := UE
      LCU += 42
    }
    Gui, Destroy, 
    Gosub, Start
return
; ==============================================================================

Start:
Gosub, Gui1
Gosub, In
Return

; ==============================================================================
; ========================Загрузка основного окна Гуи
Gui1:
If UE = 0
    Goto, gui
GUI,font,s8
Menu, Properties, Add, &Изменить Денежную Еденицу, Money
Menu, Properties, Add, &Изменить Пароль, PasswordChange
Menu, FileMenu, Add, &Открыть Другой Месяц, Chenge
Menu, FileMenu, Add, &Настройки, :Properties
Menu, FileMenu, Add, &Выход, GuiClose
Menu, HelpMenu, Add, &Описание, MenuHandler
Menu, MyMenuBar, Add, &Меню, :FileMenu  ; Присоединяем два подменю, созданные выше.
Menu, MyMenuBar, Add, &Помощь, :HelpMenu
Gui, Menu, MyMenuBar
Gui, Add, Text, x182 y2 w130 h20 , Домашняя Бухгалтерия 
Gui, Add, Edit, x32 y52 w90 h20 vInput gIn, %Input%
Gui, Add, Edit, x162 y52 w70 h20 vInput1 gIn, %Input1%
Gui, Add, Edit, x262 y52 w70 h20 vInput2 gIn, %Input2%
Gui, Add, Edit, x362 y52 w70 h20 vInput3 gIn, %Input3%
Gui, Add, Text, x332 y82 w90 h20 vInput_All, % Input_All SpaseS UE
Gui, Add, GroupBox, x12 y12 w460 h100 , ДОХОДЫ за %Month% Месяц
Gui, Add, Text, x162 y32 w90 h20 , Доп. Доход 1
Gui, Add, Text, x262 y32 w90 h20 , Доп. Доход 2
Gui, Add, Text, x362 y32 w90 h20 , Доп. Доход 3
Gui, Add, Text, x122 y52 w30 h20 , % UE
Gui, Add, Text, x232 y52 w30 h20 , % UE
Gui, Add, Text, x332 y52 w30 h20 , % UE
Gui, Add, Text, x22 y32 w110 h20 , Основной Доход
Gui, Add, Text, x432 y52 w30 h20 , % UE
Gui, Add, Text, x252 y82 w80 h20 , Общий Доход
Gui, Add, Button, x22 y132 w70 h20 gКвартплата, Квартплата
Gui, Add, Text, x172 y132 w70 h20 vOut1 gIn, % Out1 SpaseS UE
Gui, Add, Text, x22 y152 w70 h20 , Питание
Gui, Add, Edit, x172 y152 w50 h20 vOut2 gIn, %Out2%
Gui, Add, Text, x22 y172 w70 h20 , Бензин
Gui, Add, Edit, x172 y172 w50 h20 vOut3 gIn, %Out3%
Gui, Add, Text, x22 y192 w70 h20 , Транспорт
Gui, Add, Edit, x172 y192 w50 h20 vOut4 gIn, %Out4%
Gui, Add, Text, x22 y212 w80 h20 , Медикаменты
Gui, Add, Edit, x172 y212 w50 h20 vOut5 gIn, %Out5%
Gui, Add, Text, x22 y232 w80 h20 , Развлечения
Gui, Add, Edit, x172 y232 w50 h20 vOut6 gIn, %Out6%
Gui, Add, Edit, x172 y252 w50 h20 vOut7 gIn, %Out7%
Gui, Add, Edit, x172 y272 w50 h20 vOut8 gIn, %Out8%
Gui, Add, Edit, x172 y292 w50 h20 vOut9 gIn, %Out9%
Gui, Add, Edit, x382 y132 w50 h20 vOut10 gIn, %Out10%
Gui, Add, Edit, x382 y152 w50 h20 vOut21 gIn, %Out21%
Gui, Add, Edit, x382 y172 w50 h20 vOut12 gIn, %Out12%
Gui, Add, Edit, x382 y192 w50 h20 vOut13 gIn, %Out13%
Gui, Add, Edit, x382 y212 w50 h20 vOut14 gIn, %Out14%
Gui, Add, Edit, x382 y232 w50 h20 vOut15 gIn, %Out15%
Gui, Add, Edit, x382 y252 w50 h20 vOut16 gIn, %Out16%
Gui, Add, Edit, x382 y272 w50 h20 vOut17 gIn, %Out17%
Gui, Add, Edit, x382 y292 w50 h20 vOut18 gIn, %Out18%
Gui, Add, Text, x332 y342 w80 h20 , % Out_All SpaseS UE
Gui, Add, Edit, x22 y252 w140 h20 vДоп_Расход_1 gInt, %Доп_Расход_1%
Gui, Add, Edit, x22 y272 w140 h20 vДоп_Расход_2 gInt, %Доп_Расход_2%
Gui, Add, Edit, x22 y292 w140 h20 vДоп_Расход_3 gInt, %Доп_Расход_3%
Gui, Add, Edit, x252 y132 w120 h20 vДоп_Расход_4 gInt, %Доп_Расход_4%
Gui, Add, Edit, x252 y152 w120 h20 vДоп_Расход_5 gInt, %Доп_Расход_5%
Gui, Add, Edit, x252 y172 w120 h20 vДоп_Расход_6 gInt, %Доп_Расход_6%
Gui, Add, Edit, x252 y192 w120 h20 vДоп_Расход_7 gInt, %Доп_Расход_7%
Gui, Add, Edit, x252 y212 w120 h20 vДоп_Расход_8 gInt, %Доп_Расход_8%
Gui, Add, Edit, x252 y232 w120 h20 vДоп_Расход_9 gInt, %Доп_Расход_9%
Gui, Add, Edit, x252 y252 w120 h20 vДоп_Расход_10 gInt, %Доп_Расход_10%
Gui, Add, Edit, x252 y272 w120 h20 vДоп_Расход_11 gInt, %Доп_Расход_11%
Gui, Add, Edit, x252 y292 w120 h20 vДоп_Расход_12 gInt, %Доп_Расход_12%
Gui, Add, Text, x332 y322 w100 h20 , ИТОГО РАСХОДЫ:
Gui, Add, GroupBox, x12 y112 w460 h260 , РАСХОДЫ за %Month% Месяц
Gui, Add, GroupBox, x12 y372 w460 h80 , ОСТАТОК за %Month% Месяц
Gui, Add, Text, x32 y392 w150 h20 , Чистая прибыль за месяц:
Gui, Add, Text, x36 y410 w90 h20 , % CashNow SpaseS UE
Gui, Add, Text, x222 y152 w30 h20 , % UE
Gui, Add, Text, x222 y172 w30 h20 , % UE
Gui, Add, Text, x222 y192 w30 h20 , % UE
Gui, Add, Text, x222 y212 w30 h20 , % UE
Gui, Add, Text, x222 y232 w30 h20 , % UE
Gui, Add, Text, x222 y252 w30 h20 , % UE
Gui, Add, Text, x222 y272 w30 h20 , % UE
Gui, Add, Text, x222 y292 w30 h20 , % UE
Gui, Add, Text, x432 y132 w30 h20 , % UE
Gui, Add, Text, x432 y152 w30 h20 , % UE
Gui, Add, Text, x432 y172 w30 h20 , % UE
Gui, Add, Text, x432 y192 w30 h20 , % UE
Gui, Add, Text, x432 y212 w30 h20 , % UE
Gui, Add, Text, x432 y232 w30 h20 , % UE
Gui, Add, Text, x432 y252 w30 h20 , % UE
Gui, Add, Text, x432 y272 w30 h20 , % UE
Gui, Add, Text, x432 y292 w30 h20 , % UE
Gui, 1:Show, x396 y175 h455 w479, % WinName
XXStart = 1
ИтогоКвартплата := % Свет + Газ + Вода + Комун
Out1 = % ИтогоКвартплата
Gui, Font, cBlue
GuiControl, Font, Static12
GuiControl,,Static12,% Out1 SpaseS UE
Gosub, ReCountInput 
Return
; ==============================================================================

; ==============================================================================
; ============================ Метка относится к меню - Описание 
MenuHandler:
Gosub, 99GuiClose
MigoLink := "http://migo.ucoz.ru"
ForumLink := "http://forum.script-coding.com"
About =
(
Возможности программы:
 1. Ведение учета основных расходов, за 12 месяцев.
 2. Парольная защита (конечно, от взлома это не защитит, но все равно - лучше чем ничего).
 3. Есть возможность смены Денежной единицы  (см. Меню)
 4. Есть возможность переходить от месяца к месяцу. (см. Меню)
 5. Есть возможность смены пароля. (см. Меню)
 6. Данные регистрируются автоматически
)
Gui, 99: +ToolWindow
GUI,font,s6
Gui, 99:add, text, ,%About%
Gui, 99:add, text, cBlue gMigoLink , www.migo.ucoz.ru
Gui, 99:add, text, cBlue gForumLink , www.forum.script-coding.com
Gui, 99:Show, AutoSize, %WinName% - Описание
return

99GuiClose:
  Gui, 99:Destroy
Return
MigoLink:
  Run, http://migo.ucoz.ru
Return
ForumLink:
  Run, http://forum.script-coding.com/
Return
; ==============================================================================
; ==============================================================================

In:
Gosub, InCheck
Gosub, ReCountInput 
Return

Int:
Gui, 1:Submit, NoHide
Return

; ==============================================================================
; ========================Проверка, является ли введенные символи Числом
InCheck:
    GuiControlGet, CurrValue,, %A_GuiControl%
    If CurrValue Is Number
    {
        Gui, Font, cBlue
        GuiControl, Font, %A_GuiControl% ; ===Если введенный символ - Число - Задать синий цвет Шрита
    } Else {
        Gui, Font, cRed
        GuiControl, Font, %A_GuiControl% ; ===Если введенный символ - Не Число -  Задать красный цвет, и переменные игнорируют ввод
        Exit
    }
Return
; ==============================================================================
; ==============================================================================

; ==============================================================================
; ========================арифметические действия
ReCountInput:
Gui, 1:Submit, NoHide
Input_All := Input + Input1 + Input2 + Input3
CashNow := Input_All - Out1 - Out2 - Out3 - Out4 - Out5 - Out6 - Out7 - Out8 - Out9 - Out10 - Out21 - Out12 - Out13 - Out14 - Out15 - Out16 - Out17 - Out18
Out_All := Out1 + Out2 + Out3 + Out4 + Out5 + Out6 + Out7 + Out8 + Out9 + Out10 + Out21 + Out12 + Out13 + Out14 + Out15 + Out16 + Out17 + Out18
Gui, Font, cBlue
GuiControl, Font, Static2
GuiControl,,Static2,% Input_All SpaseS UE
Gui, Font, cBlue
GuiControl, Font, Static18
GuiControl,,Static18,% Out_All SpaseS UE
Gui, Font, cBlue
GuiControl, Font, Static21
GuiControl,,Static21,% CashNow SpaseS UE
Return
; ==============================================================================
; ==============================================================================

; ==============================================================================
; =======================Раздел промежуточного сохранения данных из рабочих переменных окна гуи, в переменных сохранения в базе
Save:
LC := MonthNow * 42 - 42
LC += 1, Line%LC% := PasswordCheck
LC += 1, Line%LC% := UE
LC += 1, Line%LC% := Input
LC += 1, Line%LC% := Input1
LC += 1, Line%LC% := Input2
LC += 1, Line%LC% := Input3
LC += 1, Line%LC% := Out1
LC += 1, Line%LC% := Out2
LC += 1, Line%LC% := Out3
LC += 1, Line%LC% := Out4
LC += 1, Line%LC% := Out5
LC += 1, Line%LC% := Out6
LC += 1, Line%LC% := Out7
LC += 1, Line%LC% := Out8
LC += 1, Line%LC% := Out9
LC += 1, Line%LC% := Out10
LC += 1, Line%LC% := Out19
LC += 1, Line%LC% := Out21
LC += 1, Line%LC% := Out12
LC += 1, Line%LC% := Out13
LC += 1, Line%LC% := Out14
LC += 1, Line%LC% := Out15
LC += 1, Line%LC% := Out16
LC += 1, Line%LC% := Out17
LC += 1, Line%LC% := Out18
LC += 1, Line%LC% := CashNow
LC += 1, Line%LC% := Свет
LC += 1, Line%LC% := Газ
LC += 1, Line%LC% := Вода
LC += 1, Line%LC% := Комун
LC += 1, Line%LC% := Доп_Расход_1
LC += 1, Line%LC% := Доп_Расход_2
LC += 1, Line%LC% := Доп_Расход_3
LC += 1, Line%LC% := Доп_Расход_4
LC += 1, Line%LC% := Доп_Расход_5
LC += 1, Line%LC% := Доп_Расход_6
LC += 1, Line%LC% := Доп_Расход_7
LC += 1, Line%LC% := Доп_Расход_8
LC += 1, Line%LC% := Доп_Расход_9
LC += 1, Line%LC% := Доп_Расход_10
LC += 1, Line%LC% := Доп_Расход_11
LC += 1, Line%LC% := Доп_Расход_12
Return
; ==============================================================================
; ==============================================================================

; ==============================================================================
; ============== В случае закрытия скрипта, или выхода из него, данные базы данных, записываются последовательно в одну переменную
SaveExit:
MonthNow = 1
Count = 0
VAL .= "[Month" MonthNow "]" "`n"
Loop 504 {
    Count += 1
    Line := Line%A_Index%
    VAL_%A_Index%_%MonthNow% := Line%A_Index%
    VAL .= "VAL_" A_Index "_" MonthNow "=" Line "`n"
    If Count >= 42
        {
         MonthNow += 1
         Count = 0
         VAL .= "[Month" MonthNow "]" "`n"
         }
}
Gosub, Encrypt ; == Зашифровуем базу данных перед сохранением в файл
FileAppend, %VAL%, %A_ScriptDir%\DataBase\params.buh
ExitApp

; ==============================================================================
; ==============================================================================

GuiClose:
  MsgBox, 4, Выход из Программы, Вы действительно хотите закрыть программу??, 10
    IfMsgBox Yes
    {
      FileDelete, %A_ScriptDir%\DataBase\params.buh
      Gosub, Save
      Gui, Destroy
      Goto, SaveExit
    }
    else
        Return
; ==============================================================================
; ===================== Квартплата ================
Квартплата:
СветВнесен = 0
If СветВнесен = 0
{
InputBox, Свет, Оплата За Свет, %Свет%, , 200 , 100, 300, 200, , 120,%Свет%
ГазВнесен = 0
}
If ГазВнесен = 0
{
InputBox, Газ, Оплата За Газ, %Газ%, , 200 , 100, 300, 200, , 120,%Газ%
ВодаВнесен = 0
}
If ВодаВнесен = 0
{
InputBox, Вода, Оплата За Воду,%Вода% , , 200 , 100, 300, 200, , 120, %Вода%
КомунВнесен = 0
}
If КомунВнесен = 0
{
InputBox, Комун, Оплата За Комунальные Услуги,%Комун% , , 300 , 100, 300, 200, , 120, %Комун%
Просчеты = 0
}
If Просчеты = 0
{
ИтогоКвартплата := % Свет + Газ + Вода + Комун
MsgBox,Оплата за Свет  %Свет% %UE% `nОплата за Газ  %Газ% %UE% `nОплата за Воду  %Вода% %UE% `nОплата за Комунальные Услуги  %Комун% %UE% `n `n            Итого:  %ИтогоКвартплата% %UE%
Out1 = % ИтогоКвартплата
Gui, Font, cBlue
GuiControl, Font, Static12
GuiControl,,Static12,% Out1 SpaseS UE
Gosub, ReCountInput 
}
Return
; ==============================================================================
; ==============================================================================

Chenge:
  Gui, Destroy, 
  Gosub, Save
  Gosub, gui8
Return

; ==============================================================================
; ===============================Шифрование данных 
Encrypt:
Key = 185    ; Ключ шифра — число не более 255.
Shifr =
Loop, Parse, VAL                 ; Шифровка.
{
  Code := Asc(A_LoopField)
  Shifr .= Chr(Code = Key ? Key : Key ^ Code)
}
VAL := "", VAL := Shifr
Return

DEcrypt:
Key = 185    ; Ключ шифра — число не более 255.
Text =
Loop, Parse, VAL    ; Расшифровка.
{
  Code := Asc(A_LoopField)
  Text .= Chr(Code = Key ? Key : Key ^ Code)
}
VAL := "", VAL := Text
Return

Описание:
Программа Домашняя Бухгалтерия 2.06 создана для ведения учета личных расходов.

Возможности программы:
1. Ведение учета основных расходов, за 12 месяцев.
2. Парольная защита (конечно, от взлома это не защитит, но все равно - лучше чем ничего).
3. Есть возможность смены Денежной единицы  (см. Меню)
4. Есть возможность переходить от месяца к месяцу. (см. Меню)
5. Есть возможность смены пароля. (см. Меню)
6. Данные регистрируются автоматически

Отдельное спасибо за помощь в написании скрипта:
YMP, teadrinker, Nellex

Post's attachments

HomeBookkeepingv2.06.zip 201.4 kb, 613 downloads since 2009-05-22 

You don't have the permssions to download the attachments of this post.
AutoHotKey Version: 1.1.09.02
Не спеши, а то успеешь..