Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> cскриншот из сервиса 
:(
    Опции темы
artfully
Дата 17.11.2008, 00:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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


Новичок



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

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



только не предлогайте сделать его интерактивным... ведь тогда он под вистой работать не будет... а это уже оч плохо
PM MAIL   Вверх
ReInit
Дата 17.11.2008, 05:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



копать в сторону
OpenDesktop
SetThreadDesktop

PM MAIL   Вверх
CompWorm
Дата 17.11.2008, 18:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Допеределыватель
***


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

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



а сервис разве не для всех активных учеток срабатывает? 
а в шедулер сапихнуть вашу прогу?


--------------------
PM MAIL   Вверх
ReInit
Дата 17.11.2008, 20:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



CompWorm, 
для всех, но у него другой рабочий стол
PM MAIL   Вверх
Virtuals
Дата 18.11.2008, 05:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



ReInit, неее у него другая рабочая станция smile 

artfully, 
форум, любезно тебе подсказал, очень полезные ссылки внизу страници smile 
ЗЫ //я тащусь от плагина данного движка "А здесь смотрели?" smile 
PM MAIL ICQ   Вверх
artfully
Дата 18.11.2008, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(Virtuals @ 18.11.2008,  05:52)
artfully, 
форум, любезно тебе подсказал, очень полезные ссылки внизу страници smile 
ЗЫ //я тащусь от плагина данного движка "А здесь смотрели?" smile

если вы про эту ссылку
то тут все решатеся  путем включения интерактивного режима... в висте это работать не будет.. а мне нужно что бы и там работало...
(кстати я об этом уже упомянал)


to ReInit:
прошу прощения но не могли бы вы пока зать как ими пользоваться.. просто я пока так и не свомог понять как соединить воедино функцию снимка экрана и OpenDesktop
SetThreadDesktop  smile 

снимок экрана делается по примеру из DRKB

Код

function GetScreenShot(const AHandle: THandle; Wsize:integer;const CompressPercent: Byte;var AImage: TJPEGImage): Boolean;
var
fBitmap: TBitmap;
DC: HDC;
Rect: TRect;
begin
Result := False;
if AImage = nil then Exit;
DC := GetDC(AHandle);
if DC <> 0 then
try
   fBitmap := TBitmap.Create;
   nb := TBitmap.Create;
   try
     if not GetClientRect(AHandle, Rect) then Exit;
     fBitmap.Width := Rect.Right - Rect.Left;
     fBitmap.Height := Rect.Bottom - Rect.Top;
     fBitmap.PixelFormat := pf32bit;
     Result := BitBlt(fBitmap.Canvas.Handle, 0, 0, fBitmap.Width,
       fBitmap.Height, DC, 0, 0, SRCCOPY);
     if not Result then Exit;
     AImage.Assign(fBitmap);
     AImage.CompressionQuality := CompressPercent;
   finally
     fBitmap.Free;
     nb.Free;
   end;
finally
   ReleaseDC(AHandle, DC);
end;
end;

procedure ScreenPhoto(nstr:TMemoryStream;WSize:integer);
var
  Image: TJPEGImage;
begin
  Image := TJPEGImage.Create;
  try
     if GetScreenShot(GetDesktopWindow,WSize, 90, Image) then
     image.SaveToStream(nstr);
  finally
    Image.Free;
  end;
end;

PM MAIL   Вверх
Virtuals
Дата 18.11.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



artfully, 
пожалусто прочтите все ссылки внизу страници, и попробуйте осмыслить чем отличается сервис с галкой "интерактивный" от сервиса без галки
//зы просто легче потом дать обьяснение
зызы имхо неохота даватьготовое, главное показать путь smile 
PM MAIL ICQ   Вверх
artfully
Дата 18.11.2008, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

И еще, чтобы лучше была понятна сама ситуация обьясню подробнее что за программу я пишу.
Это программа которая делает через хзаданное время скрин экрана и отсылает его пользователю... (примитивное подобие рабмина).
программу я написал и решил переделать ее в сервис по тому как она должа отсылать скрины рабочих столов вне зависимости от того какой пользователь сейчвас работает. Если же реализовывать это как обычную программу то возможна следующая ситуация:

Пользователь А1 зашел в свою учетную запись и программи П1 запустилась , открыла порт 123 и начала транслировать что пользователь делает в данную минуту. потом пользователь СМЕНИЛ учетную запись (главное здесть то что перая учетная запись продолжает работать) , тут запустилась вторая копия программы ... НО теперь она уже не может открыть порт 123 по тому что по нему уже идет трансляция рабочего стола старой учетной записи....
Вот по этому я решил переделать прогу в сервис чтобы она работала вне зависимости от учетной записи.. но теперь возникает проблемма как сделать так чтобы этот сервис работал также и в висте!!!!!!
PM MAIL   Вверх
artfully
Дата 19.11.2008, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



кстати может кто обресует какая картина обстоит в висте... там теперь сервис вообще никак не сможет связаться с пользователем или там просто какие то другие механизмы взаимодействия!!!
PM MAIL   Вверх
Virtuals
Дата 19.11.2008, 06:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



artfully, 
Цитата

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

 smile 
интерактивный сервис отличается от неинтерактивного...

неинтерактивный= 
станция - "блаблабла" (короче набор случайных символов)
стол - "default"

интерактивный=
станция - "WinSta0"
стол - "default" /обычно для пользователя
стол - "winlogon" /для винлогона, ну тот стол где стрл альт дел жмеш и вводиш логин пароль

соответственно чтобы процесс стал "интерактивным" smile ну и слово же выдумали нужно всего то 
SetProcessWindowStation и SetThreadDesktop.
если ломимся к пользоватилю, -то стол - "default", если на экран входа в  систему то стол - "winlogon"

ЗЫ ну а если не хватает терпения или еще чего то может просто 
CreateProcess снимокэкрана.ехе с параметром lpDesktop - WinSta0\default


Это сообщение отредактировал(а) Virtuals - 19.11.2008, 06:47
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

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


 




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


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

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