Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > не запускается внешняя программа


Автор: gordmiand 5.10.2009, 22:15
Button1Click:
if (OpenDialog->Execute())  {открытие файла и его обработка}


Button2Click:
ShellExecute( Application->Handle, NULL, "файл.exe", NULL, NULL, SW_SHOW );


Подскажите пож-та почему ПОСЛЕ успешного выбора файла и его загрузки (в Button1Click) не выполняется код из Button2Click (т.е. не запускается указанный экзешник) и как это исправить???

Автор: Данкинг 5.10.2009, 22:24
Попробуй так:
Код

ShellExecute( Application->Handle, NULL, PChar("файл.exe"), NULL, NULL, SW_SHOW );

Автор: shklowsky 5.10.2009, 22:41
Цитата(gordmiand @  5.10.2009,  22:15 Найти цитируемый пост)
открытие файла и его обработка


Можно посмотреть?


Автор: dumb 5.10.2009, 22:48
OpenDialog по умолчанию меняет каталог на тот, где был выбран файл.

посему либо в коде:
Код
OpenDialog->Options = OpenDialog->Options << ofNoChangeDir;

либо поставить эту опцию в дизайнере.

Автор: gordmiand 6.10.2009, 20:03
Данкинг: PChar(...) никакого эффекта не дает...
shklowsky: даже при пустом коде (просто успешный (кнопка Открыть) выбор файла) в OpenDialog->Execute такое происходит...

Автор: Лапоть 6.10.2009, 21:11
Код
 
  // дык передай ПОЛНОЕ имя файла!
  ShellExecute( Application->Handle, NULL, OpenDialog->FileName.c_str(), NULL, NULL, SW_SHOW );

Автор: shklowsky 6.10.2009, 22:26
Цитата(gordmiand @  6.10.2009,  20:03 Найти цитируемый пост)
в OpenDialog->Execute такое происходит... 


вот и догадайся что происходит...
ежли execute() нештатно работает, предположу что память портится раньше.
CodeGuard в этом случае. и выцеплять. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)