Модераторы: korob2001, ginnie

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отслеживание запущенных процессов windows, Как следить за нужными процессами 
:(
    Опции темы
birdfree
Дата 12.6.2010, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.12.2008

Репутация: 1
Всего: 1



Доброго времени суток! 
Помоги начинающему программисту Perl.
Мне требуется при запуске скрипта отслеживать не запущены процессы типа Word.exe, Exel.exe а если процессы запущены то дожно выдаваться стандартный виндовкий MsgBox сто запущен процесс  
PM MAIL   Вверх
NuINu
Дата 13.6.2010, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 131
Регистрация: 19.7.2008

Репутация: 5
Всего: 6



начинающему перл программисту рекомендую Линукс )
PM MAIL   Вверх
birdfree
Дата 13.6.2010, 03:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.12.2008

Репутация: 1
Всего: 1



уважаемый NuINu, обращаю внимание что мне нужен именно Windows
PM MAIL   Вверх
dva300
Дата 13.6.2010, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Цитата(birdfree @ 12.6.2010,  18:14)
Доброго времени суток! 
Помоги начинающему программисту Perl.
Мне требуется при запуске скрипта отслеживать не запущены процессы типа Word.exe, Exel.exe а если процессы запущены то дожно выдаваться стандартный виндовкий MsgBox сто запущен процесс

Win32::Process для процессов
на Tk нарисуешь окошко.

только не пойму зачем тут Perl тем более если есть такие сложности. Возьмите Delphi лучше или еще чего.
--------------------
Участник движения Культура Вождения
PM   Вверх
birdfree
Дата 13.6.2010, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.12.2008

Репутация: 1
Всего: 1



dva300, а что есть Tk? 
А нельзя ли не большой примерчик с win32::process, просто честно говоря я в перле не айс а мне надо срочно написать на нем приложение, а у меня осталось в нем только две проблемы, в том числе и эта

Это сообщение отредактировал(а) birdfree - 13.6.2010, 15:10
PM MAIL   Вверх
dva300
Дата 13.6.2010, 15:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Цитата(birdfree @ 13.6.2010,  15:03)
dva300, а что есть Tk? 
А нельзя ли не большой примерчик с win32::process, просто честно говоря я в перле не айс а мне надо срочно написать на нем приложение, а у меня осталось в нем только две проблемы, в том числе и эта

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 ? пишите на то что знаете.

--------------------
Участник движения Культура Вождения
PM   Вверх
dva300
Дата 13.6.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Цитата(birdfree @ 13.6.2010,  15:03)
dva300, а что есть Tk? 
А нельзя ли не большой примерчик с win32::process, просто честно говоря я в перле не айс а мне надо срочно написать на нем приложение, а у меня осталось в нем только две проблемы, в том числе и эта

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

Код

use strict;
use Win32::Process::Info;
use Tk;

 my $pi = Win32::Process::Info->new ();
 my @info = $pi->GetProcInfo ();   

 foreach (@info)
    {
    while (my ($key,$value) = each(%$_))
        {
        if ($value =~ /excel/i)
            {
            my $mw = MainWindow->new;
            $mw->geometry("200x100");
            $mw->title("Excel started !!!");
            $mw->Label(-text => 'Excel started !!!')->pack();
            $mw->Button(-text => "Close", -command =>sub{exit})->pack();
            MainLoop;
            }
        }
    }



Это сообщение отредактировал(а) dva300 - 13.6.2010, 15:38
--------------------
Участник движения Культура Вождения
PM   Вверх
birdfree
Дата 13.6.2010, 16:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.12.2008

Репутация: 1
Всего: 1



dva300, Большое вам спасибо за пример!
PM MAIL   Вверх
dva300
Дата 13.6.2010, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 17.2.2010
Где: Москва

Репутация: -1
Всего: 1



Цитата(birdfree @ 13.6.2010,  16:34)
dva300, Большое вам спасибо за пример!

чем могу 
заработал ? 
--------------------
Участник движения Культура Вождения
PM   Вверх
birdfree
Дата 13.6.2010, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.12.2008

Репутация: 1
Всего: 1



Да, все работает спасибо. Мне только пришлось не много переписать под Tkx но это мелочи, почему то у моего перла от активстэйт нет такого пакета как Tk получилось это
Код

use strict;
use Win32::Process::Info;
use Tkx;
my $pi   = Win32::Process::Info->new();
my @info = $pi->GetProcInfo();
foreach (@info) {
    while ( my ( $key, $value ) = each(%$_) ) {
        if ( $value =~ /notepad/i ) {
   my $mw = Tkx::widget->new(".");
   
   $mw->g_wm_title("Error");
   my $b = $mw->new_button(
        -text => "Close",
        -command => sub { $mw->g_destroy; },
    );
    $b->g_pack;

            Tkx::MainLoop();
        }
    }
}
print " OK!\n";

PM MAIL   Вверх
birdfree
Дата 14.6.2010, 05:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.12.2008

Репутация: 1
Всего: 1



в общем то все работает, осталась проблема наведения лоска так сказать вот код
Код

use strict;
use Win32::Process::Info;
use Tkx;
use Net::FTP;
use Encode 'encode', 'decode';

my $pi   = Win32::Process::Info->new();
my @info = $pi->GetProcInfo();
foreach (@info) {
    while ( my ( $key, $value ) = each(%$_) ) {
        if ( $value =~ /word/i ) {
   my $mw = Tkx::widget->new(".");

   $mw->g_wm_title(decode('cp1251', 'ќшибка!'));
   my $label = $mw->new_ttk__label(
   -text => decode('cp1251', '«акройте word!'),
           -font => "Arial_Black",
   -foreground => "red");
      my $label2 = $mw->new_ttk__label(
   -text => decode('cp1251', '» запустите снова.'),
           -font => "Arial_Black",
   -foreground => "red");
      my $b = $mw->new_button(
        -text => decode('cp1251', 'ѕродолжить'),
        -command => sub {
         print "oo\n";},
    );
    $b->g_pack;
   my $b2 = $mw->new_button(
        -text => decode('cp1251', '¬ыйти'),
        -command => sub { $mw->g_destroy; },
    );
    $b2->g_pack;

            Tkx::grid($label, -row => 0, -column => 0, -padx => 10, -pady => 10);
            Tkx::grid($label2, -row => 1, -column => 0, -padx => 10, -pady => 10);
#            Tkx::grid($b, -row => 1, -column => 0, -padx => 10, -pady => 10);
            Tkx::grid($b2, -row => 2, -column => 0, -padx => 10, -pady => 10);
            
            Tkx::MainLoop();
        }
    }
}

print "OK!\n";
#  тут программа
print "OK!\n"


собственно если в памяти нет нужного процесса ты программа прекрасно работает себе дальше и выполняет требуемые действия, еще я добавил кнопочку продолжить, то есть когда нажимаем эту кнопку то снова происходит проверка на наличие процесса и если процесса в памяти нет то выполняется программа дальше, вот только одна загвоздочка, только вот в чем проблема у меня это не получается реализовать, конечно может я спинным мозгом думаю но что то не получается, помогите пожалуйста 
PM MAIL   Вверх
shamber
Дата 14.6.2010, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



Цитата(birdfree @  14.6.2010,  05:15 Найти цитируемый пост)
дальше, вот только одна загвоздочка, только вот в чем проблема у меня это не получается реализовать, конечно может я спинным мозгом думаю но что то не получается, помогите пожалуйста  

мозг сломлен... может проще сформулируете?
PM MAIL Jabber   Вверх
birdfree
Дата 14.6.2010, 11:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.12.2008

Репутация: 1
Всего: 1



Цитата(shamber @ 14.6.2010,  10:57)
Цитата(birdfree @  14.6.2010,  05:15 Найти цитируемый пост)
дальше, вот только одна загвоздочка, только вот в чем проблема у меня это не получается реализовать, конечно может я спинным мозгом думаю но что то не получается, помогите пожалуйста  

мозг сломлен... может проще сформулируете?

Мой Моск, во время написания был практически мертв, щас чуть по лучше. Попробую сформулировать свои мысли четко.
1. Есть цикл, в котором происходит проверка на существование процесса в памяти
2. Если процесс не найден, собственно программа выполняется дальше 
3. Если процесс найден, выдается окно с предупреждением и двумя кнопками, "Выйти" из приложения и "Продолжить"
4. Если нажать кнопку "Продолжить" то мы должны вернуться к пункту 1.  
Собственно не могу реализовать пункт 4.
PM MAIL   Вверх
shamber
Дата 14.6.2010, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 17
Всего: 18



у вас цикл заканчивается, когда закончились данные в массиве info...
Выход из ситуации очевиден. вам при нажатии кнопки продолжить, нужно добавить значений в этот массив.

Добавлено через 4 минуты и 2 секунды
birdfree, а вообще програмка у вас криво написана. вам бы разнести создание "окна" и код "сканирующий" наличие окна. а тоу  вас там каша
PM MAIL Jabber   Вверх
birdfree
Дата 14.6.2010, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 24
Регистрация: 12.12.2008

Репутация: 1
Всего: 1



Уважаемый shamber, как я уже говорил в перле я крайне плохо понимаю, если вас не затруднит не могли бы привести пример.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0953 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.