Как обновить рабочий стол окон программно (т.е. F5) от C#?

Это может быть то, что вы ищете: "yyyy-MM-dd'T'HH:mm:ss.SSSXXX"

Date parsed1 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.US).parse("2019-03-01T22:22:50.591Z");
System.out.println(parsed1); // Fri Mar 01 16:22:50 CST 2019

Date parsed2 = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.US).parse("2019-03-01T22:22:50.591-08:00");
System.out.println(parsed2); // Sat Mar 02 00:22:50 CST 2019

Как указывает Бэзил ниже, они также работают, если вы используете Java 8+ или бэкпорт JSR 310: [114 ]

    OffsetDateTime parsed1 = OffsetDateTime.parse("2019-03-01T22:22:50.591Z");
    System.out.println(parsed1); // Fri Mar 01 16:22:50 CST 2019

    OffsetDateTime parsed2 = OffsetDateTime.parse("2019-03-01T22:22:50.591-08:00");
    System.out.println(parsed2); // Sat Mar 02 00:22:50 CST 2019
12
задан DSO 15 March 2009 в 04:06
поделиться

2 ответа

Можно использовать SHChangeNotify API.

[System.Runtime.InteropServices.DllImport("Shell32.dll")]
private static extern int SHChangeNotify(int eventId, int flags, IntPtr item1, IntPtr item2);

и затем назовите это этим путем

SHChangeNotify(0x8000000, 0x1000, IntPtr.Zero, IntPtr.Zero);
37
ответ дан 2 December 2019 в 03:49
поделиться

Я думаю, что Вы ищете IActiveDesktop:: ApplyChanges. Необходимо будет получить доступ к этому через COM-интерфейс, который должен быть довольно легким со всей документацией, которую Microsoft предоставляет на COM Interop.

2
ответ дан 2 December 2019 в 03:49
поделиться