Scripts discussion (1)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Infocatcher
или нужен флаг для включения "тихого режима" открытия файлов?

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Проверить файл на бинарность.

Code: Select all

var hMainWnd=AkelPad.GetMainWnd();

WScript.Echo("" + IsFileBinary("c:\\COMMAND.COM"));

function IsFileBinary(pFile)
{
  var lpDetectCodepage;
  var bResult=false;

  if (lpDetectCodepage=AkelPad.MemAlloc(_X64?24:20 /*sizeof(DETECTCODEPAGEW)*/))
  {
    AkelPad.MemCopy(lpDetectCodepage /*offsetof(DETECTCODEPAGEW, pFile)*/, AkelPad.MemStrPtr(pFile), 2 /*DT_QWORD*/);
    AkelPad.MemCopy(lpDetectCodepage + (_X64?8:4) /*offsetof(DETECTCODEPAGEW, dwBytesToCheck)*/, 1024, 3 /*DT_DWORD*/);
    AkelPad.MemCopy(lpDetectCodepage + (_X64?12:8) /*offsetof(DETECTCODEPAGEW, dwFlags)*/, 0x11 /*ADT_BINARY_ERROR|ADT_NOMESSAGES*/, 3 /*DT_DWORD*/);
    if (AkelPad.SendMessage(hMainWnd, 1177 /*AKD_DETECTCODEPAGEW*/, 0, lpDetectCodepage) == -4 /*EDT_BINARY*/)
      bResult=true;

    AkelPad.MemFree(lpDetectCodepage);
  }
  return bResult;
}

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor
Спасибо, утащил. :)
Last edited by Infocatcher on Fri Feb 04, 2011 7:34 pm, edited 2 times in total.

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Instructor
спасибо Вам

Infocatcher
и Вам

:D

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Кстати, где обычно хранятся всякие там windows.h? А то у меня еще со времен прошлой переустановки студии нет. :)

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Infocatcher
Зависит от студии.
(для Microsoft C++ Professional 5.0 не даю, оно с Windows 2000 не своместимо )

Для MSVC 6 всё в куче(вместе с crt)
<studio_path>\VC98\Include

Для MSVC 7(2002) и MSVC 7.1(2003)
<studio_path>\VC\PlatformSDK\Include

Для MSVC 8,9,10 (2005,2008,2010) в MS попытались навести порядок и ложат PlatformSDK(прошу прощения они в очередной раз его переименовали в Windows SDK) по стандартному пути установки последнего: %programfiles%\Microsoft SDKs\Windows\версия\include
Мною замечены такие значения версии
v5.0 для WindowsXP SP2 Windows2K3 максимум (WINVER И _WIN32_WINNT <= 0x0502)
v6.0a для выше + Vista (WINVER и _WIN32_WINNT <= 0x0600)
Эти двое(выше) устанавливает 2008 студия точно.
v7.0 и v7.1 Windows 7 WINVER и _WIN32_WINNT <= 0x0601
Эту пару я достал из инсталлятора PlatformSDK чего Вам рекомендую тоже(его воровать не надо).
Я лично пользуюсь MS Platform SDK 2003, а для MSVC 6 приходиться доставать MS Platform SDK 2000 (ибо в 2003 появились *_PTR типы, которые не совсем желают мирится с libcrt от студии)

Также можно заголовки стянуть из Windows DDK(тоже бесплатное) ну и из mingw32(для того что-бы не париться с дебрями msys рекомендую скачать DevCpp либо Code::Blocks IDE)
(Ссылки на MS не дам, ибо всё что смог найти - недобитые WEB-инсталяторы, а остальное гуглится с первого раза)

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

FeyFre
Бардак, однако. :)
А идея была – добавить в openRelativeFile.js путь, по которому лежат эти «стандартные» инклуды.

Offline
Posts: 2
Joined: Fri Feb 04, 2011 10:46 pm

Post by Doctor »

Здравствуйте!

Решил набросать скриптик, чтобы запускать расчеты прямо из AkelPad'a, но он вдруг споткнулся на банальном

Code: Select all

Set objShell = WScript.CreateObject("WScript.Shell") 

Code: Select all

"Объект не поддерживает данное свойство или метод (CreateObject)"
:o

Скажите, это баг или фича? :) И как это можно обойти?
Ах да: AkelPad х32, все обновлено сегодня в час ночи, Вин7 х64.

P.S. Кстати, никому не нужна подсветка синтаксиса (бета:) ) для инпут-файлов программы "priroda" Д. Лайкова?))

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Doctor
Try this:
set objShell = CreateObject("WScript.shell")

Offline
Posts: 2
Joined: Fri Feb 04, 2011 10:46 pm

Post by Doctor »

KDJ
Oh, thanks man, it does work! :)

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

openRelativeFile.js
Исправлено зацикливание в начале и в конце файла, добавлено ограничение на длину пути.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Добавлено пару новых опций в скрипты ChmKeyword.js, ShiftTabSize.js, ShiftMarker.js

Благодарность за код функции getArg Infocatcher'у.

Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Instructor wrote:ShiftMarker.js
Опечатка:
// -"Set marker to 8" Call("Scripts::Main", 1, "ShiftMarker.js", `80`)
// -"Set marker to 8 locally" Call("Scripts::Main", 1, "ShiftMarker.js", `80 -Local=true`)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Infocatcher
Подправил.

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

Infocatcher
нужно подправить:
"%UserProfile%\\Local Settings\Application Data\\Google\\Chrome\\Application\\chrome.exe",
а ещё добавить вот такую строку, как-никак, а вариант "со вкусом яндекса" всё же встречается:

Code: Select all

"%UserProfile%\\Local Settings\\Application Data\\Bromium\\Application\\chrome.exe",
Locked