Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 28.08.2003, 15:59   [включить плавающее окно]   #1
YuriyS
Новенький
Автор темы
 
Регистрация: 27.06.2003
Контроль запуска только одного экземпляра приложения (калькулятора и т.п.)

Ситуация такая - есть прога на Builder 5, которая по желанию пользователя запускает одну из стандартных программ Винды - ну там калькулятор или интернет эксплорер - задача в том, чтобы не размножать эти окошки до бесконечности при каждом таком желании, а если чтоб одновременно был запущен только 1 экземпляр этой программы - короче надо в системе как то посмотреть, не запущена ли уже эта прога...
Запускаю проги через WinExec() например WinExec("Calc.exe",SW_SHOWNORMAL); и т.п. Если кто знает, большая просьба ответить
YuriyS вне форума  
Ответить с цитированием
Непрочитано 28.08.2003, 16:01   [включить плавающее окно]   #2
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Помоему похожая проблема. FindProcess поможет и тут
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 28.08.2003, 16:13   [включить плавающее окно]   #3
YuriyS
Новенький
Автор темы
 
Регистрация: 27.06.2003
Цитата
Первоначальное сообщение от Darthman
Помоему похожая проблема. FindProcess поможет и тут
я читал то сообщение, но почему-то в своем 5 Builder-е ее не нашел может она как то дополнительно ставится или еще что - искал везде - весь Program Files перерыл поиском файла по содержимому В каком компиляторе попадалась вам эта функция ?
YuriyS вне форума  
Ответить с цитированием
Непрочитано 28.08.2003, 16:23   [включить плавающее окно]   #4
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Все из хелпа Borland C++ Builder 5.

Sample Code
-----------
Код:
   HANDLE hMapping;

   hMapping = CreateFileMapping( (HANDLE) 0xffffffff,

                                 NULL,
                                 PAGE_READONLY,
                                 0,
                                 32,
                                 "MyTestMap" );
   if( hMapping )
   {
      if( GetLastError() == ERROR_ALREADY_EXISTS )
      {
      //
      // Display something that tells the user
      // the app is already running.
      //
         MessageBox( NULL, "Application is running.", "Test", MB_OK );

         ExitProcess(1);
      }
   }
   else
   {
   //
   // Some other error; handle error.
   //
      MessageBox( NULL, "Error creating mapping", "Test", MB_OK );
      ExitProcess(1);
   }

Additional reference words: 1.10 1.20
KBCategory: kbprg kbcode
KBSubcategory: W32s
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Непрочитано 28.08.2003, 16:35   [включить плавающее окно]   #5
v26*VSofter
Интересующийся
 
Регистрация: 21.08.2003
Адрес: Москва
YuriyS
Смотри Win32 SDK. По-моему, файлик называется win32.hlp и находится в c:\program files\common files\borland shared\mshelp.
Это функция не Builder'a, а WinAPI.
__________________
v26* Lives!
v26*VSofter вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 28.08.2003, 17:01   [включить плавающее окно]   #6
Darthman
Мужской Опытный
 
Аватар для Darthman
 
Регистрация: 10.02.2003
Адрес: Москва
Я бы проще сказал.
Главное меню->Help->Win32 SDK
__________________
Если работает, лучше не трогай!
Darthman вне форума  
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 22:16. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey