Хочу диалог выбора компьютера в локалке

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Хочу диалог выбора компьютера в локалке

Сообщение tyomitch » 01.09.2007 (Сб) 13:27

Хочу такой же, как в mstsc.

SHBrowseForFolder с корнем в домене (в предположении, что я найду способ задать такой корень) будет показывать шары, хотя мне это совсем не нужно.
Изображение

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 01.09.2007 (Сб) 21:55

tyomitch
Он там самоделный.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.09.2007 (Вс) 20:11

Я знаю.
Но всё равно продолжаю хотеть такой же.
Изображение

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 03.09.2007 (Пн) 10:31

tyomitch писал(а):Но всё равно продолжаю хотеть такой же.


А что нужно-то конкретно:

Список компьютеров:

Код: Выделить всё
strComputer = "."
Set objWMIService = GetObject("winmgmts:" & strComputer & "\root\directory\LDAP")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM ads_computer",,48)
For Each objItem in colItems
    Wscript.Echo "DS_displayName: " & objItem.DS_displayName
Next


Или что-то еще?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.09.2007 (Пн) 10:41

Это чудо заработает в Win98/NT4? (Требования такие.)
Изображение

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Сообщение jangle » 03.09.2007 (Пн) 10:52

На Win98 не заработает, там нет WMI. Теоретически можно найти дистриб WMI для 9x и поставить его вместе с программой. Но найти его будет трудно, я наример его ни разу не видел.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 03.09.2007 (Пн) 10:54

wmicore.exe

Сделать из аттача диалог проблем не составит. Под 98/NT по идее должно работать.
Вложения
NetBrowse.rar
(12.44 Кб) Скачиваний: 70
Лучший способ понять что-то самому — объяснить это другому.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.09.2007 (Пн) 15:58

По ходу, BIF_BROWSEFORCOMPUTER не работает из-за идиотской описки в shell32, сделанной в Win2000 и до сих пор не исправленной. Эти мелкомягкие (эпитет опущен) не в том порядке передают аргументы в одном из мест.

Там в MS за семь лет никому не довелось потестить этот флаг?
:twisted: :twisted: :twisted:


Код: Выделить всё
HRESULT CSHBrowseForFolder::_ShouldShow(IShellFolder* psf, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST pidlItem, BOOL fStrict)
{
    HRESULT hr = S_OK;
    BOOL fFilterChildern = FALSE;

    // Do we want to filter our all the children of a certain folder?
    if (_pidlChildFilter)
    {
        // Yes, let's see if the tree walking caller is still
        // in this folder?
        if (pidlFolder && ILIsParent(_pidlChildFilter, pidlFolder, FALSE))
        {
            // Yes, so don't use it.
            hr = S_FALSE;
        }


Код: Выделить всё
// test if
//      pidl1 is a parent of pidl2

BOOL ILIsParent(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2, BOOL fImmediate)
{
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 03.09.2007 (Пн) 16:04

Гайдару пиши :)
Он обещал, что будет доводить информацию о багах до MS.

Но помоему у меня функция с этим флагом работала.
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 03.09.2007 (Пн) 16:06

Этот флаг работает, если не стоит BIF_NEWDIALOGSTYLE.
(Там внутри две непересекающиеся реализации SHBrowseForFolder. Одна старая и некрасивая, а вторая новая и бажная.)
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 43

    TopList