Как запустить WinZip из Visual Studio без открытия графического интерфейса? - PullRequest
0 голосов
/ 21 июля 2010
int sysReturn = system("\"C:\\Program Files\\WinZip\\winzip32\" -a C:\\LOG\\test.zip C:\\LOG\\LOG_7-20-2010_17_8_48_834.csv");  

Кажется, все работает - так как в нем создается test.zip
Однако он открывает графический интерфейс WinZip (который показывает, сколько было сжато и т. Д. Во время работы моей программы.)

Как я могу пропустить ту часть, где она ничего не открывает в окнах, которые видит пользователь?Мне бы хотелось, чтобы он был «скрыт», поэтому после запуска моей программы все, что вы видите, - это заархивированный файл.

Справочник по параметрам командной строки WinZip:
http://www.memecode.com/docs/winzip.html

Ответы [ 6 ]

3 голосов
/ 21 июля 2010

Я бы согласился с ответами другого человека об использовании другой утилиты. Однако, чтобы ответить на ваш вопрос: ссылка, которую вы разместили, также упоминает другую опцию -min, чтобы минимизировать WinZip. Вы пробовали это? Кроме того, вместо использования system, попробуйте использовать ShellExecute и попросите скрыть окно:

ShellExecute(NULL, NULL, "C:\\Program Files\\WinZip\\winzip32", "-a C:\\LOG\\test.zip C:\\LOG\\LOG_7-20-2010_17_8_48_834.csv", NULL, SW_HIDE);
3 голосов
/ 21 июля 2010

Как насчет прекратить использование исполняемого файла winzip из вашего кода C ++ и использовать вместо него библиотеку? Если у вашего кода есть надежда работать на другой системе, вы не можете полагаться на наличие сторонних исполняемых файлов.

Посмотрите на это: переносимая библиотека zip для C / C ++ (не приложение)

3 голосов
/ 21 июля 2010

Ваш код очень неправильный.

Чтобы создать .zip файлы, вы должны использовать собственную библиотеку .zip в C ++.

Вот несколько бесплатных:

2 голосов
/ 21 июля 2010

Вы хотите это:

http://www.winzip.com/prodpagecl.htm

1 голос
/ 21 июля 2010

Попробуйте использовать execlp. Несколько раз, когда мне приходилось делать это, мне повезло больше, чем с Системой.

execlp("explorer", "/n, /select,c:\\foo.txt", 0)

См. Эту страницу MSDN для подробного примера: http://msdn.microsoft.com/en-us/library/431x4c1w.aspx

1 голос
/ 21 июля 2010

Можете ли вы использовать 7-zip ? Он бесплатный (лицензия LGPL) и может быть запущен из командной строки без создания окна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...