powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать аналог PrevInstance VB6 для VB.NET?
14 сообщений из 14, страница 1 из 1
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32967735
Маринка*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени!
Проблема в следующем: необходимо сделать, чтобы программу нельзя было запускать повторно.
В MSDN по этому поводу написано:
В Visual Basic 6.0 свойство PrevInstance объекта App применялось для определения того, работает ли предыдущий экземпляр приложения. В Visual Basic .NET не имеется эквивалентного свойства; но вместо него можно использовать следующий программный код.

' Visual Basic .NET
Function PrevInstance() As Boolean
If Ubound(Diagnostics.Process.GetProcessesByName(Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
Return True
Else
Return False
End If
End Function
Прога установлена на сервере терминалов и этот вариант не прокатывает - если хоть один пользователь запустил прогу, то другой открыть не сможет, поскольку процесс уже запущен.
Подскажите, есть ли возможность решить эту проблему?
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32967806
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через мьютексы, смотри приложенный файл
в приложе
_______________________________________________________
Мой папа самых чесных бил !
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32967825
Маринка*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артём, огромное спасибо (поклон до земли)!!!
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32967854
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маринка* (поклон до земли)!!!
да ладно, все мы братья и сетры программисты и дожны помагать друг другу))
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32967876
Маринка*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лиман Артёмчерез мьютексы, смотри приложенный файл
в приложе
Ругается на FindWindowEngine (среди функций API я ее не нашла)
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32967885
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не функция апи, а класс для октивации запущенной копии.
Приведи код ошибки и код использования класса CheckOneInstance
_______________________________________________________
Мой папа самых чесных бил !
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32967950
Flare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут обсуждалось , возможно что-то из того поможет...
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32968020
Маринка*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лиман Артём , я все поняла - ступила, извини. Исправлюсь.
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32968064
Sa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ до полноты комплекта
/topic/97259

Код: plaintext
 uid  =  S a
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32968203
Маринка*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем большое спасибо за дополнительные ссылочки, но уже начала разбираться с кодом, который скинул Лиман Артём, хотелось бы его добить.
Артем, к тебе еще вопросик, при загрузке формы делаю так:
Код: plaintext
1.
2.
3.
If CheckOneInstance.IsInstanceExist(True) Then
  Close()
End If
Ругается:
'IsInstanceExist' is not a member of 'CheckOneInstance'
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32968310
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Маринка*Всем большое спасибо за дополнительные ссылочки, но уже начала разбираться с кодом, который скинул Лиман Артём, хотелось бы его добить.
Артем, к тебе еще вопросик, при загрузке формы делаю так:
Код: plaintext
1.
2.
3.
If CheckOneInstance.IsInstanceExist(True) Then
  Close()
End If
Ругается:
'IsInstanceExist' is not a member of 'CheckOneInstance'

анализ запущенной копии приложения лучше делать в методе main иначе не избежать мерцания формы. Типа так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
public shared sub Main()
        'проверяем не запущена ли уже одна копися приложения
        If CheckOneInstance.IsInstanceExist(True) Then
            'если да, то актирвируем ее и выходим
            exit sub
        'End If
        'если все гуд запускаем главную форму
        Application.Run(new MainForm())

end sub

а насчет ошибки, то чувтвую, что ты что-то опять путаешь, должно быть все тип-тип. Посмтри внимательно код...
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32968363
Маринка*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делала следующим образом:
File -> Add Project -> New Project -> Class Library
File -> Add Existing Item (CheckOneInstance.vb)
Build - > Build CheckOneInstance
Далее в своей проге добавляю содзданную CheckOneInstance.dll в References

Что-нибудь не так? Или я вообще налажала?
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32968398
Фотография Лиман Артём
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
думаю да))) ты наврено проэкт dll'ки назвала CheckOneInstance, да?
значит и создала тем самым namespace CheckOneInstance.
Так что теперь обращаться к твоему классу надо так CheckOneInstance. CheckOneInstance.IsInstanceExist().
Да и зачем для одного класса целуюю дллину делать, импортни файл в главный проэкт да и юзай себе.
PS: дело конечно лично твое


_______________________________________________________
Мой папа самых чесных бил !
...
Рейтинг: 0 / 0
Как сделать аналог PrevInstance VB6 для VB.NET?
    #32968493
Маринка*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Артем, большое тебе человеческое спасибо!
Сделала, как ты указал (через импорт) и все заработало!
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Как сделать аналог PrevInstance VB6 для VB.NET?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]