Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отслеживать запуск программы, Определять запуск одной и той программы 
:(
    Опции темы
Vano-K
  Дата 19.4.2003, 06:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 4.4.2003
Где: Украина, Днепропе тровск

Репутация: нет
Всего: нет



Доброе утро, добрый день, добрый вечер - кому как. tounge.gif
Мне нужна помощь(это всем надо). Так вот продолжаю, мне нужна помощь.
У меня есть откомпелированный ехе фаил. Он будет запускатся автоматически(я пропишу в автозапуск), и будетсидеть в трее, но скрыта. Но мне необходимо чтобы: вдруг какойто осёл захочит запустить ещё один раз этот же ехе фаил, и когда он запускает прога находила что: запушен один и тот - же фаил и например выскакивал эрор, или самоуничтожалась прога, или что-то ещё, но так чтобы это "что то ещё" я мог устанавливать сам. exclamation.gif
Навсякий случай: у меня ХР exclamation.gif
З.Ы. Огромное спасибо.
PM MAIL   Вверх
cardinal
Дата 19.4.2003, 20:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Ты можешь когда программа запускается писать в application's registry в определенное место допустим 1, а при выходе писать туда 0. Когда ты запускаешь второй раз туже программу, то в registry соответственно будет стоят 1 (потому, что другая первая запущенная еще не востановила значение) и ты на это делаешь что хочешь. Это один из способов, который можно попробовать, но с ним могут быть проблемы. Как писать в реестр написано снизу. Там есть пару функций. Как записывать я знаю, а как читать у меня не было примера - сам посмотри. Вот так записывается что-то в реестр:

Код
SaveSetting "RegCust", "Startup", "Backup", strDate


Второй способ - это не придумывать тут ничего, что может работать, а может и нет во всех виндах, а просто записать тот же нолик или единичку, соответственно, в файл сообственный типа .ini.

Успехов!

Навсякий случай: у меня 98 smile.gif

Цитата
Managing Application Settings


In Microsoft Windows 3.1 and earlier versions of Windows, program settings like window positions, files used, and other items were commonly stored in .ini files. In Windows NT, Windows 95, and later versions of Windows these program settings are stored in the system registry.

Visual Basic provides a standard registry location for storing program information for applications created in Visual Basic:

HKEY_CURRENT_USER\Software\VB and VBA Program Settings\appname\section\key

Visual Basic also provides four statements and functions to manipulate the settings stored in your application's registry location.

Function or Statement Description
GetSetting          function Retrieves registry settings.
SaveSetting        statement Saves or creates registry settings.
GetAllSettings      function Returns an array containing multiple registry settings.
DeleteSetting      statement Deletes registry settings.


Note  To view registry entries, use the Regedit application, included with Windows 95 and Windows NT.

To read more about using application settings, see the following topics:

Creating or Saving Application Settings  Explains how to save new values for registry keys stored in your application's registry location.


Retrieving Application Settings  Explains how to retrieve registry values stored in your application's registry location.


Deleting Application Settings  Explains how to delete registry keys, sections, or an application's registry location.




--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Vano-K
Дата 20.4.2003, 06:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 4.4.2003
Где: Украина, Днепропе тровск

Репутация: нет
Всего: нет



Что-то уж больно сложно, говорили что это намного проще..............
PM MAIL   Вверх
cardinal
Дата 20.4.2003, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Ничего сложного тут нет. Вот например тебе исходник программки которая запускается только один раз. По идее должна быть какая-то API которая говорит о том что копия программы уже была запущена, но мне она не известна. В этом исходнике зарыта только одна неприятность - что произойдет если прога повиснет и тебе придется перезагрузить компер? Можно на этот случай написать маленькую прогу, которая также будет сидеть в автозапуске и обнулять твое значение при запуске винды до запуска твоей проги. Таким образом программа будет запускаться даже при неправильном ее закрытии после перезагрузки винды.

Код
Dim h As Boolean

Private Sub Form_Load()
Dim read As Byte
Open App.Path & "\my.ini" For Binary As #1
   Get #1, 1, read
   If read = 1 Then
       Close #1
       h = True
       Unload Me
   Else
       Put #1, 1, Chr$(1)
   End If
Close #1
End Sub

Private Sub Form_Unload(Cancel As Integer)
If Not h Then
   Open App.Path & "\my.ini" For Binary As #1
       Put #1, 1, Chr$(0)
   Close #1
End If
End Sub



--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Vano-K
Дата 22.4.2003, 07:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 4.4.2003
Где: Украина, Днепропе тровск

Репутация: нет
Всего: нет



Огромное спасидо(этот пример мне подойдёт), я нашол пример тоже (там можно сново и сново запускать ехе, а в техтбохе добовляется строка), но твой тоже неплох, Огромнейшое спасибо
PM MAIL   Вверх
Guest_Farkhod
Дата 25.4.2003, 18:15 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Можно и по проще
if app.Previnstance=true then
end
else
.....
end if
smile.gif
  Вверх
cardinal
Дата 26.4.2003, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Вот этого человек в принципе и хотел smile.gif - просто и коротко,
спасибо за такой простенький вариант!

А вот вопрос на всех виндах это проходит? Человек то под XP работает.

Я знаю только следующее:
Если посмотреть на то, что происходит в С++, но вот там прогой управляет функция WinMain(). Параметры у функции бывают разные, но вот что сказано в умной книге (Крис Паппас и Уильям Мюррей написали): "в ранних версиях Windows (в плоть до 3.x) параметр hPreInst позволял определить, были ли запущены другие копии приложения. В Windows 95/98/NT для каждого запущенного модуля выделяется отдельное адресное пространство, в связи с чем параметр hPreInst всегда устанавливается равным NULL". Слова Previnstance и hPreInst очень похожи...

Но тот факт, что я думаю, что у Guest_Farkhod его вариант работал говорит о том, что можно и так решить поставленную задачу потому, что я что-то сомневаюсь, что у Guest_Farkhod "Windows в плоть до 3.x" biggrin.gif


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0447 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.