View previous topic :: View next topic |
Author |
Message |
Дениска
Joined: 26 Feb 2002 Posts: 649
|
Posted: 01 Oct 2007 17:19 Post subject: Путь к Моим документам |
|
|
Как в БЭСТ-е получить путь до "Мои документы" под ВинХР? |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 01 Oct 2007 18:54 Post subject: |
|
|
О каком БЭСТе идет речь ? |
|
Back to top |
|
|
grey
Joined: 12 Jan 2004 Posts: 297 Location: Родионов С.Г. Occupation: ООО Бухгалтер, программист Interests: Набережные Челны
|
Posted: 01 Oct 2007 21:37 Post subject: |
|
|
В общем случае
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
параметр personal _________________ http://grey-soft.narod.ru - примочки к программам серии БЭС |
|
Back to top |
|
|
Дениска
Joined: 26 Feb 2002 Posts: 649
|
Posted: 02 Oct 2007 04:53 Post subject: |
|
|
nordk wrote: | О каком БЭСТе идет речь ? |
Речь идет о Б5 3.3 СП32 и о Б4+12.01 СП39, которые стоят под WinXP SP2 |
|
Back to top |
|
|
Дениска
Joined: 26 Feb 2002 Posts: 649
|
Posted: 02 Oct 2007 05:46 Post subject: |
|
|
grey wrote: | В общем случае
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
параметр personal |
Спасибо! Осталось только выяснить, как в БЭСТ-е это значение получить ... |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 02 Oct 2007 11:15 Post subject: |
|
|
Code: | GetRegistry( nHKEYHandle, cKeyName, cEntryName ) |
|
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 02 Oct 2007 11:23 Post subject: |
|
|
Виноват
Похоже функции Winreg* отсутствуют в харборе БЭСТа |
|
Back to top |
|
|
Дениска
Joined: 26 Feb 2002 Posts: 649
|
Posted: 02 Oct 2007 16:52 Post subject: |
|
|
nordk wrote: | Виноват
Похоже функции Winreg* отсутствуют в харборе БЭСТа |
Я правильно понял, что функция GetRegistry в БЭСТ-е не работает? А можно ее включить в БЭСТ в ближайших пакетах? Хотя бы в БЭСТ5 для начала ... Или можно другим способом путь до "Моих документов" получить? |
|
Back to top |
|
|
Титов Александр
Joined: 26 Jul 2002 Posts: 975 Location: Титов Александр Александрович Occupation: Компания БЭСТ Interests: Москва
|
Posted: 02 Oct 2007 17:18 Post subject: |
|
|
Дениска wrote: | nordk wrote: | Виноват
Похоже функции Winreg* отсутствуют в харборе БЭСТа |
Я правильно понял, что функция GetRegistry в БЭСТ-е не работает? А можно ее включить в БЭСТ в ближайших пакетах? Хотя бы в БЭСТ5 для начала ... Или можно другим способом путь до "Моих документов" получить? |
Добрый день!
Попробуйте на таком примере (чтение номера SP в БЭСТе):
Code: |
#define HKEY_LOCAL_MACHINE 0x80000002
#define HKEY_CLASSES_ROOT 0x80000000
#define HKEY_USERS 0x80000003
#define HKEY_CURRENT_USER 0x80000001
#define HKEY_NO_KEY 0x00000000
#define KEY_READ 0x20019
#define REG_SZ 1
#define REG_DWORD 4
cRegKey:="SOFTWARE\BEST\BEST5\33"
hKey := 0
vName:="SP"
vtype := 0
vdata := 0
vcbdata := 0
if REGOPENKEYEX(HKEY_LOCAL_MACHINE,cRegKey, 0, KEY_READ, @hKey) != 0 //только на чтение
REGQUERYVALUEEX(hKey, vName, 0, @vtype, @vdata, @vcbdata)
endif
DO CASE
CASE vtype == REG_SZ
vData := SUBSTR( vData, 1, vcbdata - 1 )
CASE vtype == REG_DWORD
vData := BIN2L( vData )
ENDCASE
RETURN vData
|
_________________ С уважением, Александр Титов, Компания БЭСТ, Москва, отдел разрабо |
|
Back to top |
|
|
Дениска
Joined: 26 Feb 2002 Posts: 649
|
Posted: 04 Oct 2007 07:27 Post subject: |
|
|
Спасибо! С помощью REGOPENKEYEX и REGQUERYVALUEEX путь получен Только в Б4 эти функции не работают, но в данный момент для меня это не принципиально.
Подскажите, а где в Б5 надо писать #define? |
|
Back to top |
|
|
nordk
Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
|
Posted: 04 Oct 2007 10:24 Post subject: |
|
|
Как и в БЭСТ-4 в начале исходника (до FUNCTION) |
|
Back to top |
|
|
Behemoth
Joined: 15 Mar 2002 Posts: 155 Location: Новиков Алексей Юрьевич Occupation: ПБОЮЛ Interests: Пермь
|
Posted: 23 Oct 2007 20:33 Post subject: |
|
|
Дениска wrote: | Только в Б4 эти функции не работают, но в данный момент для меня это не принципиально. |
А мне вот понадобилось. Так как в БЭСТ-4+ получить путь к папке "Мои документы"? Нет, я конечно могу с помощью regedit экспортировать весь раздел, а затем проанализировать текстовый файл. Но как-то это некрасиво. _________________ С уважением, Новиков Алексей. |
|
Back to top |
|
|
EJ
Joined: 24 Aug 2005 Posts: 47 Location: цЙМЕОЛП еЧЗЕОЙК аТШЕЧЙЮ Occupation: уЙУФЕНОЩК БДНЙОЙУФТБФПТ Interests: нПУЛЧБ
|
Posted: 24 Oct 2007 08:22 Post subject: |
|
|
Можно создать системную переменную, а чтобы "не промазать", указать в ней путь тоже с использованием переменных, например
set MyDocuments=%HomeDrive%\%HomePath%\Мои документы или для 98-го вообще "в наглую"
set MyDocuments=C:\Мои документы
Вообще-то она может и самой операционкой создаваться, не помню , и если так, то выглядит типа "MyDocuments"( %MyDocuments% ). |
|
Back to top |
|
|
grey
Joined: 12 Jan 2004 Posts: 297 Location: Родионов С.Г. Occupation: ООО Бухгалтер, программист Interests: Набережные Челны
|
Posted: 24 Oct 2007 09:46 Post subject: |
|
|
Behemoth wrote: | Дениска wrote: | Только в Б4 эти функции не работают, но в данный момент для меня это не принципиально. |
А мне вот понадобилось. Так как в БЭСТ-4+ получить путь к папке "Мои документы"? Нет, я конечно могу с помощью regedit экспортировать весь раздел, а затем проанализировать текстовый файл. Но как-то это некрасиво. |
Можно попробовать так:
Ложим в bin эту dll:
grey-soft.narod.ru/winreg.dll
stdcall функция getpersonal возвращает значение нужного ключа реестра.
Вызвать dll можно с помощью следующего кода
#define DC_CALL_STD 0x0020 // __stdcall
Local hDLL, pAddr, err;
hDll := Loadlibrary("winreg.dll");
pAddr := GetProcAddress(hDll,"getpersonal",);
calldll(hDll,pAddr,DC_CALL_STD,,);
FreeLibrary(hdll);
Еще бы кто-нибудь подсказал, как получить значение возвращаемое функцией _________________ http://grey-soft.narod.ru - примочки к программам серии БЭС |
|
Back to top |
|
|
Behemoth
Joined: 15 Mar 2002 Posts: 155 Location: Новиков Алексей Юрьевич Occupation: ПБОЮЛ Interests: Пермь
|
Posted: 24 Oct 2007 10:46 Post subject: |
|
|
Добрый день.
grey wrote: |
Еще бы кто-нибудь подсказал, как получить значение возвращаемое функцией |
Значение, возвращаемое функцией отлично получается. Только оно равно nil. _________________ С уважением, Новиков Алексей. |
|
Back to top |
|
|
|