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;
}
Posted: Fri Feb 04, 2011 7:30 pm
by Infocatcher
Instructor
Спасибо, утащил.
Posted: Fri Feb 04, 2011 7:31 pm
by se7h
Instructor
спасибо Вам
Infocatcher
и Вам
Posted: Fri Feb 04, 2011 7:34 pm
by Infocatcher
Кстати, где обычно хранятся всякие там windows.h? А то у меня еще со времен прошлой переустановки студии нет.
Posted: Fri Feb 04, 2011 8:52 pm
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-инсталяторы, а остальное гуглится с первого раза)
Posted: Fri Feb 04, 2011 9:01 pm
by Infocatcher
FeyFre
Бардак, однако.
А идея была – добавить в openRelativeFile.js путь, по которому лежат эти «стандартные» инклуды.
Posted: Fri Feb 04, 2011 11:13 pm
by Doctor
Здравствуйте!
Решил набросать скриптик, чтобы запускать расчеты прямо из AkelPad'a, но он вдруг споткнулся на банальном