[英]Preventing multiple instances of a GTK application
我在Linux系統上用C編寫了一個GTK應用程序。 目前,我可以打開或啟動我的應用程序的多個實例。 如何修改代碼,以便一次最多只能運行一個實例?
我知道有很多方法可以實現這一目標。 一種是使用X選擇; 另一種是使用管道/鎖定文件; 還有一個是使用D-Bus。
我想用D-Bus,但我不知道怎么做。
您可以使用GtkApplication
,它默認為您提供單實例支持。
如果您不能使用GtkApplication
那么您可以使用libunique
( GtkApplication
不推薦使用但適用於GTK + 2.x和GTK + 3.x): https : GtkApplication
或者,您可以實現GtkApplication
和libunique
使用的相同系統,它基於libunique
:您應該在第一個實例中為您的應用程序獲取一個眾所周知的名稱,如果某些東西已經擁有該知名名稱,則意味着已經有一個實例正在運行,然后從您的應用程序退出。
GtkApplication就是你想要的。 基本上,您需要做的就是將唯一的字符串傳遞給gtk_application_new() 。 它的基類頁面GApplication解釋了細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.