के साथ अजीबता मैं कुछ छोटे कार्यक्षमता लिखने की कोशिश कर रहा हूं जिसे कुछ कार्यक्षमता के लिए क्लिपबोर्ड का उपयोग करने की आवश्यकता है। चूंकि मैं वर्तमान में क्लिपबोर्ड में उपयोगकर्ता के डेटा को ओवरराइट नहीं करना चाहता हूं, इसलिए मैंने इसे स्मृति में सहेजने का फैसला किया, अपना काम किया और फिर इसे वापस लिखें। नीचे दिया गया कोड एक कंसोल एप्लिकेशन है जो कि मैं जो करने की कोशिश कर रहा हूं उसका एक बेरबोन उदाहरण है।क्लिपबोर्ड एक्सेस
मेरी समस्या यह है कि मैं राज्य को बहाल कर रहा हूं। यदि मैं एप्लिकेशन चलाने से पहले विजुअल स्टूडियो से क्लिपबोर्ड पर कुछ कॉपी करता हूं तो क्लिपबोर्ड (विभिन्न स्ट्रिंग प्रारूपों और लोकेल) में कुल छह ऑब्जेक्ट्स हैं जो सभी को कैश में डाल दिया जाता है। एक बार जब मैं उन्हें पुनर्स्थापित करता हूं, हालांकि केवल लोकेल क्लिपबोर्ड में होता है और ऐसा लगता है कि SetData() को प्रत्येक कॉल अंतिम पर ओवरराइट करता है। (जिस तरह से SetDataObject GetDataObject के विपरीत प्रतीत नहीं होता है, इसलिए मैं इसका उपयोग नहीं कर सकता)
कोई विचार है कि मैं क्लिपबोर्ड स्थिति कैसे संग्रहीत कर सकता हूं और बाद में इसे पुनर्स्थापित कर सकता हूं?
[STAThread]
static void Main(string[] args)
{
//Store the old clipboard data
Dictionary<string, object> clipboardCache = new Dictionary<string, object>();
IDataObject clipboardData = Clipboard.GetDataObject();
foreach (string format in clipboardData.GetFormats())
{
clipboardCache.Add(format, clipboardData.GetData(format));
}
Clipboard.SetText("Hello world!");
string value = Clipboard.GetText();
Console.WriteLine(value);
//Clear the clipboard again and restore old data
Clipboard.Clear();
foreach (KeyValuePair<string, object> valuePair in clipboardCache)
{
Clipboard.SetData(valuePair.Key, valuePair.Value);
Thread.Sleep(100);
}
Console.ReadLine();
}
क्या आप क्लिपप्क्स जैसे किसी भी ऑब्जेक्ट क्लिपबोर्ड प्लगइन का उपयोग कर रहे हैं? – TheVillageIdiot
कोड स्निपेट ने वास्तव में मेरी समस्या हल की - पूरी तरह से आपके से अलग - लेकिन Google मुझे यहां ले जाता है, इसलिए मैं यहां विवरण पोस्ट करूंगा: किसी को भी कंसोल ऐप से विंडोज क्लिपबोर्ड तक पहुंचने में परेशानी होने के कारण, अपने "मुख्य को सजाने के लिए सुनिश्चित करें "[STAThread]" विशेषता के साथ विधि! : डी – BrainSlugs83