Получите дату установки из управляемого кода

Что вам нужно, так это componentDidUpdate в компоненте SearchBar:

componentDidUpdate(prevProps) {
    if (this.props.data !== prevProps.data) {
        this.setState({data: this.props.data ,filteredData: this.props.data});
    }
}

Лучшее решение - не хранить data как состояние в SearchBar, а получить доступ к нему напрямую из реквизита.

7
задан user38309 5 January 2009 в 21:53
поделиться

3 ответа

"Надлежащий" способ добраться до той информации состоит в том, чтобы использовать:: MsiGetProductInfo (). PInvoke должен быть тривиальным.

8
ответ дан 6 December 2019 в 10:04
поделиться

Спасибо Грабит! Я добавил полный пример C# ниже.

    [DllImport("msi.dll", CharSet = CharSet.Unicode)]
    static extern Int32 MsiGetProductInfo(string product, string property, [Out] StringBuilder valueBuf, ref Int32 len);

    static void Main(string[] args)
    {
        Int32 len = 512;
        var builder = new StringBuilder(len);
        MsiGetProductInfo("{0db93d2f-a9e7-417f-9425-5e61e82c0868}", "InstallDate", builder, ref len);

        var installDate = DateTime.ParseExact(builder.ToString(), "yyyyMMdd", CultureInfo.InvariantCulture);

        Console.WriteLine(installDate);
    }
10
ответ дан 6 December 2019 в 10:04
поделиться

Я не знаю ни о каком API, который сделает это, но Вы могли попытаться считать значение из Реестра непосредственно. Проверьте следующий ключ:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{product-id}
    InstallDate = 20081004

Информация, хранившая под ключом Удаления, отображена, например, в Панели управления-> Добавляют или Удаляют Программы.

1
ответ дан 6 December 2019 в 10:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: