簡體   English   中英

如何獲取VNC連接狀態?

[英]How to get the VNC connection status?

我一直在尋找一種方法讓Qt應用程序知道VNC連接是否處於活動狀態。

如何/如何獲得VNC連接狀態?

這是一個嵌入式Linux應用程序。

起點是在src/plugins/gfxdrivers/vnc/qscreenvnc_p.h上查看Qt源; 在那里聲明了一個類QVNCServer ,該類還定義了一個isConnected()方法,該方法似乎完全QVNCServer您的需求。

但是,關鍵點是從您的應用程序代碼訪問該方法。 從文件名后綴_p可以_p出,該標頭中的類是Qt庫的私有(讀取:內部)類,而不是公共接口的一部分。 因此,它們沒有在參考文獻中進行記錄,並且我還沒有找到獲取當前QVNCServer對象的公共方法,也沒有找到可以提供指向該對象的指針的任何其他VNC相關實例。

我的建議是,您從src/plugins/gfxdrivers/vnc/qscreenvnc_qws.h的相關公共接口開始,該服務器接口將服務器類作為QProxyScreen子類的一部分QProxyScreen ,然后從那里開始了解VNC服務器實例的方式。創建,並在其中處理指向它的指針。 您可能可以向QVNCScreen接口添加方法,該方法允許您從應用程序獲取連接狀態。 但是,您將必須修補Qt源並重建庫。

在應用程序代碼中獲取QScreen對象很容易:

foreach(const QScreen* s, QScreen::instance()->subScreens())
{
    if(s->classId() == QScreen::VNCClass)
        //Here you can cast the screen instance and call a method on it
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM