Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
9 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 148
1

Ошибка при запуске другой программы через ShellExecute

05.07.2013, 07:58. Показов 1070. Ответов 4
Метки нет (Все метки)

Доброго всем! если не трудно помогите, вот уже 2 дня голова болит из за ошибки. Делаю я отдельную программу для обновления через компонент idFTP, и соответственно запускаю её через основную программу, которую надо обновить при запуске выходит dwwin.exe(в народе он Доктор Ватсон) эта ошибка(см. ссылку рисунок).

примеры:
вот код где запускаю программу для обновления
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
if version1<>version2 then
 case Application.MessageBox(PChar('Доступно обновление '+ version2), 'Сообщение', MB_OKCANCEL
   + MB_ICONINFORMATION) of
   IDOK:
     begin
     ShellExecute(Handle, nil, PChar(ExtractFilePath(Application.ExeName)+'updater.exe'), nil, nil, SW_SHOWNORMAL);
     idftp1.Disconnect;
     Application.Terminate;
     end;
   IDCANCEL:
     begin
 
     end;
 end;
а это где происходит само скачивание с вызовом потока
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdFTP, ExtCtrls, ComCtrls, sGauge, WinSock,ShellAPI;
 
  procedure  Incedit1; stdcall;
type
 
procedure incedit1;
begin
form1.IdFTP1.Host:='172.16.104.55';
form1.IdFTP1.Port:=21;
form1.IdFTP1.User:='arhiv';
form1.IdFTP1.Password:='arhiv';
form1.idftp1.Connect(true);
try
form1.idFTP1.Get('Project1.exe','Project1.exe',true);
finally
form1.IdFTP1.Disconnect;
EndThread(0);
end;
end;
 
 
procedure TForm1.FormShow(Sender: TObject);
var
 th1:Cardinal;
begin
  DeleteFile('Project1.exe');
h1 := BeginThread(nil, 0, @incedit1, nil, 0, th1);
end;
 
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
TerminateThread(h1,0);
end;
0
Миниатюры
Ошибка при запуске другой программы через ShellExecute  
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.07.2013, 07:58
Ответы с готовыми решениями:

Ошибка с путями при запуске другой программы
Есть программа_1 написанная на c#. Обычным двойным щелчком программа_1 запускается без ошибок. Я...

Ошибка при запуске программы скомпилированной через pyinstaller
Я скомпилировал программу через pyinstaller, начал проверять программу, но при запуске писало: ...

Ошибка при запуске программы через телефон (failed linking references)
Создаю программу Xamarin.Forms по дефолтному кейсу c#. При запуске программы через телефон выдает...

Ошибки при запуске программы из другой программы - неверная рабочая директория
Вот у меня есть несколько программ написанных под VisualBasic.net. После чего, я создаю спец...

4
9 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 148
05.07.2013, 14:20  [ТС] 2
проблема решена! в процессе висела
0
2646 / 2269 / 278
Регистрация: 24.12.2010
Сообщений: 13,725
05.07.2013, 15:30 3
function incedit1(ftp: TidFTP): Integer;
begin
result := False;
try
ftp.Host:='172.16.104.55';
ftp.Port:=21;
ftp.User:='arhiv';
ftp.Password:='arhiv';
ftp.Connect(true);
try
ftp.Get('Project1.exe','Project1.exe',true);
Result := True;
finally
ftp.Disconnect;
end;
except
end;
end;
..
h1 := BeginThread(nil, 0, @incedit1, IdFTP1, 0, th1);
0
9 / 9 / 1
Регистрация: 12.10.2011
Сообщений: 148
05.07.2013, 15:32  [ТС] 4
ок! но уже всё норм
0
2646 / 2269 / 278
Регистрация: 24.12.2010
Сообщений: 13,725
05.07.2013, 15:37 5
Цитата Сообщение от Mirhat89 Посмотреть сообщение
уже всё норм
Если не вникнешь в мой пример, то рано или поздно грабли выстрелят.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.07.2013, 15:37

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

В чем ошибка? При запуске программы открывается консоль и сразу ошибка о завершении программы
К тому же выдает warning: deprecated conversion from string constant to 'char*' . #include...

Выбор другой формы при запуске программы
Здравствуйте. При создании программы и дальнейшем её запуске возникает форма, которая создавалась...

Не выполняется часть кода при автозагрузке/запуске из другой программы
Здравствуйте. Столкнулся с такой проблемой: есть программа, прописанная в автозапуск, которая...

Ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске программы возникает ошибка
Я знаю точно, что ошибка в конструкторе с параметром. Компилятор не ругается, но при запуске моей...

Ошибка при запуске программы
Добрый день ! У меня выдает ошибку при запуске программы . Драйвера все новые , ничего толком и...

Ошибка при запуске программы
Всем привет, компилю программу в Visual 2010, язык C++. Компилирую как в Debug, так и в Release. На...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.