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

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

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

Что-то у меня получилось вызвать эту функцию только с правами администратора домена. Если у меня завтра будет время и Вас устроит, что под 9х работать не будет, то можно поиграться дальше.
...
Рейтинг: 0 / 0
Определние путей!
    #32214849
Kassa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
обязательно расскажите, если что-нить получиться
...
Рейтинг: 0 / 0
Определние путей!
    #32215345
Фотография 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
Определние путей!
    #32215379
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Колдун однако
мог бы кстати тогда уж доколдовать до WIN9x . Там просто вызов другой
...
Рейтинг: 0 / 0
Определние путей!
    #32215410
Crip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати вполне достаточно быть админом сервера. Я вот не админ домена. У меня в подчинении только своя тачка и сервер БД и все пашет.
...
Рейтинг: 0 / 0
Определние путей!
    #32215445
Фотография NNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Crip

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

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

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

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

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

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

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


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