• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Написать программу, которая вводит название другой программы и запускает её

  • Автор темы Автор темы k1d
  • Дата начала Дата начала

k1d

Новые
Регистрация
16 Май 2014
Сообщения
18
Реакции
0
Баллы
0
Написать программу, которая вводит название другой программы и запускает её

Написать программу, которая вводит название другой программы и запускает ее.
 
Куда вводит? Если просто запустить, то это либо winexec(), либо ShellExecute(), либо execl
 
Куда вводит? Если просто запустить, то это либо winexec(), либо ShellExecute(), либо execl
сделал вот так
exec('c:\program files(x86)\aimp3\aimp3.exe');

но программа запускается и сразу же завершается, а аимп не запускается всё равно.. так что за нафиг с ним?
в турбо паскале это делал, если что)
 
Exec (процедура) (модуль Dos)



Выполняет заданную программу с заданной командной строкой.
Объявление

Procedure Exec(Path, CmdLine : String);

Режим

Real, Protected
Замечания

Ошибки сообщаются в переменной DosError.


При возникновении аварийных ситуаций устанавливаются такие

коды ошибок:
2 - файл не найден;
8 - нет необходимой памяти;
10 - ошибка в оборудовании;
11 - ошибка в формате.

Пример

{$M $4000, 0, 0 } { 16Kб стек, нет кучи }
uses Dos;

var
ProgramName, CmdLine : String;
begin
Write('Имя программы для запуска (с путём) : ');
ReadLn(ProgramName);
Write('Параметры командной строки ', ProgramName, ' : ');
ReadLn(CmdLine);
WriteLn('Пробую запустить...');
SwapVectors;
Exec(ProgramName, CmdLine);
SwapVectors;
WriteLn('... вернулся из Exec');
{ Была ошибка ? }
if DosError <> 0 then
WriteLn('Ошибка DOS #', DosError)
else
WriteLn('Запуск был удачным. Код выхода = ', DosExitCode);
end.


проверь какая ошибка возвращается
 
Exec (процедура) (модуль Dos)



Выполняет заданную программу с заданной командной строкой.
Объявление

Procedure Exec(Path, CmdLine : String);

Режим

Real, Protected
Замечания

Ошибки сообщаются в переменной DosError.


При возникновении аварийных ситуаций устанавливаются такие

коды ошибок:
2 - файл не найден;
8 - нет необходимой памяти;
10 - ошибка в оборудовании;
11 - ошибка в формате.

Пример

{$M $4000, 0, 0 } { 16Kб стек, нет кучи }
uses Dos;

var
ProgramName, CmdLine : String;
begin
Write('Имя программы для запуска (с путём) : ');
ReadLn(ProgramName);
Write('Параметры командной строки ', ProgramName, ' : ');
ReadLn(CmdLine);
WriteLn('Пробую запустить...');
SwapVectors;
Exec(ProgramName, CmdLine);
SwapVectors;
WriteLn('... вернулся из Exec');
{ Была ошибка ? }
if DosError <> 0 then
WriteLn('Ошибка DOS #', DosError)
else
WriteLn('Запуск был удачным. Код выхода = ', DosExitCode);
end.


проверь какая ошибка возвращается

постоянно выбивает ошибку 2..
 
Попробуй указать путь C:\PROGRA~2\aimp3\aimp.exe
 
не помню как правильно в паскале, но бэкслэши не двойные ли должны быть?
 
Назад
Сверху