Вопрос № 23351: Здравствуйте, ув. Спецы!
Я задавал вопрос по поводу программы-резидента (без формы).
Получил очень достойный ответ от streetcat, однако...
Как при перезагрузке или выключении Windows (9х, ХР) нормально завершить этот монитор. Иными словам...Вопрос № 23370: Здраствуйте уважаемые эксперты. Вприложении код мини програмы, посмотрите пожалуйсто. А вопрос у меня такой: когда наведеш мышку в угол и удержиш там некоторое время то сообшений 'мышка в углу' показувает очень много, как зделать чтобы сообшение пока...Вопрос № 23374: Привет всем! Появился такой вопрос,
пытаюсь написать программу для отправки sms через инет, но незнаю как это реализовать. Слышал что всё это надо проворачивать через шлюзы, они уменя есть, но как ими пользоваться? ...
Вопрос № 23.351
Здравствуйте, ув. Спецы!
Я задавал вопрос по поводу программы-резидента (без формы).
Получил очень достойный ответ от streetcat, однако...
Как при перезагрузке или выключении Windows (9х, ХР) нормально завершить этот монитор. Иными словами, как реализовать в приложенной программе отправку 1 операционке в ответ на WM_QUERYENDSESSION ?
Приложение:
Отправлен: 11.07.2005, 17:54
Вопрос задал: Yarick (статус: Посетитель)
Всего ответов отправлено: 2
Отвечает: John Freeman
Здравствуйте, Yarick!
Странный вопрос - чистый WINAPI(CreateWindow, Define*Proc,ShowWindow(в смысле спрятать) в Window Procedure ловим WM_QUERYENDSESSION итд...), если размер некритичен - просто форма, но невидимая, без окна - никак, так везде сделано.
Примеры - если надо в мыло/icq.
--------- You're trying to take me They trying to make me This is the only Gives me the only thing Tired of lying, I'm tired of lying The only thing I inderstand is what I feel...
Ответ отправил: John Freeman (статус: Профессор)
Отправлен: 11.07.2005, 18:53
Отвечает: streetcat
Здравствуйте, Yarick!
а что происходит у тебя при выключении?
я не тестил, но попробуй вставить в цикл:
if PeekMessage(msg, 0, 0, 0, PM_REMOVE) = true then
if msg.message = WM_QUERYENDSESSION then
begin
TranslateMessage(msg);
DispatchMessage(msg);
finish := true;
end;
если не поможет, то наверное никак. Без оконной функции. А чтоб она была, нужно создать окошко, невидимое. :) А вот будет такая программка резидентом, судить тебе. Неисключено, что даже с таким окном программа будет светиться в таскбаре. :(
P.S. В чем проблема с выключением? У меня на виндах 98 и 2К при перезагрузке и выключении все тип-топ.
P.P.S. Если че, можешь завершить свой резидент, когда словишь WM_QUERYENDSESSION. В цикле:
if PeekMessage(msg, 0, 0, 0, PM_REMOVE) = true then
if msg.message = WM_QUERYENDSESSION then
finish := true;
удачи! ;)
--------- streetcat_x@yahoo.com
Ответ отправил: streetcat (статус: 7-ой класс)
Отправлен: 11.07.2005, 22:48
Вопрос № 23.370
Здраствуйте уважаемые эксперты. Вприложении код мини програмы, посмотрите пожалуйсто. А вопрос у меня такой: когда наведеш мышку в угол и удержиш там некоторое время то сообшений 'мышка в углу' показувает очень много, как зделать чтобы сообшение показывалось одно?
Заранее спасибо.
Приложение:
Отправлен: 11.07.2005, 22:39
Вопрос задал: Станислав (статус: 1-ый класс)
Всего ответов отправлено: 3
Отвечает: streetcat
Здравствуйте, Staskin!
Staskin, признайся: этот код стоит у тебя в таймере ;)
Ну отсюда и решение - перед вызовом ShowMessage выключай таймер (Timer1.Enabled := false;), а после вызова - включай (Timer1.Enabled := true;).
дополненный код в приложении. Незабудь поменять имя таймера в этом коде, если у тебя он называется не "Timer1".
Приложение:
--------- streetcat_x@yahoo.com
Ответ отправил: streetcat (статус: 7-ой класс)
Отправлен: 11.07.2005, 22:58 Оценка за ответ: 5
Отвечает: Ballon
Здравствуйте, Staskin!
Заведи еще одну глобальную переменную типа boolean на OnCreate присваеваешь false а дальше см. пример:
var
pt: TPoint;
begin
GetCursorPos(pt);
Edit1.Text := inttostr(pt.X);
Edit2.Text := inttostr(pt.Y);
if (Edit1.Text = ('0')) and (Edit2.Text = ('0')) then
begin
if m = false then
begin
ShowMessage('Myszka v uglu');
m:=true;
end
else
end;
end;
Ответ отправил: Ballon (статус: 3-ий класс)
Отправлен: 12.07.2005, 07:41
Отвечает: sir henry
Здравствуйте, Staskin!
Вы получите ровно столько сообщений, сколько раз будете вызывать эту Вашу функцию. Поэтому встречный вопрос: а куда Вы ее запихали?
Ответ отправил: sir henry (статус: Профессор)
Отправлен: 12.07.2005, 19:21
Вопрос № 23.374
Привет всем! Появился такой вопрос, пытаюсь написать программу для отправки sms через инет, но незнаю как это реализовать. Слышал что всё это надо проворачивать через шлюзы, они уменя есть, но как ими пользоваться?
Отправлен: 11.07.2005, 23:17
Вопрос задал: Dimon (статус: Посетитель)
Всего ответов отправлено: 1
Отвечает: Voituk Alexander
Здравствуйте, Dimon!
Чтобы послать SMS через инет можно идти разными путями. На Украине можно посылать СМСки через протокол SMTP (т.е. через обычный почтовый ящик). А для России нужно найти сайтец, через который можно послать шаровую СМСку и который не требует вводить всякие замечательные нарисованные цифири. В браузере вычисляешь строку для посылки (это типа "http://www.smska.info/send/send.php?oper=1&num=380503849101&text=Привет") и через протокoл HTTP посылаешь чего тебе нужно.
Ответ отправил: Voituk Alexander (статус: 9-ый класс)
Отправлен: 12.07.2005, 13:37