Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определние путей! / 16 сообщений из 16, страница 1 из 1
21.07.2003, 16:10
    #32213736
Kassa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
Кто нить знает, как по сетевому пути например \\COMP1\Temp определить локальный путь на машине COMP1 к расшаренной папке Temp. Что-то я в Foxe не нашла полезной функции.
...
Рейтинг: 0 / 0
21.07.2003, 16:36
    #32213787
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
Встречные вопросы

1. Кто Вам позволит?
2. Что это даст?
3. Где Вы видели такие функции?
...
Рейтинг: 0 / 0
21.07.2003, 16:44
    #32213797
Kassa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
проблема в том, что если с машины клиента обращаются к папке находящейся на сервере, где установлен SQL2000, то нужно использовать локальный путь к этой папке, а иначе использовать сетевой.
все эти пути используются в OPENROWSET
...
Рейтинг: 0 / 0
21.07.2003, 16:47
    #32213801
Kassa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
я слышала о возможности расшаривания папок API-шными функциями, может есть какие-нить API-шные функции для определения пути к расшаренной папке, ведь во свойствах папке прописывается этот путь?
...
Рейтинг: 0 / 0
21.07.2003, 17:23
    #32213870
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
Вы оказались правы, такая функция в API есть - NetShareGetInfo . Но проще написать библиотеку на C, чем в фоксе возиться с указателями в структуре, которую она возвращает.
...
Рейтинг: 0 / 0
22.07.2003, 16:54
    #32214816
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
2Kassa

> Конечно нужна!

Что-то у меня получилось вызвать эту функцию только с правами администратора домена. Если у меня завтра будет время и Вас устроит, что под 9х работать не будет, то можно поиграться дальше.
...
Рейтинг: 0 / 0
22.07.2003, 17:26
    #32214849
Kassa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
обязательно расскажите, если что-нить получиться
...
Рейтинг: 0 / 0
23.07.2003, 11:56
    #32215345
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
Все получилось, но:
1. работает только под администратором домена
2. только для NT/2K/XP
3. обработку ошибок не делал, при ошибки просто возвращает пустую строку
4. с буфером не стал разбираться, возможен глюк, если в пароле присутствует строка ':\'
5. перед именем сервера '\\' обязательны.

Если что непонятно, можно задавать вопросы.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
CLEAR 
?GetShareInfo('\\ServerName','ResourceName')

FUNCTION GetShareInfo
LPARAMETERS tcServerName as String, tcNetName as String

LOCAL lnBuffer as Integer 
LOCAL lnSize as Integer 
LOCAL lcReturn as String 
LOCAL lnStart as Integer 
LOCAL lnLen as Integer 

DECLARE integer NetShareGetInfo IN netapi32.dll ;
string @servername, string @netname, integer level, integer @bufptr
DECLARE integer NetApiBufferAllocate IN netapi32.dll ;
integer ByteCount, integer @lpBuffer    
DECLARE integer NetApiBufferFree IN netapi32.dll ;
integer lpBuffer    
DECLARE integer NetApiBufferSize IN netapi32.dll ;
integer lpBuffer, integer @nSize    
DECLARE RtlMoveMemory IN WIN32API;
STRING @pDestBuffer, INTEGER nVoidSource, INTEGER nLength

tcServerName=STRCONV(STRCONV(tcServerName, 1 ), 5 )+CHR( 0 )
tcNetName=STRCONV(STRCONV(tcNetName, 1 ), 5 )+CHR( 0 )

lnBuffer= 0 
lnSize= 0 
lcReturn=''

IF NetShareGetInfo(tcServerName,tcNetName, 2 ,@lnBuffer)= 0 
 =NetApiBufferSize(lnBuffer,@lnSize)
 lcReturn=SPACE(lnSize)
 =RtlMoveMemory(@lcReturn,lnBuffer,lnSize)
 lcReturn=STRCONV(STRCONV(lcReturn, 6 ), 2 )
 *!* мухлёж
 lcReturn=SUBSTR(lcReturn,RAT(':\',lcReturn)- 1 )
 lcReturn=LEFT(lcReturn,AT(CHR( 0 ),lcReturn)- 1 )
 =NetApiBufferFree(lnBuffer)
ENDIF 
RETURN lcReturn
ENDFUNC 
...
Рейтинг: 0 / 0
23.07.2003, 12:12
    #32215379
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
Колдун однако
мог бы кстати тогда уж доколдовать до WIN9x . Там просто вызов другой
...
Рейтинг: 0 / 0
23.07.2003, 12:24
    #32215410
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
Кстати вполне достаточно быть админом сервера. Я вот не админ домена. У меня в подчинении только своя тачка и сервер БД и все пашет.
...
Рейтинг: 0 / 0
23.07.2003, 12:43
    #32215445
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
2Crip

> мог бы кстати тогда уж доколдовать до WIN9x . Там просто вызов другой

Где ж я тебе возьму такую роскошь, как 9х. Хотя там скорее всего будет достаточно поменять 2 на 50 и убрать перекодировку в юникод и обратно.

И заканчивай придираться! А то счас начнешь - clear dlls отсутствует, объявление NetApiBufferAllocate лишнее, в 7-м и выше вместо RtlMoveMemory можно использовать sys(2600) :)

> Кстати вполне достаточно быть админом сервера.

Ну откуда мне это знать? Я знаю только свой пароль и пароль адмнинистратора домена. С моим доступом - ERROR_ACCESS_DENIED.
...
Рейтинг: 0 / 0
23.07.2003, 12:56
    #32215482
Kassa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
у меня тоже все классно пашет!)))
проблема только в том, что прога должна выполняться на клиенте, а как сами понимаете, не каждому клиенту суждено стать админом сервера.

А где можно прочитать что такое NetShareGetIngo и с чем ее едят?
...
Рейтинг: 0 / 0
23.07.2003, 13:20
    #32215560
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
Прочитать можно в MSDN
А поповоду выполнения проги. Делаешь так.
1) Создаешь COM сервер MTDLL с нужной тебе функцией
2) Регестрируешь его в Service Components на сервере.
3) С клиента обращаешься к нужной тебе функции...

И не надо ему давать права админа...Только права на выполнение нужной тебе функции...
...
Рейтинг: 0 / 0
23.07.2003, 13:30
    #32215585
Kassa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
жалко, что у меня нету MSDN-a
а с COM-приложениями попробую
...
Рейтинг: 0 / 0
23.07.2003, 13:35
    #32215596
NNN
NNN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
Оops, ошибся со ссылкой
...
Рейтинг: 0 / 0
23.07.2003, 13:59
    #32215640
Kassa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определние путей!
буем читать!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Определние путей! / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]