Page 1 of 1

Как определить включена ли опция (чекбокс пункта меню)

Posted: Tue Jan 29, 2019 11:12 am
by Eskander88
Добрый день!

Для корректной работы скрипта необходимо определять включена ли опция (чекбокс пункта меню) в AkelPad, чтобы избежать сбоев в работе программы.

Code: Select all

// Если галочка снята с пункта "AP строка меню\Настройки\Не открывать программу дважды"
// то AkelPad зависнет
AkelPad.Command(4256); // Не открывать программу дважды (вкл\выкл)
AkelPad.Command(4102); // Создать новую копию программы
AkelPad.Command(4256); // Не открывать программу дважды (вкл\выкл)
Подскажите существует ли инструкцию в коде, чтобы определить включена ли опция «Не открывать программу дважды»?

Re: Как определить включена ли опция (чекбокс пункта меню)

Posted: Tue Jan 29, 2019 11:46 am
by opk44
Eskander88 wrote:Подскажите существует ли инструкцию в коде, чтобы определить включена ли опция «Не открывать программу дважды»?
См. как это реализовано, например, в скрипте ForceNewInstance.js

Posted: Tue Jan 29, 2019 2:20 pm
by Eskander88
Спасибо! Получилось

Code: Select all

var hMainWnd=AkelPad.GetMainWnd();
  if (AkelPad.SendMessage(hMainWnd, 1222 /*AKD_GETMAININFO*/, 153 /*MI_SINGLEOPENPROGRAM*/, 0))
  {
    AkelPad.Command(4256 /*IDM_OPTIONS_SINGLEOPEN_PROGRAM*/);
    hNewMainWnd=AkelPad.Command(4102 /*IDM_FILE_CREATENEW*/);
    AkelPad.Command(4256 /*IDM_OPTIONS_SINGLEOPEN_PROGRAM*/);
    AkelPad.SendMessage(hNewMainWnd, 273 /*WM_COMMAND*/, 4256 /*IDM_OPTIONS_SINGLEOPEN_PROGRAM*/, 0);
  }
  else hNewMainWnd=AkelPad.Command(4102 /*IDM_FILE_CREATENEW*/);