Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Выключить программу по таймеру 
:(
    Опции темы
Kozel
Дата 18.1.2008, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Собственно надо писать уже с кодом... но когда даже не представляешь как это сделать для начало думаю можно проста так спросить.
Собтвенно я хочу, чтобы из моей программы выключалась другая по таймеру.
Ну вот собстенно весь вопрос.
PM MAIL   Вверх
JackYF
Дата 18.1.2008, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



ОС, инструментальные средства?


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Kozel
Дата 19.1.2008, 01:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ось стандартна - Винда ХР. Средства - тоже особых критериев нету. Думаю Билдер или VC++

Это сообщение отредактировал(а) Kozel - 19.1.2008, 01:24
PM MAIL   Вверх
archimed7592
Дата 19.1.2008, 02:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


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

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



Цитата(Kozel @  19.1.2008,  01:24 Найти цитируемый пост)
Ось стандартна - Винда ХР.

smile



--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
W4FhLF
Дата 19.1.2008, 08:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Цитата(Kozel @  18.1.2008,  20:10 Найти цитируемый пост)
Собтвенно я хочу, чтобы из моей программы выключалась другая по таймеру.


Что известно о другой программе?


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
MAKCim
Дата 19.1.2008, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Код

void callback KillTaskRoutine(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) {
    EndTask(task, FALSE, TRUE);
    KillTimer(NULL, idEvent);
}
...
SetTimer(NULL, NULL, 1000, (TIMERPROC)&KillTaskRoutine);
...



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Kozel
Дата 19.1.2008, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(W4FhLF @ 19.1.2008,  08:05)
Что известно о другой программе?

Пусть для примера это будет Winamp
PM MAIL   Вверх
W4FhLF
Дата 19.1.2008, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Цитата(Kozel @  19.1.2008,  11:28 Найти цитируемый пост)
Пусть для примера это будет Winamp


В общем-то MAKCim уже показал суть.
Ну создай дефолтный проект Windows Application в VC++, далее в процедуру WndProc добавь следующий код:

Код

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
...
    switch (message)
    {
    case WM_COMMAND:
        ...
    case WM_CREATE: // Сюда внимание обрати. Создание таймера сразу после создания окна приложения.
        SetTimer(NULL, NULL, 1000, (TIMERPROC)&KillTaskRoutine);
        break;
    case WM_DESTROY:
        ...
    default:
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    return 0;
}


Процедура KillTaskRoutine выглядит следующим обраозом:

Код

BOOL CALLBACK KillTaskRoutine(HWND hwnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime) {
    HANDLE hProcessSnap;
    HANDLE hProcess;
    PROCESSENTRY32 pe32;

    hProcessSnap = CreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 );
    if( INVALID_HANDLE_VALUE == hProcessSnap )
    {
        MessageBox(hwnd, TEXT( "CreateToolhelp32Snapshot (of processes)\n" ), "Error", MB_OK+MB_ICONERROR);
        return FALSE;
    }

    pe32.dwSize = sizeof( PROCESSENTRY32 );

    if( !Process32First( hProcessSnap, &pe32 ) )
    {
        MessageBox(hwnd, TEXT( "Process32First failed" ), "Error", MB_OK+MB_ICONERROR);
        CloseHandle(hProcessSnap);
        return FALSE;
    }
    

    do
    {
        if (strstr(static_cast<const char*>(pe32.szExeFile), "winamp"))
        {
            hProcess = OpenProcess( PROCESS_TERMINATE, FALSE, pe32.th32ProcessID );
            if( NULL  == hProcess)
                MessageBox(hwnd, TEXT( "OpenProcess failed" ), "Error", MB_OK+MB_ICONERROR);
            else
                TerminateProcess( hProcess, 0 ); // Хотя так убивать приложения неприлично, не бери за правило :)
        }
    } while( Process32Next( hProcessSnap, &pe32 ) );

    KillTimer(NULL, idEvent);
}



--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
Kozel
Дата 19.1.2008, 17:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Можна в этот код комментов добавить, а то я с winapi еще дел не имел
PM MAIL   Вверх
W4FhLF
Дата 19.1.2008, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


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

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



Что именно тебе непонятно? Есть ведь MSDN, там всё описано.


--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




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


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

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