Как я могу попросить Windows напечатать документ? - PullRequest
5 голосов
/ 08 октября 2009

Я хочу (программно) распечатать документы различных типов, попросив Windows сделать это (используя приложение по умолчанию). Как я могу это сделать (в .NET или C ++ / Win32 API)?

Например, если на компьютере установлены MS Office и Acrobat Reader, файлы PDF должны быть распечатаны Acrobat Reader, а файлы DOC - MS Word. Но если у меня не установлен MS Office, файлы DOC следует печатать с помощью Wordpad или OpenOffice.org Writer, если последний установлен, или любого другого приложения, которое в настоящее время является ассоциацией по умолчанию для файлов этого типа.

Ответы [ 3 ]

6 голосов
/ 08 октября 2009

Попробуйте использовать функцию ShellExecute .

Например, в C:

 ShellExecute(my_window_handle, "print", path_to_file, NULL, NULL, SW_SHOW);
5 голосов
/ 08 октября 2009

Звоните ShellExecute. Используйте «print» для параметра lpOperation.

4 голосов
/ 08 октября 2009

Вот код для C #:

    public void ShellExecute(string filename, string verb)
    {
        System.Diagnostics.ProcessStartInfo si = new System.Diagnostics.ProcessStartInfo();
        si.UseShellExecute = true;
        si.FileName = filename;
        si.Verb = verb;
        System.Diagnostics.Process.Start(si);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...