Как узнать, запущен ли winamp.exe?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Как узнать, запущен ли winamp.exe?

Сообщение Space » 23.04.2009 (Чт) 18:55

Без поиска по заголовку окна, плиз...

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Как узнать, запущен ли winamp.exe?

Сообщение MIT » 23.04.2009 (Чт) 18:56

Поиск по списку процессов?
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Как узнать, запущен ли winamp.exe?

Сообщение Space » 23.04.2009 (Чт) 19:42

я вот нашёл код, но не пойму что тут
Код: Выделить всё
proc$='<Temp>\proc.txt'
param$='HIDE,WAIT /c tasklist >"'+proc$+'"'
Run("cmd","param$")
num = NOL(proc$)
keyword$='program.exe'
For i = 1 To num
   string$=StrFromFile(proc$,i,1)
   string$=LOW(string$)
   If (POS(keyword$, string$)=1) Then
     ** процесс выполняется
     Break()
   End
Next i

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Как узнать, запущен ли winamp.exe?

Сообщение dr.MIG » 23.04.2009 (Чт) 19:54

Так откуда взят этот код по-моему ясно написано, что это решение для скриптового языка для программы MMB. И при чем тут VB?

Add: Держи код (не через WMI было лень писать)
Код: Выделить всё
Dim strComputer As String
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery( _
    "SELECT * FROM Win32_Process", , 48)
For Each objItem In colItems
    If objItem.Name = "winamp.exe" Then
        MsgBox "АААА! Вырубите музыку!"
    End If
Next
Salus populi suprema lex

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Как узнать, запущен ли winamp.exe?

Сообщение Space » 23.04.2009 (Чт) 20:11

хе-хе... Спасибо, конечно. Но... Я думал, здесь можно будет обойтись только API, т.к. мне надо понять код и навалять его на Асме :D

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Как узнать, запущен ли winamp.exe?

Сообщение dr.MIG » 23.04.2009 (Чт) 20:58

Чесслово какие-то странные у тебя желания :). Можно и через API, пример легко находится банально в API-Guide. Хотя, если интересует решение на ассемблере, то почему бы сразу не заглянуть куда надо на wasm?
Salus populi suprema lex

Space
Combo-маньяк
Combo-маньяк
 
Сообщения: 818
Зарегистрирован: 11.01.2007 (Чт) 1:19
Откуда: Украина

Re: Как узнать, запущен ли winamp.exe?

Сообщение Space » 23.04.2009 (Чт) 21:03

ладно, вродь нашёл - ToolHelp API

Megas13
Новичок
Новичок
Аватара пользователя
 
Сообщения: 40
Зарегистрирован: 03.08.2006 (Чт) 9:46
Откуда: IL

Re: Как узнать, запущен ли winamp.exe?

Сообщение Megas13 » 23.04.2009 (Чт) 21:06

Используй функцию поиска окна FindWindow, надо искать окно с классом Winamp v1.x. Если найдешь хоть одно окно, то Winamp запущен.
Компьютер не подчиняется законам физики.Только в нем глюки возникают из ничего, файлы исчезают в никуда, а объем измеряется в метрах и называется весом.

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как узнать, запущен ли winamp.exe?

Сообщение karlex » 23.04.2009 (Чт) 21:26

Megas13 писал(а):Используй функцию поиска окна FindWindow, надо искать окно с классом Winamp v1.x. Если найдешь хоть одно окно, то Winamp запущен.

Больше ни кто не имеет право использовать такое имя класса?
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

Xcode
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 131
Зарегистрирован: 31.10.2008 (Пт) 8:12
Откуда: Pavlodar

Re: Как узнать, запущен ли winamp.exe?

Сообщение Xcode » 23.04.2009 (Чт) 21:33

Если уж на то пошло, то и имя процесса могут использовать такое же, причем как мне кажется более вероятно. Тогда уж искать процесс и смотреть путь до файла, высчитывать его хэш и сравнивать с имеющимся :)

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Как узнать, запущен ли winamp.exe?

Сообщение MIT » 23.04.2009 (Чт) 21:33

karlex писал(а):Больше ни кто не имеет право использовать такое имя класса?
Больше ни кто не имеет право называться winamp.exe?

З.Ы. Этот пост адресован не только автору цитаты, но и всем остальным
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Как узнать, запущен ли winamp.exe?

Сообщение iGrok » 23.04.2009 (Чт) 22:24

MIT писал(а):Больше ни кто не имеет право называться winamp.exe?

А может, автору топика нужен не винамп, а конкретно тот экзешник, который кто-то вздумал обозвать winamp.exe? =)
label:
cli
jmp label

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Как узнать, запущен ли winamp.exe?

Сообщение MIT » 23.04.2009 (Чт) 22:49

[offtop]
Хм, интересно:
karlex 23.04.2009 (Чт) 22:26
Xcode 23.04.2009 (Чт) 22:33
MIT 23.04.2009 (Чт) 22:33

Но когда я отправлял форму мне не было показано окно, типа "пока вы писали свое сообщение в тему были добавлены следующие посты:", соответственно до меня сообщений не было. Да и после того, как я добавил сообщения я просматривал тему - в ней (вроде) не было сообщения от Xcode. Непонятность :?
[/offtop]
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Xcode
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 131
Зарегистрирован: 31.10.2008 (Пт) 8:12
Откуда: Pavlodar

Re: Как узнать, запущен ли winamp.exe?

Сообщение Xcode » 24.04.2009 (Пт) 3:10

iGrok писал(а):А может, автору топика нужен не винамп, а конкретно тот экзешник, который кто-то вздумал обозвать winamp.exe? =)

Ну тогда перебирать все процессы и проверять If Right$(path,11)="\winamp.exe" :roll:

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как узнать, запущен ли winamp.exe?

Сообщение karlex » 24.04.2009 (Пт) 10:07

Выяснилось что есть две опознавательные черты, одна без другой ни чего, в принципе, не стоит, поэтому нужно использовать обе :)
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Как узнать, запущен ли winamp.exe?

Сообщение alibek » 24.04.2009 (Пт) 10:25

karlex писал(а):Больше ни кто не имеет право использовать такое имя класса?

А тебе что с этого?
Если кто-то использует это имя класса, значит он эмулирует WinAmp.
Lasciate ogni speranza, voi ch'entrate.

karlex
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 138
Зарегистрирован: 30.03.2009 (Пн) 20:25
Откуда: Пермский край, г.Кунгур

Re: Как узнать, запущен ли winamp.exe?

Сообщение karlex » 24.04.2009 (Пт) 11:07

alibek писал(а):А тебе что с этого?
Если кто-то использует это имя класса, значит он эмулирует WinAmp.

Да ладно, это я так, придрался, видимо.
Просто, думаю, не лучший вариант через имя класса окна реализовывать сабж.
Все гениальное — просто!
-------------------------------------
Кто ищет — тот всегда найдет!
-------------------------------------
Лень — двигатель прогресса.
Прогресс — двигатель лени.

Megas13
Новичок
Новичок
Аватара пользователя
 
Сообщения: 40
Зарегистрирован: 03.08.2006 (Чт) 9:46
Откуда: IL

Re: Как узнать, запущен ли winamp.exe?

Сообщение Megas13 » 24.04.2009 (Пт) 15:20

karlex писал(а):Да ладно, это я так, придрался, видимо.
Просто, думаю, не лучший вариант через имя класса окна реализовывать сабж.

А я считаю что вероятность того, что у какого то левого окна имя класса будет такое же, как и у самого Winamp'а, крайне мала в отличии он названия экзешника. Tемболее что имя класса Winamp 1.x давольно уникально, другое дело еслиб это было чтото вроде: Button , #32770 или Afx:0002
А если вдруг такое и произойдет, то как сказал alibek:
Если кто-то использует это имя класса, значит он эмулирует WinAmp.
Компьютер не подчиняется законам физики.Только в нем глюки возникают из ничего, файлы исчезают в никуда, а объем измеряется в метрах и называется весом.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 47

    TopList  
cron