Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2018, 16:55   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Проблема работы проги с переносом ее с вин 7 на вин 10

Есть саму суть упрощенно без подробностей, то:
Моя прога делает скриншоты окна другой проги периодически и посылает их на сервер.
НА вин 7 все хорошо, а на вин 10 делает первый скрин, посылает на сервер, а дальше посылает одну и туже картинку, хотя реально картинка должна меняться. Специально сделал сохранение скриншотов на диск и там они одинаковые.
Еще один интересный момент. Взял прогу закрыл и запустил заново, так она все тот же рисунок посылает, который уже в данный момент она не могла скриншотить ( т.е. как будто где-то происходит запоминание скриншота, даже после закрытия проги и при последующем запуске это изображение остается)
Подумал, что может что-то с правами к папке, проге. Вроде все нормально с правами, по крайней мере ничего лучше не стало.
Что это может быть такого в вин 10?
Такая же проблема наюлюдается и на другойм компе у другого человека с переходом с вин 7 на вин 10.
Неужели какие-то команды проги в вин 10 перестали работать ( убрали в вин 10)?
Illusiony вне форума Ответить с цитированием
Старый 01.06.2018, 17:09   #2
Pavia
Лис
Старожил
 
Аватар для Pavia
 
Регистрация: 18.09.2015
Сообщений: 2,409
По умолчанию

Illusiony
Попробуйте заменить хак
Код:
GetDc(0);
На корректный код:
Код:
ActHandles := GetDesktopWindow;
hScreenDC  := GetWindowDC(ActHandles);
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал .
Pavia вне форума Ответить с цитированием
Старый 04.06.2018, 10:49   #3
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

А у чувака на другом компе ( на ноуте с вин 10) не было такой проблемы. Что- то как- то я вообще еще больше в прострации.

Последний раз редактировалось Illusiony; 04.06.2018 в 11:05.
Illusiony вне форума Ответить с цитированием
Старый 04.06.2018, 11:05   #4
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

У меня используется :

hWin := GetForegroundWindow;
dc := GetDC(hWin) ; // Этот режим очень редко в программе реально используется

hWin := GetForegroundWindow;
dc := GetWindowDC(hWin) ;//Почти всегда это используется

В программе используется и нажатие мышкой по окну той программы, скриншоты которой делаются.

Последний раз редактировалось Illusiony; 04.06.2018 в 11:38.
Illusiony вне форума Ответить с цитированием
Старый 04.06.2018, 11:13   #5
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Запускаете с правами администратора?
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 04.06.2018, 11:28   #6
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

По всякому пробовал. А может быть проге нужен какой то модуль из винды, но она его не требует при запуске (

Последний раз редактировалось Illusiony; 04.06.2018 в 11:40.
Illusiony вне форума Ответить с цитированием
Старый 04.06.2018, 12:15   #7
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Как вообще такое может быть? Т.е. Запускаю первый раз делает скриншот, все остальные скриншоты одни и теже. Я прогу закрываю. Заново запускаю она должна хотя бы новый скриншот один сделать по такой логики, так она откуда то берет скриншот, который был сделан прогой до нее, которая была закрыта.
Как будто в оперативной памяти выделяется один раз конкретное место, а далее это же самое место пытается перезаписаться новым скриншотом, но не перезаписывается и старый остается навсегда, пока комп не перезагрузишь. Или просто не стирается в оперативке скриншот и не дает создать новый.
Но почему же не на всех компах под вин 10 эта ситуация.
Illusiony вне форума Ответить с цитированием
Старый 08.06.2018, 17:25   #8
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Где то прочел, что может быть дело в приоритетах процессов программы над которой произвожу действия со стороны своей программы. Пробовал все. Толку нету.
Illusiony вне форума Ответить с цитированием
Старый 09.06.2018, 09:21   #9
IliaIT
Форумчанин
 
Аватар для IliaIT
 
Регистрация: 17.03.2009
Сообщений: 979
По умолчанию

скорее всего не прав, но возможно из буфера обмена. проверь после закрытия программы что в буфере содержится (например попробуй вставить в ворд содержимое буфера). судя по описанию после перезагрузки компа будет другой скриншот.
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
IliaIT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не ставится вин 7 okokok777 Windows 1 04.02.2017 08:08
вин 8 и делфи megostudent Общие вопросы Delphi 2 28.01.2013 16:51
вин mobilitialex Общие вопросы Delphi 4 14.04.2011 22:16