Установите обои для рабочего стола, используя Mono - PullRequest
2 голосов
/ 24 февраля 2012

У меня есть код C # в .NET 3.5, который устанавливает фон рабочего стола в Windows Vista / 7. Я хотел бы изменить свой код на кроссплатформенный Windows / Mac / Linux, настроив его так, чтобы он мог работать через Mono. Единственный вызов Interop в моем коде - это установка обоев.

Я понимаю, что для каждой платформы потребуется отдельный метод / скрипт, чтобы это работало; Мой план состоит в том, чтобы проверить ОС и версию и запустить соответствующий код при необходимости. До сих пор я нашел следующие немоно ресурсы, которые могут помочь:

У некоторых из них есть ответы, которые, кажется, включают в себя сценарии, которые, возможно, могут быть выполнены с использованием вызова оболочки / командной строки в каждой среде с помощью кода?

Как изменить фон рабочего стола с помощью моно в средах Linux и Mac?

1 Ответ

0 голосов
/ 02 июня 2012

Установка обоев на Mac с Mono
Я собрал библиотеку AppleScript Slim, которая представляет собой C # dll, которая позволяет вам запускать AppleScript из WinForms (или вообще любого) Monoприложение.100% кода для этого проекта пришло прямо из исходного кода Mono Develop, я просто обрезал и переупаковал нужные мне кусочки.

AppleScript Slim: https://applescriptslim.codeplex.com/

Вот пример кодао том, как установить обои с помощью AppleScript, который я разработал (и который отлично работает):

string applScript =
@"set theUnixPath to POSIX file ""{0}"" as text 
tell application ""Finder"" 
set desktop picture to {{theUnixPath}} as alias 
end tell";

MonoDevelop.MacInterop.AppleScript.Run(string.Format(applScript, localPath));

Установка обоев в Ubuntu с помощью Mono (Работа в процессе, я планирую использовать частибиблиотека GCONF для Mono, как обсуждалось в комментариях к вопросу, еще не имела возможности попробовать ее)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...