Страница: 1 |
Страница: 1 |
Вопрос: Можно оптимизировать?
Добавлено: 26.02.05 22:15
Автор вопроса: Андрей | ICQ: 201110705
Мне нужно, что бы приложение запускалось только в единственном экземпляре.....
Вот код, работает как хотел:
_________________________
Imports System
Imports System.Diagnostics
Module Module2
Public Sub onlyStart()
Dim Localall As Process() = Process.GetProcesses
Dim myProcess As Process = Process.GetCurrentProcess
Dim Only As Boolean
Dim i As Integer
For i = 0 To Localall.Length - 1
If myProcess.ToString = Localall(i).ToString Then
If Only Then
End
End If
Only = True
End If
Next
End Sub
End Module
____________________________________
В FormLoad запускаю процедуру - вопросов не возникает.
Кто может предложить более оптимальный код, буду благодарен :)
Ответы
Всего ответов: 6
Номер ответа: 1
Автор ответа:
AlexF
Вопросов: 20
Ответов: 113
Профиль | | #1
Добавлено: 26.02.05 23:42
Public Sub onlyStart()
If App.PrevInstance = True Then
End
End If
End Sub
Номер ответа: 2
Автор ответа:
Андрей
ICQ: 201110705
Вопросов: 1
Ответов: 14
Профиль | | #2
Добавлено: 27.02.05 00:27
Извини AlexF, но в VB.Net нет "App" - есть "Application". А у "Application" нет метода PrevInstance. По крайней мере у меня это не работает =(
Номер ответа: 3
Автор ответа:
AlexF
Вопросов: 20
Ответов: 113
Профиль | | #3
Добавлено: 27.02.05 00:36
sorry, ne obratil vnimanie, chto .Net
Номер ответа: 4
Автор ответа:
Андрей
ICQ: 201110705
Вопросов: 1
Ответов: 14
Профиль | | #4
Добавлено: 27.02.05 00:41
Ничего, по крайней в VB.6 работает )...проверил, но интересен .Net
Номер ответа: 5
Автор ответа:
Павел
Администратор
ICQ: 326066673
Вопросов: 368
Ответов: 5968
Web-сайт:
Профиль | | #5
Добавлено: 27.02.05 10:54
С помощью Mutex'ов.
Пример кода посмотри на GotDotNet.ru в FAQ по форуму WinForms.
Номер ответа: 6
Автор ответа:
Андрей
ICQ: 201110705
Вопросов: 1
Ответов: 14
Профиль | | #6
Добавлено: 27.02.05 13:12
Спасибо Павлу, за ссылдочку....... если приведёный код на С# перевести к VB.Net то получилось следуешие :
___________________________
Dim onlyStart As Boolean
 im m As New System.Threading.Mutex(False, "MyMutex", onlyStart)
If Not onlyStart Then
End
End If
End Sub
___________________________
работает и код более компактный!