если вы видите этот текст, отключите в настройках форума использование JavaScript
Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания .
Новичкам также крайне полезно ознакомиться с данным документом .
помогите с програмкой (API) 09.09.01 15:43
Автор: делитант Статус: Незарегистрированный пользователь
вот эта программа по идее должна каждую секунду
закрывать Калькулятор
но это только по идее
#include "windows.h"
int WINAPI WinMain (HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine,int nCmdShow)
{
MSG mes;
SetTimer (NULL,NULL,1000,NULL);// может тут проблумма
while (GetMessage(&mes, NULL,NULL,NULL))
{
if(mes.message==WM_TIMER)
PostMessage (FindWindow(NULL,"Калькулятор"),WM_QUIT,NULL,NULL);
}
return 0;
}
помогите с програмкой (API) :) 10.09.01 10:46
Автор: Cyril <sc> Статус: Member
> SetTimer (NULL,NULL,1000,NULL);
ПРОБЛЕММА ИМЕННО ТУТ,
В описании ф-ции SetTimer англицким по белому написано
UINT SetTimer(
HWND hWnd, // handle of window for timer messages
================================
UINT nIDEvent, // timer identifier
UINT uElapse, // time-out value
TIMERPROC lpTimerFunc // address of timer procedure
);
А ты ни дескриптор окна в качестве параметра не указываешь
ни TimerProc, вот SetTimer и не работает !!!
P. S. А пример от "Недоброго" доброжелателя лучше :)
а зачем тогда отладчики существуют ?! 09.09.01 17:00
Автор: злой доброжелатель :) Статус: Незарегистрированный пользователь
что нельзя посмотреть в дебагере какая именно функция обламывается ?
и потом лучше посылать не WM_QUIT а WM_CLOSE
и зачем тебе таймер ?
вот работающий пример (только "Calculator" замени)
<<<<<<<<<<<<<<<<<<<<
// main.cpp
#ifndef STRICT
#define STRICT
#endif
#include <windows.h>
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
for(;;)
{
HWND window;
while( (window=::FindWindow(NULL, "Calculator"))!=0 )
::PostMessage(window, WM_CLOSE, 0, 0);
::Sleep(1000);
};
return 0;
}
<<<<<<<<<<<<<<<<<<<<