Нужен исходник - полный аналог Windows проводника.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Нужен исходник - полный аналог Windows проводника.

Сообщение jangle » 20.02.2010 (Сб) 21:49

Если у кого-нибудь есть, поделитесь пожалуйста.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение Twister » 20.02.2010 (Сб) 21:57

Эм... А может тебе просто сорцы проводника взять из исходников w2k/wnt?
А я все практикую лечение травами...

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение jangle » 20.02.2010 (Сб) 21:59

Twister писал(а):Эм... А может тебе просто сорцы проводника взять из исходников w2k/wnt?


Думаю это будет нарушением авторских прав Майкрософт. :) И потом я на VB код ищю

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение Twister » 20.02.2010 (Сб) 22:06

jangle писал(а):Думаю это будет нарушением авторских прав Майкрософт. :) И потом я на VB код ищю
Да уж какие к чёрту авторские права... Сей код гуляет по сети с 2004 года, даже в исходниках Касперского можно найти коды мелкомягких. Так что забей :)

Ну а по поводу того, что ищешь на VB - удачи ;)
А я все практикую лечение травами...

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение jangle » 20.02.2010 (Сб) 22:57

Twister писал(а): даже в исходниках Касперского


Что за исходники Касперского?

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение Twister » 21.02.2010 (Вс) 0:39

А я все практикую лечение травами...

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение jangle » 21.02.2010 (Вс) 1:10

Twister писал(а):http://blogs.drweb.com/node/414


Исходник в отрыве от его разработчиков ничего не стоит. Это все равно что украсть чертежи новейшего самолета, круто звучит, но практического смысла нет.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение Viper » 21.02.2010 (Вс) 11:29

jangle писал(а):Это все равно что украсть чертежи новейшего самолета, круто звучит, но практического смысла нет.
Ага, потому что получается паравоз. :mrgreen:
Весь мир матрица, а мы в нем потоки байтов!

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение FFOX » 22.02.2010 (Пн) 11:43

jangle писал(а):Если у кого-нибудь есть, поделитесь пожалуйста.

Книжка Евангелоса Петрусоса Visual Basic 6 (ISBN 5731500738). Глава 8 вот код примера с диска к книге проект Explorer
ЗЫ
За работу кода отвечает издатель книги :). Я не проверял.
Вложения
Explorer.rar
Код примера
(2.87 Кб) Скачиваний: 166

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение jangle » 22.02.2010 (Пн) 17:30

FFOX писал(а):
jangle писал(а):Если у кого-нибудь есть, поделитесь пожалуйста.

Книжка Евангелоса Петрусоса Visual Basic 6 (ISBN 5731500738). Глава 8 вот код примера с диска к книге проект Explorer
ЗЫ
За работу кода отвечает издатель книги :). Я не проверял.


Такой примитив меня не интересует. Набросал скелет проводника. И пока ищу ответы на следующие вопросы

1. Как выдрать из системы ассоциированные с конкретным типом приложений иконки?
2. Откуда выдрать тип файла?
3. Что означают атрибуты файлов под номерами 6, 38, 128 ?
4. Какой алгоритм округления размера файла применяет Майкрософт?
5. Пример быстрых сортировок по имени, размеру и дате.
Вложения
Explorer.zip
скелет
(27.71 Кб) Скачиваний: 108

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение dr.MIG » 22.02.2010 (Пн) 17:57

Что касается 1 и 2: За это отвечают разделы HKEY_CLASSES_ROOT. За ассоциирование с одним расширением отвечает два раздела. Первый — соответствует расширению, а в качестве значения параметра по умолчанию, имеет ProgID. Второй — с именем, соответствующим этому самому ProgID и значением параметра по умолчанию, соответствующим типу файла. Этот раздел может содержать так же подразделы, в том числе DefaultIcon (иконка по умолчанию).
Salus populi suprema lex

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение jangle » 22.02.2010 (Пн) 18:13

dr.MIG писал(а):Что касается 1 и 2: За это отвечают разделы HKEY_CLASSES_ROOT. За ассоциирование с одним расширением отвечает два раздела. Первый — соответствует расширению, а в качестве значения параметра по умолчанию, имеет ProgID. Второй — с именем, соответствующим этому самому ProgID и значением параметра по умолчанию, соответствующим типу файла. Этот раздел может содержать так же подразделы, в том числе DefaultIcon (иконка по умолчанию).


Дергать реестр каждый раз, чтобы получить иконку файла, что-то слишком тормознуто получается. Других путей нет?

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение Antonariy » 22.02.2010 (Пн) 20:28

1)Поставь курсор в поле Whisky и нажми enter. Если у тебя нет диска e:, задай другой в text3_keypress.
2)Тип файла это кагбэ его расширение, не?

Набросал скелет проводника.

Только зря потратил время :) У VB6 есть тип проекта Project Wizard, который генерирует результат не хуже.

Это одна из первых моих прикладных прог для интернет-салона, которого уже нет.
Сколько лет, сколько зим, но под семеркой работает.
Вложения
STORAGE.rar
(27.9 Кб) Скачиваний: 96
Лучший способ понять что-то самому — объяснить это другому.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение dr.MIG » 22.02.2010 (Пн) 21:05

Antonariy писал(а):2)Тип файла это кагбэ его расширение, не?

ИМХО, в данном случае имеется в виду то, что пишется в окне свойств файла напротив строчки "Тип файла:"
Salus populi suprema lex

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение jangle » 22.02.2010 (Пн) 21:30

Antonariy писал(а):2)Тип файла это кагбэ его расширение, не?


Нет не расширение, это столбец в проводнике

Изображение

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение FFOX » 23.02.2010 (Вт) 8:53

jangle писал(а):Такой примитив меня не интересует.

Да это понятно :)
это же не проект, а направление в котором копать :)

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение FFOX » 23.02.2010 (Вт) 8:59

jangle писал(а):Нет не расширение, это столбец в проводнике

например для рисунка .bmp : HKEY_CLASSES_ROOT\.bmp Content Type
Ы?
Там же есть веточки HKEY_CLASSES_ROOT\.bmp\OpenWithList - надо покопать в эту сторону, очевидно, что здесь можно определить какой программой открывается и попробовать найти ассоциированную с этой программой иконку. Все эти вещи очевидно придется где-то кешировать, чтобы не дергать реестр
каждый раз. Ну не знаю, у меня только такие идеи, если есть другие пути с удовольствием послушаю.

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение jangle » 23.02.2010 (Вт) 11:22

Наконец докопал как получать иконки, типы файлов и прочую инфу о файле. Функция SHGetFileInfo вернет все в лучшем виде

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение FFOX » 23.02.2010 (Вт) 11:43

jangle писал(а):Наконец докопал как получать иконки, типы файлов и прочую инфу о файле. Функция SHGetFileInfo вернет все в лучшем виде

А scrrun.dll (microsoft scripting runtime) не позволяет делать то же самое? Объект FileSystemObject? Посмотри в эту сторону, может будет поудобнее
работать?

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение Хакер » 23.02.2010 (Вт) 12:11

FFOX, издеваешься? С каких это пор?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение Twister » 24.02.2010 (Ср) 8:10

Немного оффтопа:
Исходник в отрыве от его разработчиков ничего не стоит
Глупости. В любом исходнике можно разобраться, все упирается только во время.

По теме:
Функция SHGetFileInfo вернет все в лучшем виде
Угу, но не всегда. Иногда приходилось брать иконку по инфе из реестра:
Код: Выделить всё
// GetRegistryIcon() возвращает хэндл иконки извлеченной с помощью ExtractIcon()

  SHGetFileInfo(lpszFileName, 0, shfi, SizeOf(SHFILEINFO), SHGFI_SMALLICON or SHGFI_ICON);
  ind := ImageList_AddIcon(frmMain.iml.Handle, shfi.hIcon);

  if ind = -1 then ind := ImageList_AddIcon(frmMain.iml.Handle, GetRegistryIcon(lpszFileName));
  if ind = -1 then ind := 0;
  // li это элемент в ListView
  li.ImageIndex := ind;
А я все практикую лечение травами...

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение FFOX » 25.02.2010 (Чт) 10:36

Хакер писал(а):FFOX, издеваешься? С каких это пор?

Я не такой знаток как ты, я только учусь, я задал вопрос, что может быть этот объект позволяет работать с свойствами файла...
Если я неправ, то наверно надо так и ответить, я буду знать, и скажу тебе спасибо, что ткнул носом.

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение Antonariy » 25.02.2010 (Чт) 10:55

Ты не просто спросил, а посоветовал попробовать, хотя должен был сделать это сам, прежде чем советовать. Дурной тон советовать то, что не знаешь как работает и работает ли вообще. Тем более если ты не знаток.
Лучший способ понять что-то самому — объяснить это другому.

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение FFOX » 25.02.2010 (Чт) 13:33

Antonariy писал(а):Ты не просто спросил, а посоветовал попробовать,

1. С каких это пор в русском языке знак вопроса приравнивается к совету?
2 Косвенным путем, удалось выяснить, что FileSystemObject в частности и Microsoft Scripting Runtime в целом не позволяет решить задачу получения атрибутов файла в контексте данной задачи.
Спасибо, удачи!

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение Antonariy » 25.02.2010 (Чт) 14:40

1. Ну ты еще пару запятых из контекста вырви :)
FFOX писал(а):Посмотри в эту сторону, может будет поудобнее работать?

Что таки попробовал — молодец.
Лучший способ понять что-то самому — объяснить это другому.

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение Antonariy » 25.02.2010 (Чт) 17:07

Наткнулся на еще один способ, попроще в реализации:
Код: Выделить всё
Public Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" _
  (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long

Public Declare Function DrawIcon Lib "user32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, _
  ByVal hIcon As Long) As Long

Public Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

Dim mIcon As Long
mIcon = ExtractAssociatedIcon(App.hInstance, xFileName, 2)
DrawIcon Image2.hDC, 0, 0, mIcon
DestroyIcon mIcon
Лучший способ понять что-то самому — объяснить это другому.

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение jangle » 25.02.2010 (Чт) 17:19

Antonariy писал(а):Наткнулся на еще один способ, попроще в реализации:


Cпасибо! Отличный способ и очень удобный!

FFOX
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 04.02.2010 (Чт) 12:42

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение FFOX » 25.02.2010 (Чт) 17:48

Antonariy писал(а):1. Ну ты еще пару запятых из контекста вырви :)
FFOX писал(а):Посмотри в эту сторону, может будет поудобнее работать?

Что таки попробовал — молодец.

Аналогично. Ты тоже не всю фразу привел, каждый привел то, что ему хотелось типа.
Где в моем посте Прямой совет "Бери Microsoft scripting runtime и ни ногой в сторону"? Одни вопросы.
А я не пробовал, я по твоей реакции понял.
Тоже мне развели флуд, нет сказать, что нельзя сделать и все. И все бы были довольны.

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

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение jangle » 25.02.2010 (Чт) 18:13

Antonariy писал(а):Наткнулся на еще один способ, попроще в реализации:
Код: Выделить всё
Public Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" _
  (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long

Public Declare Function DrawIcon Lib "user32" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, _
  ByVal hIcon As Long) As Long

Public Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

Dim mIcon As Long
mIcon = ExtractAssociatedIcon(App.hInstance, xFileName, 2)
DrawIcon Image2.hDC, 0, 0, mIcon
DestroyIcon mIcon


Иконка возвращается 32 на 32 пикселя, как получить 16 на 16? Вот такой код

Код: Выделить всё
DrawIconEx Picture1.hdc, 16, 16, hIcon, 16, 16, 0, 0, DI_NORMAL


портит внешний вид иконки

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Нужен исходник - полный аналог Windows проводника.

Сообщение iGrok » 25.02.2010 (Чт) 19:27

label:
cli
jmp label

След.

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

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

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 1

    TopList  
cron