Я пытаюсь показать пользователю текстовый файл после операции, завершенной в c-программе с использованием winapi, но я хочу, чтобы файл был открыт с помощью блокнота (или приложения текстового процессора по умолчанию). как это сделать (открытие текстового файла с использованием приложения по умолчанию окна) с помощью winapi?Как открыть текстовый файл в блокноте в программе на C?
ответ
ShellExecute()
является то, что вы ищете, например:
#include <shellapi.h>
ShellExecute(NULL, NULL, "C:\\path\\to\\myfile.txt", NULL, NULL, SW_SHOWNORMAL);
Не забудьте инициализировать COM перед вызовом. –
Учитывая файл test.txt
, вы можете отобразить его в notepad
на Windows, с:
#include <stdlib.h>
int main() {
system ("notepad test.txt");
return 0;
}
Если вы можете быть уверены, что ваша программа по умолчанию будет cmd
оболочки, вы можете просто сказать system ("test.txt")
и файл будет открыт в любом текстовом редакторе, установленном по умолчанию, но указание редактора более безопасно, поскольку оно касается таких случаев, как программа, скомпилированная под Cygwin, где оболочка по умолчанию будет sh
, которая по умолчанию не открывает текстовые файлы, когда вы поставляете имя файла в командной строке.
Если вы не можете быть уверены, что ваша программа всегда будет скомпилирована в Windows, я бы предпочел решение ShellExecute()
, изложенное @Remy Lebeau. Программа, содержащая #include <shellapi.h>
, и вызов ShellExecute()
не будет скомпилирован в системе, отличной от Windows (тем самым предотвращая ошибку), тогда как мое решение будет скомпилировано в системе, отличной от Windows, но не будет выполнено во время выполнения при вызове system()
.
Что делать, если в вашей системе нет Блокнота (у меня нет) или пользователь выбрал другой текстовый редактор по умолчанию? –
Просто 'system (" test.txt ");' – BLUEPIXY
Если ваша система не имеет блокнота, вы почти наверняка не используете Windows и поэтому не имеете отношения к вопросу о том, как это сделать с помощью winapi. –
- 1. Как открыть файл из потока в блокноте
- 2. Как открыть файл VBA в блокноте или в блокноте ++
- 3. Как открыть текстовый файл в C#
- 4. Программным открыть текстовый файл в веб-браузере
- 5. Как открыть файл в блокноте ++ с помощью C++?
- 6. проверить, открыт ли текстовый файл в блокноте
- 7. Как просмотреть текстовый файл в блокноте при нажатии кнопки?
- 8. Где вы сохраняете файл в блокноте, чтобы python мог открыть его в программе?
- 9. Открыть файл в блокноте через проект Java
- 10. Как открыть файл в java-программе?
- 11. Как открыть файл во внешней программе?
- 12. Открыть текстовый файл в C# программным способом
- 13. Как открыть текстовый файл?
- 14. Как открыть файл в программе с пакетом?
- 15. Как открыть текстовый файл в Java
- 16. Как открыть текстовый файл в блокноте с окном cmd в фоновом режиме?
- 17. Как открыть пользовательский файл расширения в программе?
- 18. Как открыть файл в своей программе по умолчанию
- 19. Как открыть текстовый файл в Squeak4.1
- 20. Открыть текстовый файл в android
- 21. Как открыть файл .log в блокноте в java?
- 22. Я не могу открыть файл Txt в программе языка C
- 23. Как открыть пакетный файл в пакетном файле, но в блокноте?
- 24. Как открыть встроенный текстовый файл в WinRT?
- 25. Как открыть текстовый файл в Python?
- 26. Как открыть текстовый файл в python?
- 27. Импортировать текстовый файл с помощью терминала в программе программирования C
- 28. Пакет: Открыть конкретный файл в определенной программе?
- 29. Как открыть текстовый файл в ListView андроида
- 30. Как открыть текстовый файл, введенный от пользователя на C
Вы имеете в виду в окне командной? Сделайте себя понятным – 0decimal0
Вы имеете в виду [ShellExecuteEx] (http://msdn.microsoft.com/en-us/library/windows/desktop/bb762154 (v = vs.85) .aspx)? –