Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Как узнать в VB запущена ли программа? Добавлено: 26.01.08 11:09  

Автор вопроса:  appolinari
Как узнать в VB запущена ли программа к примеру eMule, Notepad, или ещё что нибудь?

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 gekko



Вопросов: 39
Ответов: 127
 Web-сайт: kalamfur.ru
 Профиль | | #1
Добавлено: 26.01.08 11:27
А попробуй сходить сюда:
http://vbnet.ru/faq/showfaqgroup.asp?id=9
Если не получилось, попробуй ткнуть вверху
Библиотека кодов/Окна и операции с ними/

Ответить

Номер ответа: 2
Автор ответа:
 Leo



Вопросов: 0
Ответов: 7
 Web-сайт: www.vsl-service.ucoz.ru
 Профиль | | #2
Добавлено: 26.01.08 21:11
Получение всех запущенных процессов (программ)

' Form
' - - - - - -
' Command1 – кнопка
' - - - - - -
' Код формы

Option Explicit
Private Const MAX_PATH = 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 Process32First Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function Process32Next Lib "kernel32" (ByVal hSnapshot As Long, lppe As PROCESSENTRY32) As Long
Private Declare Function CloseHandle Lib "kernel32.dll" (ByVal Handle As Long) As Long

Private Const TH32CS_SNAPPROCESS = &H2&
Private Const INVALID_HANDLE_VALUE = -1

Private Sub Command1_Click()
  ;Dim hSnapshot As Long
  ;Dim tProcess As PROCESSENTRY32
  ;Dim rProcessFound As Long
  ;Dim vExeName As String
  ;Dim posnull As Long

' Делаем снимок всех процессов в системе
  hSnapshot = CreateToolhelpSnapshot(TH32CS_SNAPPROCESS, 0)
' Проверка
  If hSnapshot = INVALID_HANDLE_VALUE Then Exit Sub

  tProcess.dwSize = Len(tProcess)

  ;Debug.Print "=============="
' Перечисляем все процессы
  rProcessFound = Process32First(hSnapshot, tProcess)

  ;Do While rProcessFound
    posnull = InStr(1, tProcess.szExeFile, Chr(0))
    If posnull > 0 Then
      ;Debug.Print tProcess.th32ProcessID; Left$(tProcess.szExeFile, posnull - 1)
    Else
      ;Debug.Print tProcess.th32ProcessID; "<не известно>"
    End If
    tProcess.szExeFile = ""
    rProcessFound = Process32Next(hSnapshot, tProcess)
  Loop

  Call CloseHandle(hSnapshot)
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 appolinari



Вопросов: 10
Ответов: 30
 Профиль | | #3 Добавлено: 28.01.08 15:37
Вот ведь как всё запущено...

Спасибо всем.

Ниужели нет ни чего проще...

к примеру чтобы проверить не запущено ли уже сие приложение достаточно написать:

If App.PrevInstance Then ......

?

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 29.01.08 03:30
Оберни предложенный код в функцию, которая будет возвращает TRUE\FALSE, в зависимости от того, нашелся нужный процесс или нет. Добавь эту функцию в собственную библиотеку кодов, запомни где она находится. Тогда когда в следующий раз тебе понадобиться определить запущена ли программа, у тебя уже будет готовая функция, и тебе будет достаточно написать например:
If RunProgramm("notepad.exe";) then msgbox "NotePad is running!"

Ответить

Номер ответа: 5
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #5
Добавлено: 29.01.08 12:39
HACKER что подразымевается под выражением "библиотека кодов"? как конкретно это выглядит?

Ответить

Номер ответа: 6
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #6 Добавлено: 01.02.08 02:29
ну у кого как конечно, у меня это папка, в которой куча подпапок, а в тех ещё подпапки итд )) Всмысле отсортированные и группированные исходники всего на свете на вб что мне удалось выкачать за последние лет 5-6 со всего интернета + немного своего кода :) Представляешь сколько там? :) И благодаря этому относительно быстро из таких кирпичей я могу написать почти любую программу :)

Ответить

Страница: 1 |

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



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