Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Путь к Моим документам
Goto page 1, 2  Next
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 01 Oct 2007 17:19    Post subject: Путь к Моим документам Reply with quote

Как в БЭСТ-е получить путь до "Мои документы" под ВинХР?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 01 Oct 2007 18:54    Post subject: Reply with quote

О каком БЭСТе идет речь ?
Back to top
View user's profile Send private message Send e-mail
grey



Joined: 12 Jan 2004
Posts: 297
Location: Родионов С.Г.
Occupation: ООО Бухгалтер, программист
Interests: Набережные Челны

PostPosted: 01 Oct 2007 21:37    Post subject: Reply with quote

В общем случае
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

параметр personal
_________________
http://grey-soft.narod.ru - примочки к программам серии БЭС
Back to top
View user's profile Send private message Visit poster's website
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 02 Oct 2007 04:53    Post subject: Reply with quote

nordk wrote:
О каком БЭСТе идет речь ?


Речь идет о Б5 3.3 СП32 и о Б4+12.01 СП39, которые стоят под WinXP SP2
Back to top
View user's profile Send private message
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 02 Oct 2007 05:46    Post subject: Reply with quote

grey wrote:
В общем случае
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders

параметр personal


Спасибо! Осталось только выяснить, как в БЭСТ-е это значение получить ...
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 02 Oct 2007 11:15    Post subject: Reply with quote

Code:
GetRegistry( nHKEYHandle, cKeyName, cEntryName )
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 02 Oct 2007 11:23    Post subject: Reply with quote

Виноват
Похоже функции Winreg* отсутствуют в харборе БЭСТа
Back to top
View user's profile Send private message Send e-mail
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 02 Oct 2007 16:52    Post subject: Reply with quote

nordk wrote:
Виноват
Похоже функции Winreg* отсутствуют в харборе БЭСТа


Я правильно понял, что функция GetRegistry в БЭСТ-е не работает? А можно ее включить в БЭСТ в ближайших пакетах? Хотя бы в БЭСТ5 для начала ... Или можно другим способом путь до "Моих документов" получить?
Back to top
View user's profile Send private message
Титов Александр



Joined: 26 Jul 2002
Posts: 975
Location: Титов Александр Александрович
Occupation: Компания БЭСТ
Interests: Москва

PostPosted: 02 Oct 2007 17:18    Post subject: Reply with quote

Дениска 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
View user's profile Send private message Visit poster's website
Дениска



Joined: 26 Feb 2002
Posts: 649



PostPosted: 04 Oct 2007 07:27    Post subject: Reply with quote

Спасибо! С помощью REGOPENKEYEX и REGQUERYVALUEEX путь получен Только в Б4 эти функции не работают, но в данный момент для меня это не принципиально.

Подскажите, а где в Б5 надо писать #define?
Back to top
View user's profile Send private message
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 04 Oct 2007 10:24    Post subject: Reply with quote

Как и в БЭСТ-4 в начале исходника (до FUNCTION)
Back to top
View user's profile Send private message Send e-mail
Behemoth



Joined: 15 Mar 2002
Posts: 155
Location: Новиков Алексей Юрьевич
Occupation: ПБОЮЛ
Interests: Пермь

PostPosted: 23 Oct 2007 20:33    Post subject: Reply with quote

Дениска wrote:
Только в Б4 эти функции не работают, но в данный момент для меня это не принципиально.

А мне вот понадобилось. Так как в БЭСТ-4+ получить путь к папке "Мои документы"? Нет, я конечно могу с помощью regedit экспортировать весь раздел, а затем проанализировать текстовый файл. Но как-то это некрасиво.
_________________
С уважением, Новиков Алексей.
Back to top
View user's profile Send private message Send e-mail
EJ



Joined: 24 Aug 2005
Posts: 47
Location: цЙМЕОЛП еЧЗЕОЙК аТШЕЧЙЮ
Occupation: уЙУФЕНОЩК БДНЙОЙУФТБФПТ
Interests: нПУЛЧБ

PostPosted: 24 Oct 2007 08:22    Post subject: Reply with quote

Можно создать системную переменную, а чтобы "не промазать", указать в ней путь тоже с использованием переменных, например
set MyDocuments=%HomeDrive%\%HomePath%\Мои документы или для 98-го вообще "в наглую"
set MyDocuments=C:\Мои документы
Вообще-то она может и самой операционкой создаваться, не помню , и если так, то выглядит типа "MyDocuments"( %MyDocuments% ).
Back to top
View user's profile Send private message
grey



Joined: 12 Jan 2004
Posts: 297
Location: Родионов С.Г.
Occupation: ООО Бухгалтер, программист
Interests: Набережные Челны

PostPosted: 24 Oct 2007 09:46    Post subject: Reply with quote

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
View user's profile Send private message Visit poster's website
Behemoth



Joined: 15 Mar 2002
Posts: 155
Location: Новиков Алексей Юрьевич
Occupation: ПБОЮЛ
Interests: Пермь

PostPosted: 24 Oct 2007 10:46    Post subject: Reply with quote

Добрый день.
grey wrote:

Еще бы кто-нибудь подсказал, как получить значение возвращаемое функцией

Значение, возвращаемое функцией отлично получается. Только оно равно nil.
_________________
С уважением, Новиков Алексей.
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru