Страница: 1 | 2 | 3 |
Вопрос: Повторный запуск приложения
Добавлено: 23.11.07 14:00
Автор вопроса: - MaAs† -™ | ICQ: 233628153
Ответы
Всего ответов: 42
Номер ответа: 16
Автор ответа:
Stuart
Вопросов: 5
Ответов: 152
Профиль | | #16
Добавлено: 25.11.07 13:05
Ну значит надо сделать так чтобы нельзя было менять расширение проги.
Вот всё исправил, теперь точно не придерётесь
Const TH32CS_SNAPPROCESS As Long = 2&
Const MAX_PATH As Integer = 260
Private Type PROCESSENTRY32
dwSize As Long
cntUsage As Long
th32ProcessID As Long
th32DefaultHeapID As Long
th32ModuleID As Long
cntThreads As Long
th32ParentProcessID As Long
pcPriClassBase As Long
dwFlags As Long
szExeFile As String * MAX_PATH
End Type
Private Declare Function CreateToolhelpSnapshot Lib "Kernel32" Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, ByVal lProcessID As Long) As Long
Private Declare Function ProcessFirst Lib "Kernel32" Alias "Process32First" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Function ProcessNext Lib "Kernel32" Alias "Process32Next" (ByVal hSnapShot As Long, uProcess As PROCESSENTRY32) As Long
Private Declare Sub CloseHandle Lib "Kernel32" (ByVal hPass As Long)
Private Sub Form_Load()
If App.EXEName = "MyProg" Then 'MyProg имя программы
Dim hSnapShot As Long
Dim uProcess As PROCESSENTRY32
Dim r As Long
hSnapShot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0&
If hSnapShot = 0 Then
Exit Sub
End If
uProcess.dwSize = Len(uProcess)
r = ProcessFirst(hSnapShot, uProcess)
Do While r
Form1.Caption = uProcess.szExeFile
If Form1.Caption = "MyProg.exe" Then m = m + 1
If Form1.Caption = "MyProg.eXe" Then m = m + 1
If Form1.Caption = "MyProg.EXe" Then m = m + 1
If Form1.Caption = "MyProg.EXE" Then m = m + 1
If Form1.Caption = "MyProg.eXE" Then m = m + 1
r = ProcessNext(hSnapShot, uProcess)
Loop
Call CloseHandle(hSnapShot)
If m = 2 Then
MsgBox "Прога уже запущена", 16, "БАХ!"
End
End If
Else
MsgBox "Ну и кого ты решил на**ать? ", 64, "А вот и не запустиш!!"
End
End If
Select Case Form1.Caption
Case "MyProg.exe"
Case "MyProg.eXe"
Case "MyProg.EXe"
Case "MyProg.EXE"
Case "MyProg.eXE"
Case Else
MsgBox "Не дам запустить!", 16, "Ыыы Я это тоже продумал!!!!!"
End
End Select
End Sub
Номер ответа: 17
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #17
Добавлено: 25.11.07 23:35
Так а если прогу переименуют?
Номер ответа: 18
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #18
Добавлено: 25.11.07 23:50
или того хуже - вообще удалят
Номер ответа: 19
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #19
Добавлено: 25.11.07 23:51
Select Case Form1.Caption
Case "MyProg.exe"
Case "MyProg.eXe"
Case "MyProg.EXe"
Case "MyProg.EXE"
Case "MyProg.eXE"
бля плакалъ
А если MYpRoG.exE? Че не подумали?
Номер ответа: 20
Автор ответа:
Stuart
Вопросов: 5
Ответов: 152
Профиль | | #20
Добавлено: 26.11.07 00:30
Так а если прогу переименуют?
если переименуют прогу то вот смотри внимательней код. Начало:
Private Sub Form_Load()
If App.EXEName = "MyProg" Then
......
......
......
......
Else
MsgBox "Ну и кого ты решил на**ать? ", 64, "А вот и не запустиш!!"
End
End If
А если MYpRoG.exE? Че не подумали?
На счет MYpRoG смотри чуть на несколько строчек выши.
Ну а насчет расширения, добавь еще 1 строчку
If Form1.Caption = "MyProg.exE" Then m = m + 1
и внизу тама где Select case form1.caption
case "MyProg.exE"
Dark Brand ну и зачем тут плакать?
Номер ответа: 21
Автор ответа:
Stuart
Вопросов: 5
Ответов: 152
Профиль | | #21
Добавлено: 26.11.07 00:34
и еще MyProg.ExE незабудте ))
Ведь юзер будет всё пробовать для того чтобы запустить программу 2 раз
Номер ответа: 22
Автор ответа:
Stuart
Вопросов: 5
Ответов: 152
Профиль | | #22
Добавлено: 26.11.07 00:43
Забыл еще "MyProg.Exe", всё думаю тема закрыта!
Номер ответа: 23
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #23
Добавлено: 26.11.07 01:05
тупняк
Номер ответа: 24
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #24
Добавлено: 26.11.07 01:06
может кто-нибудь ему скажет?
Номер ответа: 25
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #25
Добавлено: 26.11.07 01:10
2 Stuart
учи комбинаторику
Номер ответа: 26
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #26
Добавлено: 26.11.07 01:11
По моим подсчетам - всего 512 различных вариантов написания в разных регистрах. Так что будь добр перечислить ВСЕ из них а не только те которые тебе понравились. Иначе это не программа у тебя а дырявое корыто!
Номер ответа: 27
Автор ответа:
Stuart
Вопросов: 5
Ответов: 152
Профиль | | #27
Добавлено: 26.11.07 07:42
Блин идею как можно запретить запуск 2 раз я сказал, ну а не до четы пускай исправляет тот кому это нужно
Номер ответа: 28
Автор ответа:
Stuart
Вопросов: 5
Ответов: 152
Профиль | | #28
Добавлено: 26.11.07 07:45
По моим подсчетам - всего 512 различных вариантов написания в разных регистрах. Так что будь добр перечислить ВСЕ из них а не только те которые тебе понравились. Иначе это не программа у тебя а дырявое корыто!
Ооо 3 буквы (exe) ты можеш перебрать 512 раз, в разных регистрах, хотел бы я на это посматреть.
Номер ответа: 29
Автор ответа:
Retupa
Вопросов: 1
Ответов: 51
Профиль | | #29
Добавлено: 26.11.07 12:57
зы: в последнем варианте, программа вообще не должна запуститься никогда, исправь..
Номер ответа: 30
Автор ответа:
Stuart
Вопросов: 5
Ответов: 152
Профиль | | #30
Добавлено: 26.11.07 18:26
Речь не 3 буквах, а об имени проги. В данном случае "MyProg.exe". "MyProg.exe"<>"myProg.exe"... А т.к. название условное, то в принципе вариантов может быть больше. С твоей реализацией кода надо быть последовательным и раз начал делать так, как делаешь, то перебирай все варианты, можно наверное вынести в модуль...
зы: в последнем варианте, программа вообще не должна запуститься никогда, исправь..
Блин небесите меня. Вот скачай, и попробуй запустить эту прогу 2 раз, и сам убедись то что все работает нормально!!!
http://slil.ru/25151717