Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
7-22421
Shen
2001-08-28 15:05
2002.01.08
Закачка данных через com порт


1-22042
Angel S
2001-12-15 23:04
2002.01.08
Загрузка файла JPG в Image


3-21918
SVS
2001-12-04 13:11
2002.01.08
заполнение OleContainer из BlobField


4-22495
sob
2001-11-05 09:57
2002.01.08
основы WinAPI


1-22120
Leviathan
2001-12-19 22:26
2002.01.08
Библиотеки иконок





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский