![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
Доброго времени суток!
Помоги начинающему программисту Perl. Мне требуется при запуске скрипта отслеживать не запущены процессы типа Word.exe, Exel.exe а если процессы запущены то дожно выдаваться стандартный виндовкий MsgBox сто запущен процесс |
|||
|
||||
NuINu |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 19.7.2008 Репутация: 5 Всего: 6 |
начинающему перл программисту рекомендую Линукс )
|
|||
|
||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
уважаемый NuINu, обращаю внимание что мне нужен именно Windows
|
|||
|
||||
dva300 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
Win32::Process для процессов на Tk нарисуешь окошко. только не пойму зачем тут Perl тем более если есть такие сложности. Возьмите Delphi лучше или еще чего. --------------------
Участник движения Культура Вождения |
|||
|
||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
dva300, а что есть Tk?
А нельзя ли не большой примерчик с win32::process, просто честно говоря я в перле не айс а мне надо срочно написать на нем приложение, а у меня осталось в нем только две проблемы, в том числе и эта Это сообщение отредактировал(а) birdfree - 13.6.2010, 15:10 |
|||
|
||||
dva300 |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
Tk - http://search.cpan.org/~ni-s/Tk-804.027/pod/UserGuide.pod win32::process - http://search.cpan.org/search?query=win32%...ss&mode=all там есть и примеры.
ну вот я и говорю - зачем Perl ? пишите на то что знаете. --------------------
Участник движения Культура Вождения |
||||
|
|||||
dva300 |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
ну вот на быструю руку примерно так - пример для определения запуска Excel. дальше уж сами дорабатывайте.
Это сообщение отредактировал(а) dva300 - 13.6.2010, 15:38 --------------------
Участник движения Культура Вождения |
||||
|
|||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
dva300, Большое вам спасибо за пример!
|
|||
|
||||
dva300 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
чем могу заработал ? --------------------
Участник движения Культура Вождения |
|||
|
||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
Да, все работает спасибо. Мне только пришлось не много переписать под Tkx но это мелочи, почему то у моего перла от активстэйт нет такого пакета как Tk получилось это
|
|||
|
||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
в общем то все работает, осталась проблема наведения лоска так сказать вот код
собственно если в памяти нет нужного процесса ты программа прекрасно работает себе дальше и выполняет требуемые действия, еще я добавил кнопочку продолжить, то есть когда нажимаем эту кнопку то снова происходит проверка на наличие процесса и если процесса в памяти нет то выполняется программа дальше, вот только одна загвоздочка, только вот в чем проблема у меня это не получается реализовать, конечно может я спинным мозгом думаю но что то не получается, помогите пожалуйста |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
||||
|
||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
Мой Моск, во время написания был практически мертв, щас чуть по лучше. Попробую сформулировать свои мысли четко. 1. Есть цикл, в котором происходит проверка на существование процесса в памяти 2. Если процесс не найден, собственно программа выполняется дальше 3. Если процесс найден, выдается окно с предупреждением и двумя кнопками, "Выйти" из приложения и "Продолжить" 4. Если нажать кнопку "Продолжить" то мы должны вернуться к пункту 1. Собственно не могу реализовать пункт 4. |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
у вас цикл заканчивается, когда закончились данные в массиве info...
Выход из ситуации очевиден. вам при нажатии кнопки продолжить, нужно добавить значений в этот массив. Добавлено через 4 минуты и 2 секунды birdfree, а вообще програмка у вас криво написана. вам бы разнести создание "окна" и код "сканирующий" наличие окна. а тоу вас там каша |
|||
|
||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
Уважаемый shamber, как я уже говорил в перле я крайне плохо понимаю, если вас не затруднит не могли бы привести пример.
|
|||
|
||||
dva300 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
birdfree вы не злитесь. просто вы в данном случае меня, например, поймите - попахивает тем что нужно просто взять и написать программу за вас. а это не дело. если вы начинающий то это скорее плюс нежели минус - стремитесь что-то новое постичь. задачи достаточно простые да и направление вам указывают верное. --------------------
Участник движения Культура Вождения |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
Tkx это ужос
![]() ![]() |
|||
|
||||
dva300 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
![]() и это все для рисования одного окошка --------------------
Участник движения Культура Вождения |
|||
|
||||
shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
я проверить не смог, а вы попытайтесь, особенно если у вас окошко нормально рисуется. Перед вызовом my @info = $pi->GetProcInfo(); просто добавьте бесконечный цикл while(1). Это позволит вам продолжить поиск нужного окошка.
|
|||
|
||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
shamber, я пробовал ставить бесконечный цикл не получилось. По этому и обратился зп помощью.
dva300, я понимаю что это выглядит не очень хорошо, я вам крайне благодарен за помощь. Я постараюсь в дальнейшем разбираться самостоятельно. ![]() |
|||
|
||||
dva300 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
birdfree когда видно что человек стремиться то и помогается легче. боритесь я готов вам помогать Это сообщение отредактировал(а) dva300 - 14.6.2010, 22:12 --------------------
Участник движения Культура Вождения |
|||
|
||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
shamber, я пробовал ставить бесконечный цикл не получилось. По этому и обратился зп помощью.
dva300, я понимаю что это выглядит не очень хорошо, я вам крайне благодарен за помощь. Я постараюсь в дальнейшем разбираться самостоятельно. ![]() |
|||
|
||||
dva300 |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
а чего дважды то повторять ? ![]() ниже код согласно твоих условий. пока будешь жать "Да" программа будет проверять наличие процесса в системе. Если процесс исчезнет - продолжиться выполнение программы. Нажмешь "Нет" - программа завершиться. P.S. Извини. на Tkx сам перепишешь ![]()
--------------------
Участник движения Культура Вождения |
||||
|
|||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
dva300, Спасибо вам большое, есче раз!
Все оказалось просто, оказывается не умею пользоваться оператором last ![]() ![]() ![]() Честно говоря, ту конструкцию что предложил, уважаемый dva300, я решил использовать с самого начала, я просто не умею пользоваться last ![]() Это сообщение отредактировал(а) birdfree - 17.6.2010, 01:55 |
|||
|
||||
dva300 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
![]() программа будет и без last работать (за комментируйте и проверьте) только немного не правильно потому как.... Объясню зачем нужен last - т.к. в задаче не стоит условие количественного определения запущенных процессов т.е. массив @info пробегать весь не надо поэтому мы ввели признак $flag который станет правдой как только первое упоминание об интересующих нас процессах будет найдено. оно же есть условие выхода и из глобального цикла while. как только значение найдено - выходим из циклов и обновляем массив @info новыми данными и повторяем все заново. как видите цикл foreach и вложенный while по хешам можно и не прерывать - просто придется еще пару раз нажать на кнопку "Далее" хотя это естественно не правильно потому как процессов в системе больше нет. для этого и нужен last. --------------------
Участник движения Культура Вождения |
|||
|
||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
Вот у меня как раз в этом и была проблема, что я не мог сделать выход из цикла, все срабатывало но из цикла он не выходил. Большое спасибо! |
|||
|
||||
dva300 |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
Большое пожалуйста ![]() что хоть за задача была ? а то мы как китайские программисты - пишем часть не понимая что есть целое ![]() P.S. надеюсь задача была не просто вывести кнопку на экран ![]() --------------------
Участник движения Культура Вождения |
|||
|
||||
birdfree |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 12.12.2008 Репутация: 1 Всего: 1 |
Программа вытаскивала из 1с данные потом преобразовывала, туда добавлялись, данные из exel, в итоге все выкладывалось по фтп на сервера, в общем то это все автоматизированно, графический интерфейс создан для отлова ошибок при работе с отображением у оператора на экране ))) ВОт такая вот не хитрая программа ))
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |