On Feb 13, 2009, at 3:30 PM, Chunk 1978 wrote:

is this possible?  it seems that programatically changing
com.apple.desktop.plist (Background > Default > Change) from
TimeInterval to Never will not override the settings in System
Preferences.  i though applescript could be an option but it seems
that using an applescript to accomplish this would have to open the
system preferences window.  it's only ideal if it's done as a
background process.

You want to target System Events rather than System Preferences with your AppleScript.

Contrary to I. Savant, I don't think going through NSUserDefaults or CFPreferences will work. It still won't inform the necessary processes of the change in an active manner.

Take a look at the LoginItemsAE sample code. <http://developer.apple.com/samplecode/LoginItemsAE/ >

Obviously, you're not working with Login Items, but it demonstrates the technique of sending Apple Events to System Events. Also, modifying the user's login items has some conceptual similarities to what you're trying to do. You might be tempted to modify the list of login items by manipulating the relevant .plist file, or by using NSUserDefaults or CFPreferences, but that's not appropriate. The main failing is that, if the user actually has the Login Items tab of the Accounts pane of System Preferences open, changes you make to the preferences won't be reflected there. Furthermore, the pane may at any time re-save what it thinks is the current state of the list, obliterating the change you attempted to make behind its back.

(Ironically, the new shiny way to manipulate Login Items is the LSSharedFileList API, not this sample code. That API is currently only documented in <LaunchServices/LSSharedFileList.h>.)

Cheers,
Ken

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to