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

Вниз

Командная строка & Delphi   Найти похожие ветки 

 
programmer90   (2008-07-17 11:47) [0]

Здравствуйте уважаемые мастера!
Как управлять коммандной строкой средствами Delphi? Под словом управлять
подразумевается передача параметров коммандной строке. Пример: я хочу запустить исполняемый
файл находящийся в  d:\folder\exe1.exe  при этом передать ей параметр pause после выполнения, то есть увидеть результат выполнения. Использовал ShellExecute, WinExec с их помощью нельзя передать
параметр командной строке. Приложение при запуске в Windows-e "убегает", то есть быстро выполняется, кароч  16-битное приложение. Заранее всем спасибо.


 
{RASkov} ©   (2008-07-17 11:50) [1]

запустить cmd тем же Shellexecute в котором параметром запустить приложение...


 
Ega23 ©   (2008-07-17 11:57) [2]

Открываешь Notepad, пишешь там
call d:\folder\exe1.exe
pause


Сохраняешь это как my_cmd.cmd

Через ShellExecute запускаешь my_cmd.cmd


 
brother ©   (2008-07-17 11:57) [3]

> с их помощью нельзя передать
> параметр командной строке

да ты что???


 
brother ©   (2008-07-17 11:59) [4]

> параметр pause после выполнения

что-то новенькое...

> call d:\folder\exe1.exe
> pause

зачем, а так все так и надо
зы этот скрипт можно и самому из программы в фалй записать)


 
{RASkov} ©   (2008-07-17 12:02) [5]

Дополню к [1]
...команды разделяются двумя & т.е. нечто так "/k cls && dir C: && pause"
Вместо любой команды, например вместо cls, можно написать полное имя твоей программы....
Пример:
ShellExecute(Handle, nil, PChar(GetEnvironmentVariable("ComSpec")), "/c notepad && pause", nil, SW_SHOWNORMAL);


 
{RASkov} ©   (2008-07-17 12:08) [6]

+ ...возможно вместо pause будет достаточно параметра /k вместо /c из последней строки примера в [5]


 
programmer90   (2008-07-17 17:47) [7]

Проверил код  
[5], все работает в D2007 for Win32,  а  в .NET этот код не работает.
ShellExecute(Handle, nil, PChar(GetEnvironmentVariable("ComSpec"))- здесь в конце останавливается курсор и пишет ошибку "Invalid Typecast".
Придется через скрипт [2]. Через скрипт, конечно надежнее- везде работать будет, но то что показано [5] , мне больше подходило потому что, он сразу делает паузу, а в скрипте он сначала показывает директорию, затем потом пауза, но это конечно мелочи жизни. Другой минус скрипта то что он не супер, хотя это совсем не  страшно пока, главное в .NET работает. Буду очень благодарен, кто сможет решить задачу в .NET, без создания скрипта .
Всем  большое спасибо, узнал много интересного...


 
programmer90   (2008-07-18 12:53) [8]

Я немного подумал, а что если вместо  ShellExecute(Handle, nil, PChar(GetEnvironmentVariable("ComSpec")), "/c notepad && pause", nil, SW_SHOWNORMAL);  насписать ShellExecute(Handle, nil," cmd", "/c notepad && pause", nil, SW_SHOWNORMAL); теперь и в .NET работает...
А несчет [6], я проверил  так
ShellExecute(Handle, nil, PChar(GetEnvironmentVariable("ComSpec")), "/c notepad && pause", nil, SW_SHOWNORMAL); -работает,
ShellExecute(Handle, nil, PChar(GetEnvironmentVariable("ComSpec")), "/K notepad ", nil, SW_SHOWNORMAL); так не работает...


 
{RASkov} ©   (2008-07-18 16:25) [9]

> а что если вместо

> Я немного подумал

Подумать чуть больше? :)

Подсказка: интерпретатор командной строки может иметь отличное имя от cmd.... и тут твоя программа "упала".

> А несчет [6], я проверил  так

и я проверял, и просто так бы не отвечал... Хотя я намерянно указал в начале [6] "...возможно ...."

ЗЫ: Я с нет незнаком, поэтому откланиваюсь.... сорри.



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

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

Наверх





Память: 0.47 MB
Время: 0.092 c
15-1215433698
DRG
2008-07-07 16:28
2008.08.24
C# или С++ с чего начать?


15-1214988339
Dennis I. Komarov
2008-07-02 12:45
2008.08.24
У ICQ опять чегото поменяли?


2-1216636344
ekto
2008-07-21 14:32
2008.08.24
Что происходит при вызове DataSet.Post?


15-1215011005
alex-drob
2008-07-02 19:03
2008.08.24
Apache не виден из интернета


2-1216278320
PPP
2008-07-17 11:05
2008.08.24
что такое {$A8,B-,C+,D+,E-,F-,G+,H+,I+,J-,K-,L+,M-,N+,O+,P+,Q-,R-





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский