Вверх ↑
Этот топик читают: Гость
Ответов: 242
Рейтинг: 13
#1: 2009-04-29 07:47:47 ЛС | профиль | цитата
Добрый день. Не подскажете ,как можно проверить запущена ли на локальной машине определеная служба?
карма: 0

0
Ответов: 5446
Рейтинг: 323
#2: 2009-04-29 08:05:17 ЛС | профиль | цитата
Через компонент WinExec выполнить команду

sc query <внутреннее имя службы>

и разобрать ответ. Искомая строка имеет вид

STATE              : 4  RUNNING
карма: 1

0
Ответов: 242
Рейтинг: 13
#3: 2009-04-29 08:18:28 ЛС | профиль | цитата
Спасибо. то есть загоняю в строки ответ. а потом выдираю её из масива?
карма: 0

0
Главный модератор
Ответов: 2999
Рейтинг: 396
#4: 2009-04-29 08:53:18 ЛС | профиль | цитата
Уже выкладывал на форуме, но искать лень где. Два скрипта для остановки и запуска сервисов. Внутри перед операцией проверяется: "А запущен ли сервис?"
code_13066.txt
карма: 6
Дорогу осилит идущий. Install/Update HiAsm.NET
0
файлы: 1code_13066.txt [3.7KB] [226]
Ответов: 242
Рейтинг: 13
#5: 2009-04-29 10:30:31 ЛС | профиль | цитата
Вот что вышло . Только там снова косяк с кодировкой какой то =(
code_13067.txt
------------ Дoбавленo в 10.35:
изменил компонент все в норме стало. спасибо за помошь. Прошу не пугаться схеме

Add(MainForm,2953706,21,105)
{
Width=494
Height=466
link(onCreate,8113887:doTimer,[(55,125)(55,237)])
}
Add(WinExec,145987,273,70)
{
Point(doConsoleExec)
Point(onConsoleResult)
link(onConsoleResult,6785127:doAdd,[(335,83)(335,76)])
}
Add(ArrayRW,3184780,420,112)
{
Index=String(3)
link(onRead,8712480:doTimer,[(464,118)(464,122)(310,122)(310,160)])
link(Array,6785127:Array,[(426,114)(384,114)])
}
Add(RichEdit,6785127,364,70)
{
Left=10
Top=40
Width=325
Height=30
link(onChange,3184780:doRead,[(408,76)(408,118)])
}
Add(Timer,8712480,315,154)
{
Interval=2
Enable=1
AutoStop=1
link(onTimer,925003:doEvent1,[(355,160)(355,181)])
}
Add(StrPart,7420452,420,168)
{
Char=":"
link(onSplit,16572876:doValue,[])
link(Str,3184780:Item,[])
}
Add(Memory,16572876,469,168)
{
link(onData,10332459:doData,[(513,174)(513,202)(457,202)(457,216)])
}
Add(Case,3316984,525,224)
{
Value=String( 4 RUNNING )
link(onNextCase,4724922:doCase,[])
link(onTrue,1657844:doData,[(618,237)(618,272)])
}
Add(Hub,925003,364,175)
{
OutCount=3
link(onEvent1,7420452:doSplit,[(399,181)(399,174)])
link(onEvent2,6785127:doClear,[(390,188)(390,136)(352,136)(352,83)])
}
Add(DoData,10332459,469,210)
{
Data=String()
link(onEventData,3316984:doCase,[(513,216)(513,230)])
link(Data,16572876:Value,[])
}
Add(RichEdit,3450848,185,17)
{
Left=10
Top=5
Width=325
Height=35
Strings=#15:sc query wscsvc|21:sc query SharedAccess|17:sc query wuauserv|
}
Add(Counter,7160333,126,133)
{
Min=-1
Default=-1
Point(Max)
link(onNext,14219299:doRead,[(180,139)(180,146)])
link(Max,6265251:Data1,[(132,117)(167,117)])
}
Add(ArrayRW,14219299,203,140)
{
link(onRead,145987:doConsoleExec,[(268,146)(268,90)])
link(Array,3450848:Array,[(209,98)(205,98)])
link(Index,9295508:Data1,[(216,128)(181,128)(181,233)(146,233)])
}
Add(GetData,6265251,161,70)
{
link(Data,3450848:Count,[(167,62)(198,62)])
}
Add(GetData,9295508,140,189)
{
link(Data,7160333:Count,[(146,177)(132,177)])
}
Add(Timer,8113887,56,231)
{
Interval=300
Enable=1
AutoStop=3
link(onTimer,7160333:doNext,[(114,237)(114,139)])
}
Add(Case,4724922,644,224)
{
Value=String( 1 STOPPED )
link(onTrue,2079529:doData,[])
}
Add(DoData,1657844,623,266)
{
Data=String(=Запущена)
link(onEventData,5171686:doEvent1,[])
}
Add(ArrayRW,604350,679,392)
{
link(onRead,4016721:doValue,[(779,398)(779,300)])
link(Array,8221968:Array,[(685,380)(622,380)])
link(Index,8432539:Count,[(692,380)(646,380)(646,422)(601,422)])
}
Add(RichEdit,12669427,837,361)
{
Left=15
Top=135
Width=325
Height=90
}
Add(GetData,3971033,707,434)
{
link(Data,4016721:Value,[(713,380)(853,380)])
}
Add(DoData,2079529,714,231)
{
Data=String(=Остановлена)
link(onEventData,5944715:doEvent1,[])
}
Add(Counter,8432539,595,378)
{
Min=-1
Default=-1
Point(Max)
link(onNext,604350:doRead,[(653,384)(653,398)])
}
Add(Hub,5944715,777,231)
{
InCount=2
OutCount=3
link(onEvent1,4222396:doValue,[])
link(onEvent2,6993736:doEvent2,[(803,244)(803,300)(492,300)(492,356)])
link(onEvent3,805510:doStrCat,[(795,251)(795,496)])
}
Add(Memory,4222396,805,231)
{
}
Add(Hub,6993736,511,343)
{
InCount=2
link(onEvent1,8432539:doNext,[(560,349)(560,384)])
}
Add(Hub,5171686,679,266)
{
InCount=2
OutCount=3
link(onEvent1,11879792:doValue,[])
link(onEvent2,6993736:doEvent1,[(705,279)(705,314)(492,314)(492,349)])
link(onEvent3,12564326:doStrCat,[(717,286)(717,496)])
}
Add(Memory,11879792,714,266)
{
}
Add(StrCat,12564326,742,490)
{
link(onStrCat,11811021:doEvent1,[(804,496)(804,440)])
link(Str1,3971033:Data1,[(748,478)(713,478)])
link(Str2,11879792:Value,[(755,394)(720,394)])
}
Add(StrCat,805510,798,490)
{
link(onStrCat,11811021:doEvent2,[(832,496)(832,447)])
link(Str1,3971033:Data2,[(804,478)(720,478)])
link(Str2,4222396:Value,[])
}
Add(Hub,11811021,833,434)
{
InCount=2
link(onEvent1,12669427:doAdd,[(859,440)(859,404)(825,404)(825,367)])
}
Add(Memory,4016721,847,294)
{
}
Add(StrList,8221968,602,322)
{
Strings=#30:Центр обеспечения безопасности|10:Брендмауэр|14:Автообновление|
}


карма: 0

0
файлы: 1code_13067.txt [4.2KB] [148]
Ответов: 4641
Рейтинг: 334
#6: 2009-04-29 11:41:39 ЛС | профиль | цитата
Bams писал(а):
Прошу не пугаться схеме

читай Рекомендации построения схем HiAsm
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Ответов: 2125
Рейтинг: 159
#7: 2009-04-29 14:47:13 ЛС | профиль | цитата
Bams писал(а):
как можно проверить запущена ли на локальной машине определеная служба?

Действительно, нет такой точки в ServiceTools. nesco! Аууу!
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#8: 2009-04-29 15:02:44 ЛС | профиль | цитата
делается через EnumServicesStatus или EnumServicesStatusEx
карма: 27
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#9: 2009-04-29 15:26:39 ЛС | профиль | цитата
tsdima писал(а):
nesco! Аууу!

А чего сразу я
карма: 22

0
Разработчик
Ответов: 4698
Рейтинг: 426
#10: 2009-04-29 15:34:44 ЛС | профиль | цитата
nesco писал(а):
А чего сразу я

nesco, ну вы же назначены админом, т.к делаете компоненты, а точка "запущена ли служба на локальной машине" отсутствует и нуждается в исправлении этого
карма: 10
0
Администрация
Ответов: 15295
Рейтинг: 1519
#11: 2009-04-29 15:36:10 ЛС | профиль | цитата
nesco писал(а):
А чего сразу я

ServiceTools писал(а):
Version=2.00
Author=Dilma & nesco

карма: 27
0
Разработчик
Ответов: 4698
Рейтинг: 426
#12: 2009-04-29 15:36:13 ЛС | профиль | цитата
Или я что-то упустил?
карма: 10
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#13: 2009-04-30 01:20:48 ЛС | профиль | цитата
Добавлено -- StatusRun в ServiceTools
------------ Дoбавленo в 02.45:
Добавлено -- EnumService

Пример применения:



Add(MainForm,2953706,175,287)
{
Width=426
Height=381
Caption="EnumService"
}
Add(ServiceTools,11757640,273,315)
{
Point(onEnumService)
Point(doEnumService)
Point(doStatusRun)
Point(onStatusRun)
Point(StatusRun)
link(onEnumService,3525371:doString,[])
link(onStatusRun,16756612:doCase,[(335,349)(335,405)])
}
Add(Button,16745343,175,336)
{
Left=150
Top=315
Width=120
TabOrder=-1
Caption="EnumService"
link(onClick,10410667:doEvent1,[])
}
Add(Hub,10410667,224,336)
{
link(onEvent1,487643:doClear,[(248,342)(248,302)(414,302)(414,349)])
link(onEvent2,11757640:doEnumService,[])
}
Add(FormatStr,3525371,364,336)
{
Mask="%1;%2"
link(onFString,487643:doAdd,[])
link(Str2,11757640:StatusRun,[(377,324)(328,324)(328,372)(279,372)])
}
Add(MultiStrData,6303732,483,336)
{
link(Str,487643:Select,[(489,324)(465,324)(465,386)(440,386)])
link(onPart1,2192173:doValue,[])
}
Add(StringTable,487643,427,336)
{
Left=10
Top=10
Width=395
Height=290
Columns=#16:Service Name=300|12:StatusRun=70|
Point(onMouseMove)
link(onClick,6303732:doSplit,[])
}
Add(FormatStr,1377730,532,406)
{
Mask="Service %1 %2Run"
link(onFString,2953706:doCaption,[(586,412)(586,273)(162,273)(162,293)])
link(Str1,2192173:Value,[])
}
Add(Memory,2192173,532,336)
{
link(onData,11757640:doStatusRun,[(574,342)(574,393)(261,393)(261,356)])
}
Add(HubEx,6501061,483,399)
{
link(onEvent,1377730:doString,[])
}
Add(Case,16756612,364,399)
{
Value=String(0)
DataOnTrue=String(Not )
link(onNextCase,12448255:doCase,[])
link(onTrue,6501061:doWork3,[(411,412)(411,440)(487,440)])
}
Add(Case,12448255,427,399)
{
Value=Integer(1)
DataOnTrue=String()
link(onTrue,6501061:doWork2,[])
}

карма: 22

2
Голосовали:filyaxxxcom, Konst
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2009-04-30 09:50:03 ЛС | профиль | цитата
в onEnumService надо выдавать сразу MT

и аргументы событий в конфигах не забываем указывать
карма: 27
0
Ответов: 2125
Рейтинг: 159
#15: 2009-04-30 10:28:57 ЛС | профиль | цитата
Пожелания по названию точек:
doEnumServices
doGetRunningStatus или просто doGetStatus

А то как-то не по русски
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)