Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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
Ооо 3 буквы (exe) ты можеш перебрать 512 раз
Речь не 3 буквах, а об имени проги. В данном случае "MyProg.exe". "MyProg.exe"<>"myProg.exe"... А т.к. название условное, то в принципе вариантов может быть больше. С твоей реализацией кода надо быть последовательным и раз начал делать так, как делаешь, то перебирай все варианты, можно наверное вынести в модуль...
зы: в последнем варианте, программа вообще не должна запуститься никогда, исправь..

Ответить

Номер ответа: 30
Автор ответа:
 Stuart



Вопросов: 5
Ответов: 152
 Профиль | | #30 Добавлено: 26.11.07 18:26

Речь не 3 буквах, а об имени проги. В данном случае "MyProg.exe". "MyProg.exe"<>"myProg.exe"... А т.к. название условное, то в принципе вариантов может быть больше. С твоей реализацией кода надо быть последовательным и раз начал делать так, как делаешь, то перебирай все варианты, можно наверное вынести в модуль...
зы: в последнем варианте, программа вообще не должна запуститься никогда, исправь..


Блин небесите меня. Вот скачай, и попробуй запустить эту прогу 2 раз, и сам убедись то что все работает нормально!!!

http://slil.ru/25151717

Ответить

Страница: 1 | 2 | 3 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам