2017-04-03 3 views
0

こんにちは私はQTを通してC++を学習しています。私はLASTINPUTINFOを動作させようとしています。以下は、それがどのように動作するか見るために作成したコードですが、入力を行うたびに値が1つしか返されず、変更されることはありません。QT/C++:LASTINPUTINFOが動作するようにする

私が間違っていることを説明するのに気をつけますか?そして、おそらく私が把握することができるように実際の例を提供する。

私はWindows 10 Pro 64ビットで実行しようとしています。

ここに出力例を示します。

138899896 
138899896 
138899896 
138899896 
138899896 
138899896 
138899896 

参考のため固定コードです。 Andersに感謝します。

#include <QtCore/QCoreApplication> 
#include <QDebug> 
#include <Windows.h> 
#include <unistd.h> 
#include <iostream> 

using namespace std; 

test() 
{ 
    LASTINPUTINFO lastii; 
    lastii.cbSize = sizeof(LASTINPUTINFO); 
    GetLastInputInfo(&lastii); 


    return (GetTickCount() - lastii.dwTime)/1000; 
} 

int main(int argc, char *argv[]) 
{ 
    QCoreApplication a(argc, argv); 

    while (true) { 
     cout<<test()<<"\n"; 
     sleep(1); 
    } 

    return a.exec(); 
} 

答えて

0

LASTINPUTINFOは、単純なC構造体ではありません。あなたは実際にそれを記入する関数を呼び出さなければなりません:

DWORD test() { 
    LASTINPUTINFO lastii; 
    lastii.cbSize = sizeof(LASTINPUTINFO); 
    GetLastInputInfo(&lastii); 
    return lastii.dwTime; 
} 
+0

ありがとう!今すぐ解決してください。 :) – user1773056

関連する問題