|
#16
|
||||
|
||||
Цитата:
|
#17
|
|||
|
|||
"запрет на PrintScrn и Alt+PrintScrn во время выполнения"
Описано в посте #5. Не происходит очищения клипборда. Пользователь нажимает PrntScr и копия экрана идет в определенную папку. |
#18
|
||||
|
||||
Цитата:
|
#19
|
|||
|
|||
Цитата:
1. Я взял куски кода из сообщения #5, которые были озаглавлены "запрет на PrintScrn и Alt+PrintScrn во время выполнения". Мне показалось, что эти куски кода должны очищать клипборд по нажатию кнопки PrntScr. 2. Я послал новую программу заказчику. Он ответил, что у него Windows 8 и по нажатию PrntScr у него создается образ экрана, который посылается в определенную пупку. 3. Поскольку до этого у меня все благополучно вычищалось в XP и других версиях я написал сюда на форум и спросил, знает ли кто, почему данный код может не работать в Windows 8? 4. Какой-то, видимо очень умный человек, рассказал мне о том, что сущестует много разных программ. 5. Я поблагодарил его и снова спросил, а знает ли кто ответ на мой вопрос? 6. Пришел еще более умный человек. Начал задавать какие-то вопросы. То ли он не прочитал мой первый пост, а прочитал только ответ очень умному человеку, то ли он не понял что я пытаюсь запретить работу клавиш PrntScr, хотя я это везде писал. Самый последний пост был составлен так что толи "иди ты на фиг, я же тебя спрашивал об этом", то ли "ответь же мне наконец". Сижу и думаю, что писать, чтобы ответили? |
#20
|
||||
|
||||
Цитата:
Ладно, попытка номер 3: Windows после запуска устанавливает "горячие клавиши" на PrntScr и на Alt+PrintScrn и нажатие на эти клавиши обрабатывает создавая скриншоты. Чтобы Windows не обрабатывал эти клавиши, нужно запустить своё приложение которое перерегистрирует (с помощью RegisterHotKey) эти горячие клавиши на себя, тогда нажатие этих клавиш будет обрабатывать не Windows, а наша программа, которая естественно не будет создавать никаких скриншотов. Однако если RegisterHotKey не сможет перерегистрировать эти горячие клавиши на себя, то их и в дальнейшем будет обрабатывать Windows создавая скриншоты. А чтобы узнать удалось ли нашему приложению перерегистрировать эти горячие клавиши на себя нужно проверить что возвращает в результате функция RegisterHotKey - если возвращает True - всё в порядке, если же возвращает False - значит не удалось, и Windows продолжает перехватывать эти клавиши на себя создавая скриншоты, а чтобы узнать почему нашему приложению не удалось перерегистрировать эти горячие клавиши нужно вызвать функцию GetLastError. Надеюсь что уже понятно всё разжевал - если нет - то я уже пас... |
#21
|
|||
|
|||
Уважаемый Poli-smen. Благодарю за тактичность и терпеливость. Да, теперь мне больше понятно, что именно вы спрашивали.
Уважаемый Poli-Smen. К сожалению вопрос немного глубже, чем выяснения проблем у заказчика. Если я разберусь с ним и его компьютером, а потом он даст эту программу другому человеку и у того будет другая ситуация, а не ошибка появляющаяся на компьютере заказчика, то неустойка, которую я понесу в этом случае, превысит все мои заработки за последние 10 лет. (Если кто-то воспользуется дополнительными программами, которые сделают образ экрана, я ничего не заплачу. В контракте имеется только "по нажатию PrnScrn не должен сохраняться образ монитора") То есть. Мне НЕ НАДО разобраться с заказчиком и выяснить, где происходит ошибка, а мне НАДО РАЗОБРАТЬСЯ С ПРОБЛЕМОЙ. Для этого я и написал сюда. Мне надо понять - существуют ли какие общие отличия обработки клавиш PrnScrn на ВСЕХ Windows 8? При всех возникающих ошибках. Даже дружелюбное: "А у меня стоит Windows 8, я вставил эти куски и у меня все стирается", принесет мне гораздо больше пользы чем, все что было до этого написано. P.S. Прошу прощения, если обращаюсь со слишком сложной проблемой. К сожалению именно это и есть работа профеcсионалов, а не какое-то написание крутых программ. Последний раз редактировалось Stepanov, 25.03.2014 в 08:43. |
#22
|
||||
|
||||
Цитата:
Код:
RegisterHotKey(Form1.Handle, 103, MOD_WIN, VK_SNAPSHOT); |
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение: | ||
Stepanov (24.03.2014)
|
#23
|
|||
|
|||
Цитата:
О, вот это похоже на то, что я искал. Дело в том, что в предудущей версии кодов, которые я находил на другом форуме, вместо конкретных 101 и 102 был первоначальный запрос на integer, и потом его уже проверяли. И мне как-то сразу показалось, а вдруг, что-то связано именно с данными конкретными параметрами. Вот это я смогу проверить! Подумав немного.... А добавлю ка я еще RegisterHotKey(Form1.Handle, 44, 0, VK_SNAPSHOT); Последний раз редактировалось M.A.D.M.A.N., 24.03.2014 в 15:01. |
#24
|
||||
|
||||
Цитата:
|
#25
|
|||
|
|||
Извините, не вижу. Только 101 и 102. 44 - это альтернатива 101.
Или сам код клавиши не важен? |
#26
|
||||
|
||||
Цитата:
|
#27
|
|||
|
|||
Честно говоря, мой мозг отказывается понимать оксюморон "произвольный, но уникальный", однако, положусь на вас. Непонятно, почему во всех таблицах к этой клавише даются два id и что имено под этим имеется в виду, но мне надо работать, а не изучать психологию создателей.
Все еще есть сомнение. Заказчик настаивал, что он нажимает именно одну клавишу. Я его переспрашивал и он специально демонстрировал свои действия. Подожду, когда Америка проснется. Может быть там есть какой-то выбор (настройка) и простое нажатие PrnScrn передается как нажатие с клавишей Win или, по умолчанию, считается, что Win всегда нажато. Посмотрим. |
#28
|
||||
|
||||
Снимок экрана можно сделать не только кнопкой. В Win7 есть НОЖНИЦЫ
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#29
|
|||
|
|||
Цитата:
Спасибо, что зашли в тему и поделились своими знаниями. |
#30
|
|||
|
|||
FYI: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Цитата:
Соотв. по результату регистрации клавишь можно понять, получилось или нет. Соответсвенно, можно вывести себе сообщение, которое брат наш меньший тебе покажет, если что. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Stepanov (24.03.2014)
|