crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Обработка нажатия клавиши PrintScreen
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Bartimeus33nt10 Дата 5.9.2011, 22:39
  ясно, то есть тоже свои заморочки... ладно, пожалуй я оставлю это до поры до времени, но если появятся мысли у кого то, пишите.
всем спасибо за помощь :)
Litkevich Yuriy Дата 4.9.2011, 18:30
 
Цитата(Bartimeus33nt10 @ 4.9.2011, 20:07) *
А как запустить программу при нажатии клавиши?
это в реестре что-то надо подкрутить, где-то попадалась статья на эту тему, но не помню где.
RazrFalcon Дата 4.9.2011, 17:30
  Сам запуск делается средствами самой ОС.
Bartimeus33nt10 Дата 4.9.2011, 17:07
  В Screenshot Example этого нет.
А как запустить программу при нажатии клавиши? Там же опять будет обработка нажатия, не?
RazrFalcon Дата 3.9.2011, 19:45
  В Screenshot Example есть пример как забрать скрин экрана.

PS: если верить гуглу, кнопку PrintScreen перехватить в Qt нельзя. То есть нужно средствами системы делать скрин, а потом его забирать.
PSS: все проги что я видел, стартуют по нажатию PrintScreen - самый простой способ.
Bartimeus33nt10 Дата 3.9.2011, 19:06
  Отлично, на форуме толпа народа, но ни у кого даже мыслей по этому поводу нет.
Bartimeus33nt10 Дата 23.8.2011, 20:02
  Litkevich Yuriy
Воот, хорошо. Да, это и была первая у меня мысль. Вопрос в том, что это как то надо обойти. Или выдрать изображение из буфера. Но я не знаю как.
Litkevich Yuriy Дата 23.8.2011, 19:54
  Bartimeus33nt10, не может ли быть такой ситуации: виндовоз не посылает соответствующего уведомления приложениям, считая эту кнопку "своей" ?
Ведь в виндах <PrintScreen> и <Alt>+<PrintScreen> делают снимок экрана (окна) и помещают растр в буфер обмена.
Bartimeus33nt10 Дата 23.8.2011, 16:00
 
Цитата(Litkevich Yuriy @ 18.8.2011, 13:48) *
Цитата(Bartimeus33nt10 @ 18.8.2011, 15:41) *
QxtGlobalShortcut hotkeyHandle;

hotkeyHandle.setShortcut(Qt::Key_Print);
hotkeyHandle.setEnabled(true);
connect(&hotkeyHandle, SIGNAL(activated()), this, SLOT(hotkeyPressed()) );
в этом коде hotkeyHandle временный (локальный) объект, он умрёт по выходу из функции.


А, я понял, что вы имели ввиду. Нет, такого у меня не будет, потому что этот hotkeyHandle является членом класса.
Каюсь, не очень корректно привел кусок кода

Но не суть важно. Важно, что не работает перехват именно кнопки принтскрина. Если поставить любую другую клавишу - все работает.
Bartimeus33nt10 Дата 21.8.2011, 21:11
  Согласен, после выхода из функции по адресу переменной хранящей пятерку будет мусор.
Но, в моем случае ситуация совершенно другая. Тут идет передача параметров функции по ссылке.
Посмотрите нижеприведенный код.


#include <iostream>
#include <conio.h>

using namespace std;

class Test
{
public:
    Test(){cout << "Create" << endl;}
    ~Test(){cout << "Destroy" << endl;}
private:
    
};

void testFunction(Test *value)
{
}

int main()
{
    Test A;
    testFunction(&A);
    return 0;
}


Сам можешь убедится, что деструктор не будет вызываться при выходе из testFunction.

А по теме у кого нибудь есть идеи?
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 23:09