簡體   English   中英

防止GTK應用程序的多個實例

[英]Preventing multiple instances of a GTK application

我在Linux系統上用C編寫了一個GTK應用程序。 目前,我可以打開或啟動我的應用程序的多個實例。 如何修改代碼,以便一次最多只能運行一個實例?

我知道有很多方法可以實現這一目標。 一種是使用X選擇; 另一種是使用管道/鎖定文件; 還有一個是使用D-Bus。

我想用D-Bus,但我不知道怎么做。

您可以使用GtkApplication ,它默認為您提供單實例支持。

如果您不能使用GtkApplication那么您可以使用libuniqueGtkApplication不推薦使用但適用於GTK + 2.x和GTK + 3.x): httpsGtkApplication

或者,您可以實現GtkApplicationlibunique使用的相同系統,它基於libunique :您應該在第一個實例中為您的應用程序獲取一個眾所周知的名稱,如果某些東西已經擁有該知名名稱,則意味着已經有一個實例正在運行,然后從您的應用程序退出。

GtkApplication就是你想要的。 基本上,您需要做的就是將唯一的字符串傳遞給gtk_application_new() 它的基類頁面GApplication解釋了細節。

暫無
暫無

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

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