2013-09-28 6 views
6

मैंने अपने लिनक्स सिस्टम पर सी में जीटीके एप्लीकेशन लिखा है। वर्तमान में, मैं अपने आवेदन के कई उदाहरण खोल या शुरू कर सकता हूं। मैं कोड को कैसे संशोधित कर सकता हूं ताकि एक समय में अधिकतम केवल एक उदाहरण चल सके?जीटीके एप्लिकेशन के कई उदाहरणों को रोकना

मुझे पता है कि इसे प्राप्त करने के कई तरीके हैं। एक एक्स चयन का उपयोग करना है; दूसरा एक पाइप/लॉक फ़ाइल का उपयोग करना है; फिर भी एक और डी-बस का उपयोग करना है।

मैं डी-बस का उपयोग करना चाहता हूं, लेकिन मुझे नहीं पता कि कैसे करें।

उत्तर

6

आप GtkApplication का उपयोग कर सकते हैं, जो आपको डिफ़ॉल्ट रूप से सिंगल-इंस्टेंस समर्थन प्रदान करता है।

अगर आप GtkApplication उपयोग नहीं कर सकते तो आप libunique उपयोग कर सकते हैं (GtkApplication द्वारा जो अब मान्य नहीं है लेकिन दोनों जीटीके + 2.x और जीटीके + 3.x के साथ ठीक काम करता है): https://wiki.gnome.org/LibUnique

वैकल्पिक रूप से, आप का इस्तेमाल किया एक ही सिस्टम लागू कर सकते हैं GtkApplication और libunique दोनों, जो डीबीस पर आधारित है: आपको पहले उदाहरण में अपने आवेदन के लिए एक प्रसिद्ध नाम प्राप्त करना चाहिए, और यदि कुछ पहले से ही उस ज्ञात नाम को पकड़ रहा है, जिसका अर्थ है कि पहले से ही एक उदाहरण चल रहा है, तो अपने आवेदन से बाहर निकलें।

1

GtkApplication वह है जो आप चाहते हैं। असल में, आपको बस इतना करना है कि gtk_application_new() पर एक अद्वितीय स्ट्रिंग पास करें। इसके बेस क्लास का पृष्ठ, GApplication, विवरण बताता है।

+0

मेरे ऐप को जीटीके आवेदन पर पोर्ट करने की आवश्यकता है। अब मेरे पास समय नहीं है, बड़ा है। कोई बात नहीं धन्यवाद – user1935430

संबंधित मुद्दे