Цитата:
Сообщение от
Gustav
Идя навстречу пожеланиям Ивана, полез в Registry
Алгоритм "залезания" такой (цитирую
отсюда):
ВАЖНО: Нужно быть админом на машине, где вы меняете это значение TypeGuessRows. В противном случае при попытке изменить дефолтное значение "8" на другое вы получите сообщение вида "Cannot edit TypeGuessRows: Error writing the value's new contents"
Так вот, через Registry - РАБОТАЕТ!
Freeangel, измените у себя на "3" (по количеству ваших трёх первых текстовых значений) и должно вам выйти счастье
Вот небольшой job для авто изменения этого ключа.
Я не знаю, где еще используется значение этого ключа, поэтому не хотелось бы рисковать лишний раз, изменяя его перманентно.
Поэтому советую вставить вот этот код перед импортом. А потом такой же после, меняя значение назад.
Единственное, что смущает - это необходимые права на изменение ключей реестра.
X++:
static void changeRegTypeGuessRows(Args _args)
{
#winapi
#define.ExcelJetEnginePath('SOFTWARE\\Microsoft\\Jet\\4.0\\Engines\\Excel\\')
container res;
int regHandle;
int newValue = 8;
;
regHandle = winapi::regOpenKey(#HKEY_LOCAL_MACHINE, #ExcelJetEnginePath, #KEY_QUERY_VALUE);
if (regHandle)
res = winapi::regGetValue(regHandle, 'TypeGuessRows');
if (res)
info(strFmt("Old Value %1", con2str(res, '\n')));
regHandle = winapi::regOpenKey(#HKEY_LOCAL_MACHINE, #ExcelJetEnginePath, #KEY_SET_VALUE);
if (regHandle)
info(strFmt("Result code of changing value of TypeGuessRows to %2 is %1",
winapi::regSetValueEx(regHandle, 'TypeGuessRows', #REG_DWORD, newValue), newValue));
regHandle = winapi::regOpenKey(#HKEY_LOCAL_MACHINE, #ExcelJetEnginePath, #KEY_QUERY_VALUE);
if (regHandle)
res = winapi::regGetValue(regHandle, 'TypeGuessRows');
if (res)
info(strFmt("New Value %1", con2str(res, '\n')));
}