Автор
|
Тема: Смена доступа и пароля
|
Drunkard |
опубликован 04-12-2001 06:47 MSK
Привет, гуру! Кто знает как на API (можно COM,OLE) изменить доступ к папке, сделать ее доступной по локальной сети. А также задать пароль доступа. Все это легко сделать ручками, через правую кнопку мыши и "Свойства" -> "Доступ". А вот как программно?
|
server_mouse
|
опубликован 04-12-2001 09:41 MSK
Присоединяюсь. |
Lord_DEMON
|
опубликован 04-12-2001 10:16 MSK
Один классический способ - запись в реестр соответствующего блока. Недостаток - действует только после перезагрузки. Ну это на крайняк, если никто ничего более стоящего не подскажет. зашарь что нить, а потом найди это в реестре у меня в 2к: hklm \ controlset001 \ services \ lanmanserver \ shares |
migel
|
опубликован 04-12-2001 10:41 MSK
Копай NetShareAdd |
Drunkard
|
опубликован 04-12-2001 14:45 MSK
migel< Мигелюшка, Net... и пр. функции работают в NT (по Хелпу для ВС 5.0), а мне нужно для всех Виндов.
|
purpe
|
опубликован 04-12-2001 15:08 MSK
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/netmgmt/ntlmapi_4tnj.asp |
migel
|
опубликован 04-12-2001 15:49 MSK
А по MSDN везде Ж-)))) так штаа не поднимай панику. Вот тебе пример и ставь MSDN иначе долго будеш искать зеленых человечков.NetShareAdd Sample (Windows 95/98) Windows 95/98/Me: The following code sample demonstrates how to share a resource on the local computer with a call to the NetShareAdd <ntlmapi2_0bxg.htm> function. The code sample specifies the share_info_50 <ntlmapi3_8yk2.htm> structure and no password on the share. The sample also allocates and frees the memory required for the information buffer. #include <stdio.h> #include <windows.h> #include <svrapi.h> int main(int argc, char FAR * argv[]) { char FAR * pszServerName = NULL; short nLevel = 50; struct share_info_50* pBuf = NULL; unsigned short cbBuffer; NET_API_STATUS nStatus; // // ServerName can be NULL to indicate the local computer. // if ((argc < 3) |
Molibden
|
опубликован 04-12-2001 16:00 MSK
2Drunkard: не совсем так. Под 95/98 и под NT/2K они называются одинаково , но определены по разному, находятся в разных ДЛЛках и работают с разными структурами - SHARE INFO 50 и 2/502 соответственно. Универсально не выйдет - надо программно определять, под какой виндой софтина запущена, динамически грузить SVRAPI или NETAPI32.DLL. Посмотри пример в исходниках BO2K - велосипед давно изобретён. Файл cmd_msnet.cpp, functions.cpp. Удачи! |
migel
|
опубликован 04-12-2001 22:35 MSK
Во зарраза почикала код - корче см MSDN |
Drunkard
|
опубликован 05-12-2001 06:11 MSK
Всем! Спасибо за ответы, лазаю, экспериментирую, сообщу результаты :-) |
Drunkard
|
опубликован 09-12-2001 15:05 MSK
Текст из MSDN хороший, красивый, но не рабочий. Компилятор подключает NETAPI32.DLL, а SVRAPI.LIB он брать не хочет. См. другую тему с тем же названием. |
Drunkard
|
опубликован 09-12-2001 16:15 MSK
Drunkardu< А-а-а, старый пьяный осел! Дошло. Нашел в System-папке файл SVRAPI.DLL. Теперь динамически его подгружу по LoadLibrary(). Потом получу GetModuleHandle("Svrapi.dll") и затем найду вход на NetShareAdd по GetProcAddrss(). Вот так я себе представляю рабочий модуль. А не ту херню, что пишут в MSDN (MustDie!!!) |
Drunkard
|
опубликован 10-12-2001 03:18 MSK
Со скрипом зафурычила прога. :-) Кому нужно, да лень писАть, обращайтесь на paparazzi@industar.net |
migel
|
опубликован 10-12-2001 11:58 MSK
Неча на зеркало пенять... В MSDN ясно написано в какой библиотеке для Вынь95 все это добро лежит так что учитесь, учитесь, и еще раз учитесь... (в сторону тихо .. читать источники...) |
Drunkard
|
опубликован 11-12-2001 04:54 MSK
Migelюшка, ну ты прям как Ленин. :-))) |