Page 3 of 3

Проблемы с обозревателем сети на последней Windows 10

Posted: Wed 02 Oct, 2019 20:52
by cmd.exe

Latest post of the previous page:

SMB1 устарел, и его не следует устанавливать или включать. Как жить без SMB1 написано в официальном сапорте Microsoft https://go.microsoft.com/fwlink/?linkid=852747
Если хотите используйте SMB1, но это на ваш страх и риск.

Проблемы с обозревателем сети на последней Windows 10

Posted: Mon 07 Oct, 2019 21:32
by cmd.exe
2useven10, пример на C# подойдёт? Я долго не искал где в c# CSIDL_NETWORK, просто скормил шелу 0x12. корректнее ssfNETWORK.

Code: Select all

using System;
using System.Reflection;
using Shell32;

namespace ConsoleApp1
{

    class Program
    {
        private static void ShellObjects()
        {
            var shellAppType = Type.GetTypeFromProgID("Shell.Application");
            object shell = Activator.CreateInstance(shellAppType);
            Folder Network = getNetwork(shellAppType, shell);
            foreach (FolderItem child in Network.Items())
                Console.WriteLine($"{child.Name} = {child.Path}");
        }

        private static Folder getNetwork(Type shellAppType, object shell)
        {
            return (Folder)shellAppType.InvokeMember("NameSpace", BindingFlags.InvokeMethod, null, shell, new object[] { Shell32.ShellSpecialFolderConstants.ssfNETWORK });
        }

        static void Main(string[] args)
        {
            Console.WriteLine("Shell32");
            ShellObjects();
            Console.WriteLine();
        }
    }
}

Проблемы с обозревателем сети на последней Windows 10

Posted: Mon 14 Oct, 2019 03:22
by cmd.exe
Черновик с рабочего стола :-D
необходимо получить:
из WNetGetProviderName lpProviderName
из WNetGetResourceParent lpNetResource используя в структуре текущий компьютер.
Дальше используется структура от lpNetResource переданная в WNetOpenEnum

Проблемы с обозревателем сети на последней Windows 10

Posted: Mon 14 Oct, 2019 06:50
by cmd.exe
Блин. Я изобретаю велосипед снова

Проблемы с обозревателем сети на последней Windows 10

Posted: Thu 17 Oct, 2019 04:57
by cmd.exe
Поспрашивал, говорят что WSD и SSDP пока работают только через ShellObjects ActiveX, а WNetOpenEnum работает на уровне SMB1, и мне сказали что это атавизм наследуемый от Win 4.x. Работает оно только через NETBIOS и NETBIOS overTCPIP.

Проблемы с обозревателем сети на последней Windows 10

Posted: Thu 17 Oct, 2019 05:12
by cmd.exe
Если есть объект шелла F02C1A0D-BE21-4350-88B0-7367FC96EF3C, тогда выдаём из шелла структуру сети, если нет такого объекта, тогда по старинке. Думаю не плохо-бы пробежаться по недокументированным функциям winAPI.

Проблемы с обозревателем сети на последней Windows 10

Posted: Thu 17 Oct, 2019 22:33
by DrKnS
cmd.exe wrote: Thu 17 Oct, 2019 04:57WNetOpenEnum работает на уровне SMB1, и мне сказали что это атавизм наследуемый от Win 4.x. Работает оно только через NETBIOS и NETBIOS overTCPIP
Это, извините, дичь какая-то.
Win32 API - это, типа, высокоуровневый интерфейс, абстрагирующий прикладное ПО от всякой низкоуровневой хрени типа драйверов и протоколов.
Программисту, использующему WNetOpenEnum, до лампочки, через что оно там работает - SMB1, SMB42, голубиная почта или магия вуду, потому что абстракция.
Если кто-то в Microsoft , на этот раз в сетевых протоколах - да на здоровье, пишите своё новое, и пусть WNetOpenEnum под капотом зовёт это ваше новое и красивое, почему нет. Нам какое до этого дело?

Простой пример: CreateFile + ReadFile хорошо работали на пещерных 1.44 дискетах, и почему-то всё так же хорошо работают на терабайтных SSD, без переписывания всего с нуля и объекта шелла F02C1A0D-BE21-4350-88B0-7367FC96EF3C. Какие драйвера они там внутри используют и как - никому не интересно, всё просто работает.

А сеть - внезапно, цирк с конями.

Проблемы с обозревателем сети на последней Windows 10

Posted: Sat 19 Oct, 2019 21:24
by cmd.exe
Проверил на ТоталКомандере, открывает сеть корректно. Работает он через объекты шелла.