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

Здесь можно сообщить о найденных багах в Far.
User avatar
cmd.exe
Posts: 375
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 180 times
Been thanked: 9 times
Contact:

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

Post by cmd.exe »

Latest post of the previous page:

SMB1 устарел, и его не следует устанавливать или включать. Как жить без SMB1 написано в официальном сапорте Microsoft https://go.microsoft.com/fwlink/?linkid=852747
Если хотите используйте SMB1, но это на ваш страх и риск.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

User avatar
cmd.exe
Posts: 375
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 180 times
Been thanked: 9 times
Contact:

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

Post 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();
        }
    }
}
Last edited by cmd.exe on Thu 17 Oct, 2019 02:28, edited 3 times in total.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

User avatar
cmd.exe
Posts: 375
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 180 times
Been thanked: 9 times
Contact:

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

Post by cmd.exe »

Черновик с рабочего стола :-D
необходимо получить:
из WNetGetProviderName lpProviderName
из WNetGetResourceParent lpNetResource используя в структуре текущий компьютер.
Дальше используется структура от lpNetResource переданная в WNetOpenEnum
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

User avatar
cmd.exe
Posts: 375
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 180 times
Been thanked: 9 times
Contact:

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

Post by cmd.exe »

Блин. Я изобретаю велосипед снова
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

User avatar
cmd.exe
Posts: 375
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 180 times
Been thanked: 9 times
Contact:

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

Post by cmd.exe »

Поспрашивал, говорят что WSD и SSDP пока работают только через ShellObjects ActiveX, а WNetOpenEnum работает на уровне SMB1, и мне сказали что это атавизм наследуемый от Win 4.x. Работает оно только через NETBIOS и NETBIOS overTCPIP.

User avatar
cmd.exe
Posts: 375
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 180 times
Been thanked: 9 times
Contact:

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

Post by cmd.exe »

Если есть объект шелла F02C1A0D-BE21-4350-88B0-7367FC96EF3C, тогда выдаём из шелла структуру сети, если нет такого объекта, тогда по старинке. Думаю не плохо-бы пробежаться по недокументированным функциям winAPI.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

User avatar
DrKnS
Posts: 5595
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 298 times

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

Post by DrKnS »

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

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

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

User avatar
cmd.exe
Posts: 375
Joined: Fri 16 Apr, 2010 18:26
Location: Нижний Новгород
Has thanked: 180 times
Been thanked: 9 times
Contact:

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

Post by cmd.exe »

Проверил на ТоталКомандере, открывает сеть корректно. Работает он через объекты шелла.
I've been using Vim for about 2 years now, mostly because I can't figure out how to exit it. (c) I Am Devloper
I know nothing except the fact of my ignorance. (с) Socrates

Post Reply

Return to “Глюки и баги”