![]() |
#14 |
Участник
|
Цитата:
Сообщение от Gustav
![]() Идя навстречу пожеланиям Ивана, полез в Registry
![]() Алгоритм "залезания" такой (цитирую отсюда): ВАЖНО: Нужно быть админом на машине, где вы меняете это значение TypeGuessRows. В противном случае при попытке изменить дефолтное значение "8" на другое вы получите сообщение вида "Cannot edit TypeGuessRows: Error writing the value's new contents" Так вот, через Registry - РАБОТАЕТ! Freeangel, измените у себя на "3" (по количеству ваших трёх первых текстовых значений) и должно вам выйти счастье ![]() Я не знаю, где еще используется значение этого ключа, поэтому не хотелось бы рисковать лишний раз, изменяя его перманентно. Поэтому советую вставить вот этот код перед импортом. А потом такой же после, меняя значение назад. Единственное, что смущает - это необходимые права на изменение ключей реестра. ![]() 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'))); } |
|