Получите и создайте ShellItemArray для метода IDesktopWallpaper::GetSlideshow.C#

Место общения программистов C#
Ответить
Anonymous
 Получите и создайте ShellItemArray для метода IDesktopWallpaper::GetSlideshow.

Сообщение Anonymous »


Я провел большое исследование по этому вопросу, но не нашел того, что искал.

Я собираюсь использовать метод IDesktopWallpaper::GetSlideshow для получения ShellItemArray и хочу установить его с помощью IDesktopWallpaper::SetSlideshow MS ссылка

К сожалению, я не могу найти решение. Я научился использовать собственные методы, а также нашел собственные COM-интерфейсы для IShellItem и IShellItemArray и загрузил их в свой проект. Теперь я пытаюсь понять, как их использовать и как получить и установить массив из слайд-шоу обоев и в него. Я также узнал, что мне нужен метод Маршала для извлечения из памяти. Я заблудился.

Я хотел бы прочитать текущие элементы ShellItems в этом ShellItemArray из слайд-шоу и установить их с помощью класса-оболочки. Любая помощь приветствуется!

Это мой текущий код, творящий чудеса.

public void GetSlideShow() { IntPtr слайдшоу = iDesktopWallpaper.GetSlideshow(); NativeMethods.IShellItemArray ShellArray; var x = (NativeMethods.IShellItemArray)Marshal.PtrToStructure(слайд-шоу, typeof(NativeMethods.IShellItemArray)); } Это COM-класс для IDesktopWallpaper:

// на основе https://bitbucket.org/ciniml/desktopwallpaper использование системы; использование System.Runtime.InteropServices; /// /// IDesktopWallpaper Wallpaper = (IDesktopWallpaper)new DesktopWallpaper(); /// Listmonitors = new List(); /// uint MonitorCount = Wallpaper.GetMonitorDevicePathCount(); /// for (uint i = 0; i
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»