2012-02-24 82 views
2

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

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

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

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

+0

我猜想在Linux中它将非常依赖所使用的桌面。 – 2012-02-24 14:56:38

+0

@ AndrewJ.Brehm - 确实如此,但是如果我能找到一个合理的方法,比如说2或3个与前两个窗口管理器相对应的不同命令,我可能会对此感到满意。 – Peter 2012-02-24 15:04:41

+0

这里是一个Gnome的壁纸更改应用程序,也许你可以看看代码,并得到一些想法:https://launchpad.net/drapes – 2012-02-24 17:01:34

回答

0

设置Mac上的壁纸与单
我已经把一个名为AppleScript的修身库,它是一个C#DLL,它允许你从一个WinForms执行的AppleScript(或任何真正的)单声道应用。该项目的100%代码直接来自Mono Develop源代码,我只是修剪和重新包装了我需要的部分。

AppleScript的修身: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库部分,还没有机会尝试它)