Головна сторінка
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.56 MB
Час: 0.024 c
1-22038
Діма ~
2001-12-18 17:53
2002.01.08
Яким чином передати в файл, що запускається командний рядок?


4-22459
YUS
2001-11-01 03:13
2002.01.08
Майстри, допоможіть ..


1-22023
DelphiG
2001-12-13 03:13
2002.01.08
У мене ? не по темі. Якою ОС найкраще працює Delphi.


1-22142
Початківець
2001-12-20 10:42
2002.01.08
ReplaceDialog


4-22468
Zabl
2001-11-02 11:56
2002.01.08
Витік памяті





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в'єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська