Zloy_Gelud
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору PAVELNEXT Плагин GlobalTimer выносит проект напрочь при попытке записать данные в инишник. Так что предлагаю пойти обходными путями, а именно такими: Глобальные функции: Код: local sOnTimerScript = [[ if e_ID == 1010 then local tPos = Window.GetPos(hWnd); local tSize = Window.GetSize(hWnd); if tPos and tSize then INIFile.SetValue(_SourceFolder.."\\Settings.ini", "Position", "X", tPos.X); INIFile.SetValue(_SourceFolder.."\\Settings.ini", "Position", "Y", tPos.Y); INIFile.SetValue(_SourceFolder.."\\Settings.ini", "Size", "Width", tSize.Width); INIFile.SetValue(_SourceFolder.."\\Settings.ini", "Size", "Height", tSize.Height); else Page.StopTimer(1010); end end]] local tPages = Application.GetPages(); for i = 1, #tPages do local sOldTimerScript = Application.GetPageScript(tPages[i], "On Timer"); if sOldTimerScript ~= "" then Application.SetPageScript(tPages[i], "On Timer", sOldTimerScript.."\r\n"..sOnTimerScript); else Application.SetPageScript(tPages[i], "On Timer", sOnTimerScript); end end | On Click кнопки запуска программы (калькулятора): Код: File.Run(_SystemFolder.."\\calc.exe", "", _SystemFolder, SW_SHOWNORMAL, false); repeat hWnd = tonumber(DLL.CallFunction("user32.dll", "FindWindowA", "\"SciCalc\",0", DLL_RETURN_TYPE_INTEGER, DLL_CALL_STDCALL)); if hWnd ~= 0 then local nX, nY, nWidth, nHeight if File.DoesExist(_SourceFolder.."\\Settings.ini") then nX = tonumber(INIFile.GetValue(_SourceFolder.."\\Settings.ini", "Position", "X")); nY = tonumber(INIFile.GetValue(_SourceFolder.."\\Settings.ini", "Position", "Y")); nWidth = tonumber(INIFile.GetValue(_SourceFolder.."\\Settings.ini", "Size", "Width")); nHeight = tonumber(INIFile.GetValue(_SourceFolder.."\\Settings.ini", "Size", "Height")); else nX, nY, nWidth, nHeight = 10, 10, 200, 200 -- дефолтовые значения INIFile.SetValue(_SourceFolder.."\\Settings.ini", "Position", "X", nX); INIFile.SetValue(_SourceFolder.."\\Settings.ini", "Position", "Y", nY); INIFile.SetValue(_SourceFolder.."\\Settings.ini", "Size", "Width", nWidth); INIFile.SetValue(_SourceFolder.."\\Settings.ini", "Size", "Height", nHeight); end Window.SetPos(hWnd, nX, nY); Window.SetSize(hWnd, nWidth, nHeight); end until hWnd ~= 0 Page.StartTimer(100, 1010); |
|