Форум
Написать нам
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: as-master  
Проверка приложения на запуск
RushДата: Суббота, 17 Октября 2009, 17:54 | Сообщение # 1
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Наваять по старой памяти еще чего-нибудь, что ли? :)
А то молодежь, судя по разговорам, не хочет...
Придется довести до ума кое-что, что валяется в заброшенным уже по паре-тройке лет.
Вот, для начала, чисто иллюстративный проект. Я его, вроде, на форуме когда-то кидал. Маленько сейчас поправил.

Скачать: http://mmbuilder.ru/load/30-1-0-535

 
YURIYДата: Суббота, 17 Октября 2009, 18:04 | Сообщение # 2
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Rush)
А то молодежь, судя по разговорам, не хочет...

Да обнаглели совсем :(

Спасибо за проект! Обязательно в нашу копилку :) Только вот в чём отличие второй кнопки от последней? :)



Вечная память Андрею Сергееву!
 
RushДата: Суббота, 17 Октября 2009, 18:09 | Сообщение # 3
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (YURIY)
Только вот в чём отличие второй кнопки от последней?

В принципе, никакой. :)
Только тем, что проверка на второй не идет. Так, на всякий случай, оставил два варианта.
 
YURIYДата: Суббота, 17 Октября 2009, 18:12 | Сообщение # 4
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
аа, точно. Я скрипт не додумался сравнить redface


Вечная память Андрею Сергееву!
 
DymДата: Суббота, 24 Октября 2009, 09:05 | Сообщение # 5
Поэт
Группа: Проверенные
Сообщений: 220
Репутация: 9
Награды: 7
Статус: Offline
Quote (YURIY)
Только вот в чём отличие второй кнопки от последней?

Quote (Rush)
Только тем, что проверка на второй не идет. Так, на всякий случай, оставил два варианта.

Если имя файла с пробелом англ. – окей, а если русскими – последняя кнопка не закрывает.
(Никакой атаки, чисто наблюдение.) ;)


Вы не поверите, но я опять в строю – одним лишь взглядом свои мысли подаю!

"Записи Дыма" <> "Лирика Дыма" <> "Помощник дурака"
© Dym


Сообщение отредактировал Dym - Суббота, 24 Октября 2009, 09:08
 
RushДата: Суббота, 24 Октября 2009, 10:33 | Сообщение # 6
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (Dym)
Если имя файла с пробелом англ. – окей, а если русскими – последняя кнопка не закрывает.

А у меня закрывает. Можно имя?
 
DymДата: Суббота, 24 Октября 2009, 22:56 | Сообщение # 7
Поэт
Группа: Проверенные
Сообщений: 220
Репутация: 9
Награды: 7
Статус: Offline
Quote (Rush)
А у меня закрывает. Можно имя?

Добрался до компа…
Ты не поверишь! Имя файла «Философские размышления.exe» ;)


Вы не поверите, но я опять в строю – одним лишь взглядом свои мысли подаю!

"Записи Дыма" <> "Лирика Дыма" <> "Помощник дурака"
© Dym


Сообщение отредактировал Dym - Суббота, 24 Октября 2009, 22:58
 
RushДата: Воскресенье, 25 Октября 2009, 10:26 | Сообщение # 8
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (Dym)
Ты не поверишь! Имя файла «Философские размышления.exe»

Да, закрывать с проверкой по тасклисту не хочет. Без проверки - спокойно. Проверка не срабатывает. Глючит тасклист, но это баги дяди Билли. :)
 
Alex3AДата: Воскресенье, 25 Октября 2009, 11:55 | Сообщение # 9
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
А как такой вариант?
«Философские_размышления.exe»

Добавлено (25 Октябрь 2009, 11:55)
---------------------------------------------

Quote (Rush)
но это баги дяди Билли.

Что то там, у дяди Билли, вроде положено брать в кавычки
"Философские размышления.exe", с не дядиным алфавитом и пробелами.
 
RushДата: Воскресенье, 25 Октября 2009, 11:59 | Сообщение # 10
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (Alex3A)
Что то там, у дяди Билли, вроде положено брать в кавычки
"Философские размышления.exe", с не дядиным алфавитом и пробелами.

Ну так кавычки все присутствуют. Нет, тут другое...
 
ponandДата: Воскресенье, 25 Октября 2009, 12:02 | Сообщение # 11
Поднаторевший
Группа: Проверенные
Сообщений: 83
Репутация: 0
Награды: 0
Статус: Offline
Quote (Rush)
Глючит тасклист, но это баги дяди Билли

Quote (Alex3A)
А как такой вариант? «Философские_размышления.exe»

всеравно работать не будет даже если написать на латиницей
привышена длина строки для проверки удалите несколько букв из имени и все заработает

Сообщение отредактировал ponand - Воскресенье, 25 Октября 2009, 12:11
 
Alex3AДата: Воскресенье, 25 Октября 2009, 12:55 | Сообщение # 12
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
ponand, у дяди есть по этому поводу некие заморочки, где то в реестре.
 
ponandДата: Воскресенье, 25 Октября 2009, 13:17 | Сообщение # 13
Поднаторевший
Группа: Проверенные
Сообщений: 83
Репутация: 0
Награды: 0
Статус: Offline
А зачем временный файл при проверке запущено приложение или нет?
можно ведь и без него
 
RushДата: Воскресенье, 25 Октября 2009, 13:39 | Сообщение # 14
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (ponand)
А зачем временный файл при проверке запущено приложение или нет?
можно ведь и без него

Чтобы передать значение в проект.
 
ponandДата: Воскресенье, 25 Октября 2009, 13:47 | Сообщение # 15
Поднаторевший
Группа: Проверенные
Сообщений: 83
Репутация: 0
Награды: 0
Статус: Offline
Quote (Rush)
Чтобы передать значение в проект

А есле так?
Code
param$='WAIT,HIDE /C for /f %i in ('+CHR(39)+'tasklist ^| find /i /c '+appname$+CHR(39)+') do start "" '+t$+' "%i" '

добавив строку в скрипт "extappname"
Code
t$='"'+<SrcDir>+CBK_AppFileName+'"'
 
RushДата: Воскресенье, 25 Октября 2009, 14:18 | Сообщение # 16
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (ponand)
А есле так?

Что-то не пойму, зачем?

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

Code
param$='WAIT,HIDE /C tasklist | find /c /i '+appname$
Run("cmd","param$")
If (CBK_ReturnVal=0) Then
   msg$='Приложение '+appname$+' запущено.'
Else
   msg$='Приложение '+appname$+' не запущено.'
End
Message("msg$","")
 
ponandДата: Воскресенье, 25 Октября 2009, 14:47 | Сообщение # 17
Поднаторевший
Группа: Проверенные
Сообщений: 83
Репутация: 0
Награды: 0
Статус: Offline
Quote (Rush)
Что-то не пойму, зачем?

я совсем еще новичек и незнал что
Quote (Rush)
в проект ведь передаются коды выполнения от запускаемого приложения

поэтому использовал For и Start для передачи
Quote (Rush)
Поэтому в этой кнопке надо написать

А как быть с длинными именами файлов?
 
DymДата: Воскресенье, 25 Октября 2009, 19:56 | Сообщение # 18
Поэт
Группа: Проверенные
Сообщений: 220
Репутация: 9
Награды: 7
Статус: Offline
Одно имя файла – и такая дискуссия...
Это не принципиально, но интересно. Я же говорил «чисто наблюдение». Случайно запустил первый попавшийся файл... Я тоже думаю: слишком длинное название (а может точно баги Билла? :D ).


Вы не поверите, но я опять в строю – одним лишь взглядом свои мысли подаю!

"Записи Дыма" <> "Лирика Дыма" <> "Помощник дурака"
© Dym
 
Alex3AДата: Воскресенье, 25 Октября 2009, 20:33 | Сообщение # 19
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (Dym)
(а может точно баги Билла? ).

Ну это все исторически сложившиеся вещи, просто тогда никто не мог предсказать
какие нужды возникнут в будущем, ну а когда клюнул жаренный петух, впопыхах
забыли многое поправить, тем более что развитие шло совсем не так как подказывает
логика, в основе его стояло бабло.
 
RushДата: Понедельник, 26 Октября 2009, 13:32 | Сообщение # 20
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (ponand)
А как быть с длинными именами файлов?

В принципе, это нехорошо, когда приходится в чем-то ограничивать функционал. Даже если баги чужие. :)
Но мы можем найти другой путь. Сделаем такой финт - вместо
Code
param$='hide /C tasklist | find /i '+appname$+' && taskkill /f /im '+appname$+' /t'
Run("cmd","param$")

напишем
Code
param$='hide process where(name='+appname$+')terminate'
Run("wmic","param$")

Думаю, эта команда будет поддерживать длинные имена. По крайней мере, файл с именем "Философские размышления о том, почему дядя Билли не сделал поддержку длинных имен в тасклисте.exe" не вызвал у нее никаких отрицательных эмоций. :)


Сообщение отредактировал Rush - Понедельник, 26 Октября 2009, 14:43
 
Alex3AДата: Понедельник, 26 Октября 2009, 14:09 | Сообщение # 21
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Вот и на дядю есть проруха :D
 
ponandДата: Понедельник, 26 Октября 2009, 20:47 | Сообщение # 22
Поднаторевший
Группа: Проверенные
Сообщений: 83
Репутация: 0
Награды: 0
Статус: Offline
Quote (Rush)
Думаю, эта команда будет поддерживать длинные имена

есть одно маленькое но!
в home версии Windows XP есле мне не изменяет память wmic по умолчанию не установлена redface
 
YURIYДата: Понедельник, 26 Октября 2009, 20:50 | Сообщение # 23
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (ponand)
в home версии Windows XP есле мне не изменяет память wmic по умолчанию не установлена

Да, так и есть.

Quote (http://onestyle.com.ua/txt.php?u=214)
В стандартную поставку операционной системы Windows XP Professional входит программа командной строки wmic.exe, расположенная в каталоге %systemroot%\SYSTEM32\wbem (в Windows XP Home Editions данная программа отсутствует).



Вечная память Андрею Сергееву!
 
DymДата: Понедельник, 26 Октября 2009, 23:33 | Сообщение # 24
Поэт
Группа: Проверенные
Сообщений: 220
Репутация: 9
Награды: 7
Статус: Offline
Quote (Rush)
Философские размышления о том, почему дядя Билли не сделал поддержку длинных имен в тасклисте.exe"

Все закрывается, отлично!
И дядя Билли вновь обскакан…
Помянем дядю неприлично,
Употребив портвейна стакан… :D


Вы не поверите, но я опять в строю – одним лишь взглядом свои мысли подаю!

"Записи Дыма" <> "Лирика Дыма" <> "Помощник дурака"
© Dym
 
RushДата: Среда, 28 Октября 2009, 00:51 | Сообщение # 25
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Значит надо просто убивать процесс, как и сделано на второй кнопке.
 
YURIYДата: Среда, 25 Ноября 2009, 01:47 | Сообщение # 26
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Опубликовано.

Ссылка в первом посте.



Вечная память Андрею Сергееву!
 
RushДата: Воскресенье, 02 Мая 2010, 04:42 | Сообщение # 27
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Привет ммв-шной братии! Давненько я не посещал это место. :)

Чисто для дополнения. Чтобы проверить, запущен ли процесс с определенными параметрами комстроки, можно сделать так:

Code
app$='notepad.exe'
par$='test.txt'
p$='hide,wait /c wmic process where name="'+app$+'" get commandline | findstr /i /c:"'+par$+'">nul'
Run("cmd","p$")
If (CBK_ReturnVal) Then
   Message("Процесс с данными параметрами не запущен","CBK_ReturnVal")
Else
   Message("Процесс с данными параметрами запущен","CBK_ReturnVal")
End

В данном случае мы узнаем, открыт ли файл test.txt блокнотом.

PS. За новостями не слежу, поэтому извините, если уже по решенному хожу. :)

 
YURIYДата: Воскресенье, 02 Мая 2010, 04:46 | Сообщение # 28
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Rush)
Привет ммв-шной братии! Давненько я не посещал это место.

И не говори :) А мы скучали, между прочим! ;)

Quote (Rush)
За новостями не слежу, поэтому извините, если уже по решенному хожу

Нет-нет, всё в порядке :) Полезное инфо, вдруг кому пригодится.



Вечная память Андрею Сергееву!
 
RushДата: Воскресенье, 02 Мая 2010, 06:47 | Сообщение # 29
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (YURIY)
А мы скучали, между прочим!

Ну тут и без меня народу достаточно. :)
Скоро опять пропаду. :)
 
Alex3AДата: Воскресенье, 02 Мая 2010, 12:30 | Сообщение # 30
Друг клуба ММВ
Группа: Проверенные
Сообщений: 2646
Репутация: 39
Награды: 11
Статус: Offline
Quote (Rush)
Ну тут и без меня народу достаточно.

Это тебе так кажется, пропадать то не надо!
 
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: