Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Dmitriy1995
0 / 0 / 0
Регистрация: 04.03.2015
Сообщений: 7
#1

Работа с дисководом и обращение к файлу на диске - C++

04.03.2015, 18:27. Просмотров 554. Ответов 11
Метки нет (Все метки)

Доброго времени суток!
Собственно, требуется самым простым и легким способом сделать несколько вещей.
Проверяем наличие диска в дисководе - Если нет, то вывести сообщение "Вставьте диск и нажмите Enter", если есть - то выполнить содержащийся на диске "start.exe".
Все это без всяких гуев, в чистой досмашине.
Как можно это сделать, не нагружая систему и не при помощи тонны кода?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2015, 18:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа с дисководом и обращение к файлу на диске (C++):

Работа с дисководом - C++
Как работать с дисководом в с++? К примеру, функция, проверяющая, есть ли диск в дисководе, или, к примеру, открывающая дисковод. Какую для...

Обращение многих потоков к одному файлу - C++
Как правильно синхронизировать такое: есть много потоков и один файл txt например. И в него одновременно могут писать данные и читать из...

Обращение к файлу при нажатии кнопки - C++
Имеется exe файл.Необходимо чтобы при нажатии кнопки этот файл запускался.Как это сделать?

Как можно реализовать обращение к файлу, если часть пути каждый день меняется? - C++
Добрый день! Подскажите пожалуйста как можно реализовать обращение к файлу. Адрес которого C:\\Папка\Папка\12012016\Папка\файл., если папка...

управление флоппи-дисководом - C++
Извините может вопрос не в тему. Может кто подскажет, где можно найти алгоритмы или может готовую программу на ассемблере (может есть...

Обращение к строке двумерного массива и работа с ней - C++
Собственно задача: Дан двумерный массив целых чисел. а) Составить программу, определяющую, верно ли, что сумма элементов строки массива с...

11
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,294
Завершенные тесты: 3
04.03.2015, 19:27 #2
Dmitriy1995, вот обычное консольное приложение.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <Windows.h>
 
int main()
{
    STARTUPINFO si;
    ZeroMemory(&si, sizeof(si));
 
    si.cb = sizeof(si);
    si.dwX = CW_USEDEFAULT;
    si.dwY = NULL;
    si.dwXSize = CW_USEDEFAULT;
    si.dwYSize = CW_USEDEFAULT;
    si.dwFlags = STARTF_USEPOSITION | STARTF_USESIZE;
        
    PROCESS_INFORMATION pi;             //Путь в createProcess устанавливайте сами. Имя диска у вас может быть другим
    if(!CreateProcess(L"D:\\start.exe", NULL, NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS,
        NULL, NULL, &si, &pi))
        MessageBox(NULL, L"Cannot run the application, or the disk is not in the CD-ROM", L"Error", MB_OK);
    return 0;
}
1
Байт
Диссидент
Эксперт C
17217 / 11287 / 1789
Регистрация: 24.12.2010
Сообщений: 22,219
04.03.2015, 19:37 #3
Dmitriy1995, Инфорамацию о дисках можно получить функцией GetLogicalDriveString.
Определить тип диска - GetDriveType.
Правда, все это WinAPI
0
Dmitriy1995
0 / 0 / 0
Регистрация: 04.03.2015
Сообщений: 7
04.03.2015, 19:42  [ТС] #4
Байт, спасибо, но, к сожалению, WinAPI никак не проходит, нужно именно на чистую досмашину, причем выполняться это будет из автоэкзек'а сразу после запуска шелла
0
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,294
Завершенные тесты: 3
04.03.2015, 19:43 #5
Dmitriy1995, стоп-стоп, те функции тоже винапишные. Если на ДОСе запускаете, по идее, ничего не выйдет
0
Dmitriy1995
0 / 0 / 0
Регистрация: 04.03.2015
Сообщений: 7
04.03.2015, 19:45  [ТС] #6
tnk500, да, нужно именно под чистый дос. Есть возможность как-то запустить?
0
Renji
2076 / 1433 / 328
Регистрация: 05.06.2014
Сообщений: 4,153
04.03.2015, 19:48 #7
C++
1
2
3
4
5
6
ifstream stream("a:\start.exe");
if(stream.good())
{
    stream.close();
    system("a:\start.exe");
}
0
Байт
Диссидент
Эксперт C
17217 / 11287 / 1789
Регистрация: 24.12.2010
Сообщений: 22,219
04.03.2015, 20:00 #8
Dmitriy1995, Есть такая функция biosdisk. Первый параметр cmd=16 проверяет готовность диска. Другие значения cmd лучше не использовать, если информация на диске дорога
А определить, есть ли файл, лучше всего функцией access
Ну а запуск - spawn
0
tnk500
113 / 117 / 25
Регистрация: 25.08.2012
Сообщений: 1,294
Завершенные тесты: 3
04.03.2015, 20:04 #9
Dmitriy1995, увы, я застал лишь Win95, на досе никогда не программировал (наверно, к счастью). Может, поможет директива #pragma comment(lib, "kernel32.lib"), хотя очень-очень сумневаюсь
0
Renji
2076 / 1433 / 328
Регистрация: 05.06.2014
Сообщений: 4,153
04.03.2015, 20:07 #10
Цитата Сообщение от tnk500 Посмотреть сообщение
Dmitriy1995, увы, я застал лишь Win95, на досе никогда не программировал (наверно, к счастью). Может, поможет директива #pragma comment(lib, "kernel32.lib"), хотя очень-очень сумневаюсь
Не поможет. В Досе dll и lib не было, системные библиотеки вызывались через прерывания.
0
Dmitriy1995
0 / 0 / 0
Регистрация: 04.03.2015
Сообщений: 7
04.03.2015, 20:18  [ТС] #11
Байт, ну, да, :go ECHO y | format a: /u GOTO go
0
Dmitriy1995
0 / 0 / 0
Регистрация: 04.03.2015
Сообщений: 7
14.03.2015, 04:06  [ТС] #12
Продолжаю надоедать уважаемым рукастым программистам. Цель та-же - запуск программы с диска. Но в этот раз не из-под доса.
Каким образом можно сделать сплошное окно (которое закроет весь рабочий стол и даже панель задач и не будет иметь "свернуть\развернуть\закрыть) и четыре кнопки, размещенные на нем (загрузка с диска, просмотр сведений о системе, выключение и пустую, резервную)?
0
14.03.2015, 04:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.03.2015, 04:06
Привет! Вот еще темы с ответами:

Написать программу, которая дописывает в файл Phone/txt, находящийся на диске А фамилию и номер телефона. Если файла на диске нет, то программа должна - C++
Написать программу, которая дописывает в файл Phone/txt, находящийся на диске А фамилию и номер телефона. Если файла на диске нет, то...

Работа с дисководом - Assembler
Здравствуйте!Подскажите пожалуйста как написать такую программу Написать 16–ти разрядную ассемблерную программу, которая выполняет...

Путь к файлу на диске - C++ Builder
Здравствуйте подскажите как правильно написать путь к thml файлу. Раньше писал етот проект на builder 6 но пришлось перейти на Rad Studio...

Обращение к файлу - JavaScript
Подскажите пожалуйста как можно сделать обращение к файлу каждые 3 секунды ( в моем случае пхп, который проверяет максимальный айди в БД)...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru