Просмотр полной версии : [Вопрос] Открытие файла
KrutoyKrosch
03.02.2017, 20:27
Как можно сделать программку на C++ которая бы открывала Word (не записывало в массив содержимое, а именно открывала Word и в Word'e этот файл) файл (если на компе есть офис, если нет то ошибку бы выбивала) и выполняла какие то другие действия? И именно что бы этот Word файл был внутри нее, а не отдельно на диске.
$continue$
03.02.2017, 20:42
У меня сейчас подобный проект. MS - умеют делать адовую вещь (https://habrahabr.ru/post/110019/). .doc очень трудно распарсить, есть 3 варианта: написать свой парсер, использовать OLE (https://ru.wikipedia.org/wiki/Object_Linking_and_Embedding) и вообще хардкордный - выпилить открытие файлов из OpenOffice/LibreOffice (придется часа 3 поискать по файлам, чтобы найти где открывается файл + там много зависимостей их придется тоже выпилить, что бы заработало) Что касается docx, то это openxml и его не так трудно распарсить.
А, теперь по теме:
Файл находится в папке с программой или как?
Если так, то можно попробовать:
system("START example.doc");
Я не уверен, что это сработает, но можно попробовать ради эксперимента.
KrutoyKrosch
03.02.2017, 21:27
Пишет что файл не найден. Я хочу что бы он вместе с программой компилировался (ну или как правильней сказать), а не как отдельный файл.
https://pp.vk.me/c638519/v638519947/2066e/pgAyWvN6ewc.jpg
- - - Добавлено - - -
Подумал, понял что так не реально. А можно хотя бы сделать так, что бы при запуске программы этот Word файл распаковывался из этой программы (если их вместе копилировать) в ту же папку где лежит программа и уже открывался ?
KrutoyKrosch
04.02.2017, 05:39
Дошло как сделать можно, спасибо за подсказку с
system("START example.doc");
Сработало.
- - - Добавлено - - -
Что бы уж вторую тему не создавать, помогите написать код который крашнет винду... Деление на 0 - Error: деление на 0 не возможно, строка ...
Потом пробовал:
int
b = INT_MIN,
a = b / -1;
Это тоже не крашит, просто выводит число INT_MIN и все... Как еще предложите? Может можно как то с памятью поиграться ?
$continue$
04.02.2017, 13:12
Старый трюк с делением на ноль не пройдет (https://habrahabr.ru/post/179543/). Они пофиксили его. Раньше проходил (статью на хабру оставил), а щас я не имею представление, что может уронить OS. Да и зачем это? Пишешь программу, которая нарушает работу OS пользователя?
int
b = INT_MIN,
a = b / -1;
KrutoyKrosch
04.02.2017, 18:05
Там долгая история, но это для благих целей... Просто написал программку которая вносить небольшие изменения в систему, а что бы они применились нужно перезагрузить комп насильно и не заметно. Мне в голову пришел самый лучший вариант положить винду, что бы она как бы и перезагрузилась и пользователь не понял что произошло. Хехе
$continue$
04.02.2017, 19:49
Это зачем такое? Если это нужно для благих целей, то можно перезагрузить систему с предупреждением и все.
Там долгая история, но это для благих целей... Просто написал программку которая вносить небольшие изменения в систему, а что бы они применились нужно перезагрузить комп насильно и не заметно. Мне в голову пришел самый лучший вариант положить винду, что бы она как бы и перезагрузилась и пользователь не понял что произошло. Хехе
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot