Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 25.03.2016
Сообщений: 3

Открытие программой с MDI связанных (ассоциированных) с ней файлов

14.07.2017, 12:27. Показов 692. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется программа на VB, в которой с помощью функции Command() реализована возможность открытия ассоциированных с ней файлов (например текстовых) двойным щелчком в проводнике. (так как открывается файл txt в блокноте). При этом каждый файл открывается в новом окне (новый экземпляр программы).
Имеется необходимость при открытии первого файла запускать приложение с MDI интерфейсом и отображать содержимое файла в дочернем окне, а последующие файлы открывать в новых дочерних окнах запущенного приложения, а не в новом экземпляре приложения.
Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.07.2017, 12:27
Ответы с готовыми решениями:

Запуск ассоциированных файлов программой
Доброе время суток. Подскажите, пожалуйста, как сделать чтобы содержимое ассоциированных с программой .txt файлов попадало в поле...

Изменение иконки файлов, ассоциированных с программой
Программа - notepad++, имеет иконку зеленого листа бумаги с карандашом. При изменении программы по умолчанию для .txt, их иконки сменились...

Открытие ассоциированных файлов
Доброго времени суток! Ассоциировал файлы .txt со своей программой. В консольном приложении легко получают путь к файлу из аргумента: ...

5
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
16.07.2017, 20:28
Проверяешь запущен ли другой экземпляр программы. Если да, передаешь ему информацию (путь к файлу), например, через сообщение WM_COPYDATA. В первом экземпляре ловишь это сообщение через сабклассинг.
1
0 / 0 / 0
Регистрация: 25.03.2016
Сообщений: 3
17.07.2017, 11:08  [ТС]
Ок, спасибо!
Буду разбираться.
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
19.07.2017, 17:38
Что-то вы черезчур увлеклись нестандартными способами программирования, дак.. мы давайте
сразу в машинный язык перейдем ? чего нам стоит ?
prickly-sumy, будете разбираться ?... очень интересно

Уверен что есть на это простой ответ, надо просто уточнить чего автору темы нужно, может это файловые ассоциации или время запуска
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18031 / 7734 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
19.07.2017, 18:52
Цитата Сообщение от fever brain Посмотреть сообщение
Что-то вы черезчур увлеклись нестандартными способами программирования, дак.. мы давайте
??????
Цитата Сообщение от fever brain Посмотреть сообщение
надо просто уточнить чего автору темы нужно
Чему тут быть непонятно? Всё предельно понятно автор объяснил.

Добавлено через 49 секунд
Цитата Сообщение от fever brain Посмотреть сообщение
может это файловые ассоциации
Они самые.

Добавлено через 54 секунды
Цитата Сообщение от fever brain Посмотреть сообщение
prickly-sumy, будете разбираться ?... очень интересно
А что там разбираться. Полный ответ по ссылке.

Добавлено через 27 секунд
Осталось только проверить:
Цитата Сообщение от Dragokas Посмотреть сообщение
Проверяешь запущен ли другой экземпляр программы.
1
0 / 0 / 0
Регистрация: 25.03.2016
Сообщений: 3
25.07.2017, 17:09  [ТС]
Dragokas, Спасибо за вектор поиска решения.
То что хотел - получил. Реализовывал в VB 2010.
Вот список использованных API-функций:
Visual Basic
1
2
3
4
5
6
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As UInteger, ByVal wMsg As Integer, ByVal wParam As UInteger, ByVal lParam As String) As UInteger
    Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As UInteger
    Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As UInteger, ByVal hWnd2 As UInteger, ByVal lpsz1 As String, ByVal lpsz2 As String) As UInteger
    Public Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
    Public Declare Function IsIconic Lib "user32.dll" (ByVal hwnd As Long) As Long
    Public Declare Function ShowWindow Lib "user32" (ByVal handle As IntPtr, ByVal nCmdShow As Integer) As Integer
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.07.2017, 17:09
Помогаю со студенческими работами здесь

Outlook Express: отправка файлов, не ассоциированных ни с одной программой
Здравствуйте настроил оутлук еспрес . Хочу настроить отправку сообщений ставлю галочку почта выбрать выбираю хмл файл а он мне этому файлу...

Открытие файлов, не ассоциированных с какими-либо программами
Если windows, не имеет ассоциации какого то расширения, то задает вопрос, какой программой его открыть. Интересно а можно это сделать из...

Открытие файлов в MDI приложении
Сделал многооконный текстовый редактор. Остался недоделанным пункт открытия текста в отдельном дочернем окне. Открываться они должны при...

Ассоциация файлов с программой, открытие нескольких файлов
Я ассоциировал файлы с расширением .scr со своей программой(свойства=>изменить). В свойствах приложения стоит галочка "запускать...

Открытие файлов своей программой
Добрый день! Такая задача: создал форму, поставил на нее edit, откомпилировал. Теперь нужно сделать так, чтобы при перетаскивании любого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru