Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 12.08.2015
Сообщений: 7

Открытие файлов в одном экземпляре программы

04.03.2016, 19:42. Показов 1627. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, пишу небольшую программу, она открывает и обрабатывает файлы формата .csu. Я реализовал открытие файлов передачей параметров программе и drag-and-drop, но при обычном открытии файла каждый раз запускается новый экземпляр программы. Как реализовать загрузку файла в уже запущенный экземпляр программы? Костылем проверять не был ли запущен другой экземпляр ранее, и передавать туда файл, кажется бредовой идеей
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.03.2016, 19:42
Ответы с готовыми решениями:

Открытие диалогов на одном уровне
В своей программе переход по диалогам у меня происходит так: EndDialog(hDialog, 0); DialogBox(hInst, MAKEINTRESOURCE(IDD_MENU),...

Элементы массива А в одном экземпляре, присутствующие в одном экземпляре в массиве В
помогите плз, выводит элементы масива А даже если их 2 экземляра, а нужно только в одном Задание: Элементы массива А в одном...

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

4
 Аватар для Alex xelA
100 / 38 / 20
Регистрация: 27.02.2016
Сообщений: 135
04.03.2016, 22:14
Цитата Сообщение от SR_team Посмотреть сообщение
Костылем проверять не был ли запущен другой экземпляр ранее, и передавать туда файл, кажется бредовой идеей
А по-другому никак. При открытии файлов система лишь считывает из реестра путь к приложению, которое может этот формат открывать, и запускает его с нужными параметрами. Всё остальное ложится на ваши плечи.
Проверку эту можно разными способами сделать. Например, так:

C++
1
2
3
4
5
6
HANDLE mutex = CreateMutex(NULL, FALSE, "myMutex");
if (!mutex)
return;
if (GetLastError() == ERROR_ALREADY_EXISTS)
// одна копия программы уже запущена, пересылайте файл в нее.
CloseHandle(mutex);
1
0 / 0 / 0
Регистрация: 12.08.2015
Сообщений: 7
04.03.2016, 22:16  [ТС]
Цитата Сообщение от Alex xelA Посмотреть сообщение
Проверки можно разными способами делать.
Да это пустяк, я с передачей не могу разобраться, хотел сообщение драга собрать, но не вышло, не понимаю я как заполнить этот HDRAG.
0
 Аватар для Alex xelA
100 / 38 / 20
Регистрация: 27.02.2016
Сообщений: 135
04.03.2016, 22:38
Цитата Сообщение от SR_team Посмотреть сообщение
хотел сообщение драга собрать, но не вышло, не понимаю я как заполнить этот HDRAG.
Программа имеет окна? Можно зарегистрировать (RegisterWindowMessage) и посылать (SendMessage) сообщение с путем к файлу в окно.
0
0 / 0 / 0
Регистрация: 12.08.2015
Сообщений: 7
04.03.2016, 22:41  [ТС]
Цитата Сообщение от Alex xelA Посмотреть сообщение
Программа имеет окна? Можно зарегистрировать (RegisterWindowMessage) и посылать (SendMessage) сообщение с путем к файлу в окно.
Ну да, иначе как бы я drag-and-drop реализовал?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
04.03.2016, 22:41
Помогаю со студенческими работами здесь

Открытие sql-файлов в уже запущенном экземпляре Management Studio 2014
При двойном щелчке по файлу sql-скрипта, почему-то, заново запускается студия, хотя уж есть её открытый экземпляр. Можно ли как-то...

Открытие нескольких файлов в одном приложении
Добрый день! Задача: приложение работает одновременно с несколькими проектами (одно общее окно, каждый проект в своей вкладке...

Элементы массива А, присутствующие в одном экземпляре в массиве В.
Элементы массива А, присутствующие в одном экземпляре в массиве В.

Сформировать одномерный массив C, из повторяющихся элементов массива А и B в одном экземпляре
Помогите пожалуйста! Сформировать одномерный массив C, элементы, которые есть только в массиве А или только в массиве В в одном...

Вычислить одномерный массив С, который содержит элементы, присутствующие в массивах А и В в одном экземпляре
Дали задачку: Дано два одномерных массива целых чисел А и В. Вычислить одномерный массив С, который содержит элементы, присутствующие...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru