application Préférences Système

cbrandtcbrandt Membre
21:36 modifié dans API AppKit #1
salut à  tous

je cherche à  ouvrir Préférences Système, en activant un panneau de préférences particulier...

quelqu'un sait ?

Réponses

  • cbrandtcbrandt Membre
    février 2005 modifié #2
    je me réponds à  moi-même:
    il suffit d'indiquer le chemin du panneau particulier dans les paramètres:
    <br />/Applications/System Preferences.app/Contents/MacOS/System Preferences ~/Library/PreferencePanes/Displays.prefPane/<br />
    


    edit:

    ça marche si les prefs système ne sont pas déjà  ouvertes. sinon un deuxième exemplaire est ouvert...
    je sais tester si les prefs système sont ouvertes, mais dans ce cas, comment activer le panneau qui m'intéresse ?
  • mpergandmpergand Membre
    21:36 modifié #3
    Essaie en AppleScript, je n'ai qu'un bout d'exemple en Java, désolé:
    <br />try{<br />Process p = Runtime.getRuntime().exec(new String[]{<br />&quot;osascript&quot;,<br />&quot;-e&quot;,&quot;tell application &#092;&quot;System Preferences&#092;&quot;&quot;,<br />&quot;-e&quot;,&quot;activate&quot;,<br />&quot;-e&quot;,&quot;set current pane to pane &#092;&quot;com.apple.preferences.softwareupdate&#092;&quot;&quot;,<br />&quot;-e&quot;,&quot;end tell&quot;});<br />}catch(Throwable t){}<br />
    

    Fais une petite recherche sur les dev lists ...
  • cbrandtcbrandt Membre
    21:36 modifié #4
    ça marche impec en combinant avec le code obj-c trouvé dans un autre post:
    <br />	NSDictionary			*errorInfo; <br />	NSAppleEventDescriptor	*result; <br />	NSString				*script;<br />	NSAppleScript			*as;<br />	<br /><br />	script = @&quot;&#092;<br />		tell application &#092;&quot;System Preferences&#092;&quot; &#092;n&#092;<br />			activate&#092;n&#092;<br />			set current pane to pane &#092;&quot;net.cbrandt.cblauncher.prefpane&#092;&quot;&#092;n&#092;<br />		end tell&quot;;<br />	<br />	errorInfo = nil;<br />	as = [[NSAppleScript alloc] initWithSource: script]; <br />	result = [as executeAndReturnError: &amp;errorInfo]; <br />	if (result)<br />		NSLog(@&quot;%@&quot;, [result stringValue]);<br />	[as release];<br />
    
Connectez-vous ou Inscrivez-vous pour répondre.