casa
Top.Mail.Ru Yandeks.Metrika
Forum: "WinAPI";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

giù

WinExec o ShellExecute Trova rami simili


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 не является обязательным, это просто влияет на поведение процессора, также как и другие ключи



Pagine: 1 tutto il ramo

Forum: "WinAPI";
Archivio attuale: 2002.01.08;
Scarica: [xml.tar.bz2];

al piano di sopra









Memoria: 0.83 MB
Ora: 0.041 c
1-22147
vinni2000
2001-12-20 12:59
2002.01.08
Hai bisogno di consigli su RichEdit !!!!!!!!


1-22056
Delphimun
2001-12-15 13:11
2002.01.08
Come creare una risorsa usando brcc32.exe?


14-22410
fint
2001-11-08 15:10
2002.01.08
Provare


14-22405
Kozhanov
2001-11-12 11:53
2002.01.08
Puzzle inglese


1-22078
DJ X
2001-12-15 16:11
2002.01.08
Conversione, registro, INI





afrikaans albanese Arabic armeno Azero basco bielorusso Bulgarian catalano Cinese (semplificato) Cinese (tradizionale) croato Ceco danese Dutch Inglese estone filippina Finnish Francese
galiziano georgiano Tedesco greco Creolo haitiano ebraico hindi ungherese islandese Indonesian irlandese Italiano Giapponese Korean lettone lituano macedone Malay maltese Norwegian
persiano polacco Portoghese rumeno Russian serbo Slovak sloveno Spagnolo swahili Swedish Thai turco ucraino Urdu vietnamita gallese yiddish bengalese bosniaco
Cebuano esperanto Gujarati Hausa Hmong Igbo giavanese kannada khmer lao latino maori marathi mongolo nepali punjabi somalo tamil telugu Yoruba
zulù
Английский Francese tedesco italiano portoghese russo spagnolo