Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.01.08;
Скачать: CL | DM;

Вниз

WinExec или ShellExecute   Найти похожие ветки 

 
PONTIY   (2001-11-01 10:06) [0]

Хотелось без лишних усилий распечатать текстовой файл (досовская кодировка) простой командой в шелле: copy c:\aa.txt \\printsrv\epson
Попытался это сделать функцией ShellExecute, так:
ShellExecute(Handle, "print","aa.txt","D:\\printsrv\epson",nil,SW_HIDE);
Ничего не получилось, он открывал notepad и распечатывал из него, в итоге страдал кодировка текста. А еще не смотря на явное указание параментра (путь дивайса), он все время печатал на принтер установленный в системе по умолчанию. Что еще можно сделать далеко не уходя от этих функций?


 
Anatoly Podgoretsky   (2001-11-01 15:41) [1]

Если ты хочешь через шелл, то ты должен вызывать командный процессор и передавать ему ккак агрумент команду copy


 
PONTIY   (2001-11-02 06:19) [2]

А как это сделать, можно пример в коде показать?


 
Anatoly Podgoretsky   (2001-11-02 09:44) [3]

Процессор copy c:\aa.txt \\printsrv\epson
Запускаешь с помощью ShellExecute
Имя процессора узнаешь через системные переменные


 
PONTIY   (2001-11-02 18:56) [4]

2 Anatoly Podgoretsky

ты меня совсем за идиота держишь? :) покажи как эту консольную команду использовать в ShellExecute. Типа такого...
ShellExecute(Handle, "open","cmd.exe","copy c:\aa.txt \\printsrv\epson
,nil,SW_HIDE);

естественно этот код неправильный, а вот как его написать правильно?


 
Anatoly Podgoretsky   (2001-11-02 23:18) [5]

Ну что ты, тебе же выдана вся информация, все таки программы должен каждый сам писать.
И что у тебя не работает? Работает ли из командной строки?
Ну у меня нет ни "cmd.exe", что бы проверить список его ключей (cmd /?), ни НТ что бы испытать, ни \\printsrv\epson, но для Win9x код примерно следующий, для другой команды, которую я могу проверить:

ShellExecute(Handle,"open","C:\Command.com","/c dir C:\ /s","C:\",SW_SHOWNORMAL);

Твой код грешит следующими погрешностями:
Имя командного процессора надо получать из переменных среды,
Процессор должен запускаться с нужными тебе ключами, я здесь применил /c, Не указан каталог по умолчанию.

Это все неважно, но это погресности.


 
PONTIY   (2001-11-03 11:38) [6]

Да, действительно нужно было начинать задавать параметр с ключа /C, все работает, спасибо. Вообще-то на вряд ли когда-то этот проект будет работать на Win9x операционных системах, но все же на будущее, существует ли такая переменная которая указывает на командный процессор?


 
Anatoly Podgoretsky   (2001-11-03 15:10) [7]

Выполни в досовском окне команду SET, у меня это COMSPEC
То что не будет работать на других ОС еще не означает, что в конкретной ОС имя процессора будет именно cmd.exe или что прочессор будет доступен без указания пути.
А ключ /C не является обязательным, это просто влияет на поведение процессора, также как и другие ключи



Страницы: 1 вся ветка

Текущий архив: 2002.01.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
1-22215
VovaKomarov
2001-12-16 13:36
2002.01.08
обновление клиента


7-22420
Cntcyz.cm crfpfnm cdjt bvz
2001-09-21 21:12
2002.01.08
Народ подскажите как мне быть ?


6-22295
Mamed
2001-10-10 09:15
2002.01.08
Import From Excell


1-22117
Tupnyk
2001-12-19 18:59
2002.01.08
Как прервать запуск экзешника?


1-22228
nazgul
2001-12-15 14:28
2002.01.08
Как сделать?