Форум: "Основная";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];
ВнизСкриншоты рабочего стола и окна приветствия Найти похожие ветки
← →
clickmaker © (2009-02-19 16:31) [40]> На сохранении картинки - Bmp.SaveTofile...
для кого я подчеркнул? в коде VCL
Use debug dcu и зайди отладчиком туда
← →
Eraser © (2009-02-19 16:31) [41]> [37] Alex22 (19.02.09 16:27)
> А какой в Висте подход?
> И как тогда грамотно реализовать данную задачу?
эт я вопросом ошибся ) если требуется сделать скриншот, то подход тот же.
← →
Eraser © (2009-02-19 16:36) [42]PS да, насчет скриншотов из сервиса. это допустимо только в XP и ранее и только в 0 терм. сессии. для остальных случаев прийдется использовать совершенно другой подход.
← →
Alex22 (2009-02-19 16:59) [43]
> Eraser © (19.02.09 16:36) [42]
А можно поподробнее, что за такой "другой" подход?
> Ну так я не понял - ты убрал CreateThread ? Заменил на TThread
> или BeginThread ?Мало того, ты же в теле ф-ции ServiceThread()
> лезешь к синхронизируемому ресурсу напрямую, безо всяких
> крит.секций !
Да, заменил на BeginThread, а как правильно синхронизировать то?function ServiceThread(P: Pointer): integer;
begin
CriticalSection.Enter;
msgPtr:=P;
// InitActiveDesktop;
Get_Screen;
CriticalSection.Leave;
// ExitThread(0);
end;
Так?
← →
Сергей М. © (2009-02-19 17:00) [44]
> так и в окне Winlogon
Картина маслом:
стартует Винда, появляется окно приветствия с приглашением выбрать уч.запись пользователя для входа в систему - и тут вдруг поверх нее как черт из табакерки выскакивает хрен знает что за форма с кучей "прочих элементов" и начинает "фотографировать" все что ни попадя..
Как вам оно покажется ?)
← →
Сергей М. © (2009-02-19 17:03) [45]
> заменил на BeginThread
Ну и заменил бы тогда уж на TThread - ты же, судя по коду, знаешь как с ним управляться и как присобачить в метод Execute крит.секцию..
А ты так и не ответил, за каким лешим понадобилась эта солянка из "прямого" старта потока и старта потока через TThread-оболочку)
← →
Alex22 (2009-02-19 17:35) [46]
> Картина маслом:
Не, картина будет скрыта в трее, и вызыватся если нужно кликом мыши, а так будет просто в трее висеть.
В TThread при использовании критической секции при клике на форму либо ее перетаскивании вылезает ошибка "Out of system resources" (повторяю уже наверное в сотый раз ))).
Прямой старт: при более ресурсоемких обработках изображения (не простом сохранении, а например применении какихлибо фильтров и т.п.) опять же выскакивает "Out of system resources".
← →
Сергей М. © (2009-02-19 20:01) [47]
> Не, картина будет скрыта в трее,
А, ну да, тебе ж, конечно, виднее этот самый "трей" при еще НИ ОДНОМ активном десктопе.
Ну и , соответсвенно, чего-то там туда "запуздыренное")
← →
Alex22 (2009-02-20 11:41) [48]Хм... чет не получается простым путем, тогда несколько другой вопрос )
Есть ли возможность узнать (из-под сервиса и обычного пользователя), какой десктоп является текущим, т.е. какая сессия запущена на текущий момент?
Есть исходник определяющий момент переключения сессий, но в сервисе он не срабатывает, да и как определить сессию при запуске программы тоже непонятно, т.к. исходник отлавливает только ее переключение.
Есть какие-нибудь мысли?
← →
kami © (2009-02-20 14:04) [49]> [48] Alex22 (20.02.09 11:41)
> какая сессия запущена на текущий момент
В сервисе определяется через HandlerEx + MSDN
> [48] Alex22 (20.02.09 11:41)
> как определить сессию при запуске программы
WTSGetActiveConsoleSessionID+WTSQuerySessionInformation (afair)
← →
Alex22 (2009-02-20 15:01) [50]
> kami © (20.02.09 14:04) [49]
Спасибо! Буду пробовать...
Страницы: 1 2 вся ветка
Форум: "Основная";
Текущий архив: 2010.01.31;
Скачать: [xml.tar.bz2];
Память: 0.54 MB
Время: 0.006 c