从剪贴板中读取区域设置信息

时间:2011-12-08 14:06:48

标签: c# .net clipboard clipboard-interaction clipboarddata

使用.NET Clipboard API,您可以编写以下代码:

//dataObject - instance of IDataObject, received from Clipboard
if (dataObject != null)
{
    if (dataObject.GetDataPresent(DataFormats.Locale))
    {
        var data = dataObject.GetData(DataFormats.Locale);
        var locale = AsInt(data);
        if (locale.HasValue)
        {
            return new CultureInfo(locale.Value);
        }
     }
}

int? AsInt(object data); - my method which tries to read `Int32` value from `MemoryStream`

问题是为什么即使我的电脑的语言环境是乌克兰语,我总是得到en-US语言环境? 我无法得到它,我认为Windows操作系统在执行复制操作时将当前的区域设置信息放入剪贴板?不是吗?

UPD:我需要知道剪贴板内对象的区域设置(如果可能)

UPD2 :我的电脑的区域设置是 uk-UA ,电脑的用户界面区域设置是 en-US ,FAR管理器会为剪贴板添加不同的内容(值1024,不能被识别为有效的区域设置标识符)。所以它似乎是Excel2010的问题。

1 个答案:

答案 0 :(得分:1)