powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите с функцией.
7 сообщений из 7, страница 1 из 1
Помогите с функцией.
    #34292705
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Функция должна была бы возвращать значение true, если находит аргумент в списке запущенных программ. А возвращает всегда 0, подскажите, пожалуйста что не так.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Function IsPrgRunnig(ProgramName As String) As Boolean
        Dim f As Long, sname As String
        Dim hSnap As Long, proc As PROCESSENTRY32
        hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,  0 )
        If hSnap = hNull Then Exit Function
        proc.dwSize = Len(proc)
        f = Process32First(hSnap, proc)
        Do While f
         sname = StrZToStr(proc.szExeFile)
                   If sname = ProgramName Then
                   IsPrgRunning = True
                   Exit Function
                   End If
         f = Process32Next(hSnap, proc)
       Loop
End Function
PS: sname работает.
...
Рейтинг: 0 / 0
Помогите с функцией.
    #34292723
Фотография Aklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sname дает неправильный результат?
копай, откуда она его берет.

а если регистр мешает, попробуй UCASE

аффтопитезь: объект либо именован, либо не существует
...
Рейтинг: 0 / 0
Помогите с функцией.
    #34292751
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как раз таки sname работает правильно. Если например это же повесить на кнопку и сделать list вот так (жёлтое)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Private Sub Command1_Click()
        Dim f As Long, sname As String
        Dim hSnap As Long, proc As PROCESSENTRY32
        hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,  0 )
        If hSnap = hNull Then Exit Sub
        proc.dwSize = Len(proc)
          f = Process32First(hSnap, proc)
        Do While f
         sname = StrZToStr(proc.szExeFile)
           List1.AddItem sname
         f = Process32Next(hSnap, proc)
       Loop
End Sub
получю очень красивый список в своём list'е (только лист сам по себе мне не нужен). Надо функцию сделать рабочей - никак не соображу как...
...
Рейтинг: 0 / 0
Помогите с функцией.
    #34292857
Nikz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мысли вслух...
Как то, давным давно, баловался я со списком процессов, и заметил одну странную штуку - названия процессов дополнялись некоторым рандомным количеством пробелов в конце.
Еем это было вызвано я так и не понял, но лечилось все при помощи Trim().
Если здесь проблема заключается в этом же, то вполне логично что вы не видите этих пробелов когда выводите список в List1.
...
Рейтинг: 0 / 0
Помогите с функцией.
    #34292897
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пробую так:
создаю лист - копирую одно любое значение - вставляю его как аргумент - получаю FALSE... Эни азер айдиас?
...
Рейтинг: 0 / 0
Помогите с функцией.
    #34293025
ByKiS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вылечил:
Код: plaintext
If Trim(sname) Like "*" & ProgramName & "*" Then
...
Рейтинг: 0 / 0
Помогите с функцией.
    #34293044
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так:
Код: plaintext
sname = Left$(proc.szExeFile, IIf(InStr( 1 , proc.szExeFile, Chr$( 0 )) >  0 , InStr( 1 , proc.szExeFile, Chr$( 0 )) -  1 ,  0 ))
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите с функцией.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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