Запуск и завершение процессов Delphi — среда быстрой разработки, где в качестве языка программирования используется Object Pascal. На сегодняшний день позволяет разрабатывать ПО для Microsoft Windows, Mac OS, iOS и Android и входит в состав Embarcadero RAD Studio https://delphi-hlp.ru/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov.feed 2022-09-13T04:43:52+07:00 Delphi help info@delphi-hlp.ru Joomla! - Open Source Content Management Как запустить и подождать завершения 2х процессов? 2017-10-31T16:50:52+07:00 2017-10-31T16:50:52+07:00 https://delphi-hlp.ru/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/kak-zapustit-i-podozhdat-zaversheniya-2kh-protsessov.html Super User toto44@inbox.ru <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">То, что я понаписал нельзя считать цивильным кодом...просто демонстрация работы функции WaitForMultipleObjects ( код позорный...просто жуть...) </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/kak-zapustit-i-podozhdat-zaversheniya-2kh-protsessov.html">Подробнее...</a></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">То, что я понаписал нельзя считать цивильным кодом...просто демонстрация работы функции WaitForMultipleObjects ( код позорный...просто жуть...) </span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/kak-zapustit-i-podozhdat-zaversheniya-2kh-protsessov.html">Подробнее...</a></p> Как запустить программу и подождать ее завершения? 2017-10-31T16:53:18+07:00 2017-10-31T16:53:18+07:00 https://delphi-hlp.ru/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/kak-zapustit-programmu-i-podozhdat-ee-zaversheniya.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">  </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">pi : TProcessInformation;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">si : TStartupInfo;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">ZeroMemory(@si,sizeof(si));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">si.cb:=SizeOf(si);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">not</span><span class="f_CodeExample" style="color: #000000;"> CreateProcess(</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">PChar(lpApplicationName), </span><span class="f_CodeExample" style="color: #000080;">//pointer to name of executable module</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">PChar(lpCommandLine), </span><span class="f_CodeExample" style="color: #000080;">// Command line.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #000080;">// Process handle not inheritable.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #000080;">// Thread handle not inheritable.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">False, </span><span class="f_CodeExample" style="color: #000080;">// Set handle inheritance to FALSE.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #000080;">// No creation flags.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #000080;">// Use parent's environment block.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #000080;">// Use parent's starting directory.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">si, </span><span class="f_CodeExample" style="color: #000080;">// Pointer to STARTUPINFO structure.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">pi ) </span><span class="f_CodeExample" style="color: #000080;">// Pointer to PROCESS_INFORMATION structure.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Result:=false;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">RaiseLastWin32Error; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Exit;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">WaitForSingleObject(pi.hProcess,INFINITE);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">CloseHandle(pi.hProcess);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">CloseHandle(pi.hThread);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">// ... здесь твой код</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Автор ответа: TAPAKAH</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Примечание Vit:</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Если заменить</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> WaitForSingleObject(pi.hProcess,INFINITE);</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">на </span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #008000; font-weight: bold;">while</span> WaitforSingleObject(PI.hProcess,<span style="color: #800000;">200</span>)=WAIT_TIMEOUT <span style="color: #008000; font-weight: bold;">do</span>   application.ProcessMessages;</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">то вызывающая программа не будет казаться завешанной и будет отвечать на сообщения</span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 12pt;"><span style="font-family: tahoma,arial,helvetica,sans-serif;">Примечание Mikel: В RxLib есть функция для этого: FileExecuteWait</span> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">  </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">var</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">pi : TProcessInformation;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">si : TStartupInfo;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">ZeroMemory(@si,sizeof(si));</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">si.cb:=SizeOf(si);</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">not</span><span class="f_CodeExample" style="color: #000000;"> CreateProcess(</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">PChar(lpApplicationName), </span><span class="f_CodeExample" style="color: #000080;">//pointer to name of executable module</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">PChar(lpCommandLine), </span><span class="f_CodeExample" style="color: #000080;">// Command line.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #000080;">// Process handle not inheritable.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #000080;">// Thread handle not inheritable.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">False, </span><span class="f_CodeExample" style="color: #000080;">// Set handle inheritance to FALSE.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #800000;">0</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #000080;">// No creation flags.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #000080;">// Use parent's environment block.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">nil</span><span class="f_CodeExample" style="color: #000000;">, </span><span class="f_CodeExample" style="color: #000080;">// Use parent's starting directory.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">si, </span><span class="f_CodeExample" style="color: #000080;">// Pointer to STARTUPINFO structure.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #000000;">pi ) </span><span class="f_CodeExample" style="color: #000080;">// Pointer to PROCESS_INFORMATION structure.</span></span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Result:=false;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">RaiseLastWin32Error; </span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Exit;</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">WaitForSingleObject(pi.hProcess,INFINITE);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">CloseHandle(pi.hProcess);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">CloseHandle(pi.hThread);</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000080; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">// ... здесь твой код</span></p> <p class="p_CodeExample"><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></span></p> </td> </tr> </tbody> </table> </div> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> Автор ответа: TAPAKAH</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Примечание Vit:</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Если заменить</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> WaitForSingleObject(pi.hProcess,INFINITE);</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">на </span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #008000; font-weight: bold;">while</span> WaitforSingleObject(PI.hProcess,<span style="color: #800000;">200</span>)=WAIT_TIMEOUT <span style="color: #008000; font-weight: bold;">do</span>   application.ProcessMessages;</span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;"> </span><span style="color: #000000;">то вызывающая программа не будет казаться завешанной и будет отвечать на сообщения</span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="color: #000000; font-family: 'Times New Roman'; font-size: 12pt;"><span style="font-family: tahoma,arial,helvetica,sans-serif;">Примечание Mikel: В RxLib есть функция для этого: FileExecuteWait</span> </span></p> Как сделать, чтобы запускалась только одна копия приложения? 2017-10-31T16:55:56+07:00 2017-10-31T16:55:56+07:00 https://delphi-hlp.ru/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/kak-sdelat-chtoby-zapuskalas-tolko-odna-kopiya-prilozheniya.html Super User toto44@inbox.ru <p> блоке begin..end модуля .dpr:</p> <p><span style="color: #000000; font-family: 'Times New Roman';"> </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: 'Times New Roman'; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> HPrevInst &lt;&gt; </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      ActivatePreviousInstance;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      Halt;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/kak-sdelat-chtoby-zapuskalas-tolko-odna-kopiya-prilozheniya.html">Подробнее...</a></p> <p> блоке begin..end модуля .dpr:</p> <p><span style="color: #000000; font-family: 'Times New Roman';"> </span></p> <div style="margin: 7px 0px; padding: 0px; text-align: justify; text-indent: 0px;"> <table style="border-width: 1px; border-style: solid; border-color: #000000 #c0c0c0 #c0c0c0 #000000; border-spacing: 0px; background-color: #ffffc4;" border="1" cellspacing="0" cellpadding="5" bgcolor="#ffffc4"> <tbody> <tr align="left" valign="top"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p style="text-align: justify;"><span style="color: #000000; font-family: 'Times New Roman'; font-weight: bold;">Code:</span></p> </td> </tr> <tr align="left"> <td style="border-width: 1px; border-style: solid; border-color: #c0c0c0 #000000 #000000 #c0c0c0;"> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">if</span><span class="f_CodeExample" style="color: #000000;"> HPrevInst &lt;&gt; </span><span class="f_CodeExample" style="color: #800000;">0</span> <span class="f_CodeExample" style="color: #008000; font-weight: bold;">then</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">begin</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      ActivatePreviousInstance;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">      Halt;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #000000;">    </span><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> <p class="p_CodeExample"><span class="f_CodeExample" style="color: #008000; font-weight: bold;">end</span><span class="f_CodeExample" style="color: #000000;">;</span></p> </td> </tr> </tbody> </table> </div> <p> </p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/kak-sdelat-chtoby-zapuskalas-tolko-odna-kopiya-prilozheniya.html">Подробнее...</a></p> Поддержка процедур завершения программы 2017-10-31T16:57:21+07:00 2017-10-31T16:57:21+07:00 https://delphi-hlp.ru/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/podderzhka-protsedur-zaversheniya-programmy.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Процедура </span><span style="color: #000000; font-weight: bold;">AddTerminateProc</span><span style="color: #000000;">( TermProc: </span><span style="color: #000000; font-style: italic;">TTerminateProc</span><span style="color: #000000;">); </span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Добавляет процедуру в системный список процедур "завершения программы" (termination procedures list), которые вызываются перед окончанием работы приложения. Каждая такая процедура должна возвращать True, когда приложение может быть беспроблемно завершено или False, если приложение не должно быть завершено. Если любая из указанных процедур возвращает False, то выполнение приложения завершено не будет.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Функция </span><span style="color: #000000; font-weight: bold;">CallTerminateProcs</span><span style="color: #000000;">: </span><span style="color: #000000; font-style: italic;">Boolean</span><span style="color: #000000;">; </span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Функция вызывает все подпрограммы, указанные в списке процедур завершения программы (termination procedures list). Если все процедуры и функции списка возвращают True, то </span><span style="color: #000000; font-weight: bold;">CallTerminateProcs</span><span style="color: #000000;"> возвращает True, в остальных случаях функция возвращает False. Функция </span><span style="color: #000000; font-weight: bold;">CallTerminateProcs</span><span style="color: #000000;"> вызывается внутренне непосредственно перед завершением выполнения приложения.</span></span></p> <p style="text-align: right;"> </p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Процедура </span><span style="color: #000000; font-weight: bold;">AddTerminateProc</span><span style="color: #000000;">( TermProc: </span><span style="color: #000000; font-style: italic;">TTerminateProc</span><span style="color: #000000;">); </span></span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;">Добавляет процедуру в системный список процедур "завершения программы" (termination procedures list), которые вызываются перед окончанием работы приложения. Каждая такая процедура должна возвращать True, когда приложение может быть беспроблемно завершено или False, если приложение не должно быть завершено. Если любая из указанных процедур возвращает False, то выполнение приложения завершено не будет.</span></p> <p><span style="color: #000000; font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"> </span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Функция </span><span style="color: #000000; font-weight: bold;">CallTerminateProcs</span><span style="color: #000000;">: </span><span style="color: #000000; font-style: italic;">Boolean</span><span style="color: #000000;">; </span></span></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Функция вызывает все подпрограммы, указанные в списке процедур завершения программы (termination procedures list). Если все процедуры и функции списка возвращают True, то </span><span style="color: #000000; font-weight: bold;">CallTerminateProcs</span><span style="color: #000000;"> возвращает True, в остальных случаях функция возвращает False. Функция </span><span style="color: #000000; font-weight: bold;">CallTerminateProcs</span><span style="color: #000000;"> вызывается внутренне непосредственно перед завершением выполнения приложения.</span></span></p> <p style="text-align: right;"> </p> Создать процесс с правами админа 2017-10-31T16:59:28+07:00 2017-10-31T16:59:28+07:00 https://delphi-hlp.ru/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/sozdat-protsess-s-pravami-admina.html Super User toto44@inbox.ru <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Должно</span> <span style="color: #000000;">работать</span><span style="color: #000000;">, </span><span style="color: #000000;">только</span> <span style="color: #000000;">лучше</span> <span style="color: #000000;">указывать</span> <span style="color: #000000;">полный</span> <span style="color: #000000;">путь</span> <span style="color: #000000;">до</span> <span style="color: #000000;">папки</span> <span style="color: #000000;">запускаемого</span> <span style="color: #000000;">приложения</span><span style="color: #000000;">... </span><span style="color: #000000;">без</span> <span style="color: #000000;">этого</span> <span style="color: #000000;">у</span> <span style="color: #000000;">меня</span> <span style="color: #000000;">некоторые</span> <span style="color: #000000;">приложения</span> <span style="color: #000000;">не</span> <span style="color: #000000;">запускались</span><span style="color: #000000;">(</span><span style="color: #000000;">один</span> <span style="color: #000000;">из</span> <span style="color: #000000;">параметров</span> <span style="color: #000000;">после</span><span style="color: #000000;"> 'notepad').</span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/sozdat-protsess-s-pravami-admina.html">Подробнее...</a></p> <p><span style="font-family: tahoma,arial,helvetica,sans-serif; font-size: 12pt;"><span style="color: #000000;">Должно</span> <span style="color: #000000;">работать</span><span style="color: #000000;">, </span><span style="color: #000000;">только</span> <span style="color: #000000;">лучше</span> <span style="color: #000000;">указывать</span> <span style="color: #000000;">полный</span> <span style="color: #000000;">путь</span> <span style="color: #000000;">до</span> <span style="color: #000000;">папки</span> <span style="color: #000000;">запускаемого</span> <span style="color: #000000;">приложения</span><span style="color: #000000;">... </span><span style="color: #000000;">без</span> <span style="color: #000000;">этого</span> <span style="color: #000000;">у</span> <span style="color: #000000;">меня</span> <span style="color: #000000;">некоторые</span> <span style="color: #000000;">приложения</span> <span style="color: #000000;">не</span> <span style="color: #000000;">запускались</span><span style="color: #000000;">(</span><span style="color: #000000;">один</span> <span style="color: #000000;">из</span> <span style="color: #000000;">параметров</span> <span style="color: #000000;">после</span><span style="color: #000000;"> 'notepad').</span></span></p> <p class="feed-readmore"><a target="_blank" href ="/index.php/windows/protsessy-potoki-pamyat-zadachi/zapusk-i-zavershenie-protsessov/sozdat-protsess-s-pravami-admina.html">Подробнее...</a></p>