【问题标题】:Preventing multiple instances of a GTK application防止 GTK 应用程序的多个实例
【发布时间】:2013-09-28 22:08:09
【问题描述】:

我在我的 Linux 系统上用 C 语言编写了一个 GTK 应用程序。 目前,我可以打开或启动我的应用程序的多个实例。 如何修改代码,使一次最多只能运行一个实例?

我知道有很多方法可以实现这一目标。 一种是使用 X 选择;另一种是使用管道/锁定文件;还有一种是使用D-Bus。

我想使用 D-Bus,但不知道如何使用。

【问题讨论】:

    标签: c gtk


    【解决方案1】:

    您可以使用GtkApplication,默认为您提供单实例支持。

    如果您不能使用GtkApplication,那么您可以使用libuniqueGtkApplication 已弃用,但适用于 GTK+ 2.x 和 GTK+ 3.x):https://wiki.gnome.org/LibUnique

    或者,您可以实现 GtkApplicationlibunique 使用的相同系统,该系统基于 DBus:您应该首先为您的应用程序获取一个众所周知的名称,如果某些东西已经存在那个众所周知的名字,意味着已经有一个实例在运行,然后退出你的应用程序。

    【讨论】:

      【解决方案2】:

      GtkApplication 是你想要的。基本上,您需要做的就是将一个唯一的字符串传递给gtk_application_new()。其基类页面GApplication 解释了详细信息。

      【讨论】:

      • 我的应用需要移植到 GtkApplication。现在我没有时间做这个,是大。总之谢谢
      猜你喜欢
      • 2014-02-11
      • 1970-01-01
      • 2011-10-25
      • 1970-01-01
      • 2012-02-06
      • 1970-01-01
      • 2023-03-20
      • 2019-11-15
      • 2021-05-05
      相关资源
      最近更新 更多