c# - 使用 Mono 设置桌面墙纸

标签 c# linux macos mono

我在 .NET 3.5 中有 C# 代码,可以在 Windows Vista/7 中设置桌面背景。我想通过调整将我的代码更改为跨平台 Windows/Mac/Linux,以便它可以通过 Mono 运行。我的代码中唯一的 Interop 调用是设置墙纸的调用。

我知道每个平台都需要不同的方法/脚本才能工作;我的计划是检查操作系统和版本并根据需要运行适当的代码。到目前为止,我发现了以下可能有帮助的非单声道资源:

其中有几个答案似乎包含脚本,这些脚本可能可以通过代码在每个环境中调用 shell/命令行来执行?

如何在 Linux 和 Mac 环境中使用单声道更改桌面背景?

最佳答案

在使用 Mono 的 Mac 上设置墙纸
我整理了一个名为 AppleScript Slim 的库,它是一个 C# dll,允许您从 WinForms(或任何)Mono 应用程序执行 AppleScript。该项目 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 设置墙纸 (正在进行中,我计划使用问题评论中讨论的 Mono 的 GCONF 库的一部分,还没有机会尝试)

关于c# - 使用 Mono 设置桌面墙纸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9432794/

相关文章:

c# - Visual Studio 2013 Intellisense 不会将枚举类型放在方法参数的位置

c# - 由于 Base64 错误,无法将图像上传到数据库

c# - 我可以设置 ReSharper 以将未导入的类用法重命名为它们的全名而不是导入它们的命名空间吗?

python - 触发 Pi Camera 时的多个图像实例

c - 通过修改重用宏中的变量

macos - 无法执行没有JRE捆绑的JavaFX应用程序

macos - 如果应用程序是 UIElement,我是否需要帮助程序将我的应用程序注册为登录项

c# - 为什么在 c# 和 vb.net 上运行时,该 linq 查询的 sql 查询不同?

linux - 在 Linux 上升级 Aspnet Core 应用程序出现错误

php - 寻找一种安全的方式来部署 PHP 代码