Hi there,My macOS application is able to control Powerpoint through AppleScript. The first step of controlling is to see if Microsoft Office installed or not. Here is the worked AppleScript:set appID to "com.microsoft.Powerpoint"
-- check if the application exists
set doesExist to false
try
tell application "Finder" to get application file id appID
set doesExist to true
end try
return doesExistIf the Office is installed, the script returns "true" and "false" vice versa. The script is working under Script Editor and Xcode 8.3.3.However I upgraded my Xcode to 10.3, the script always return "false". This stops me to do notarization. How my object-C call AppleScript API is as below:// AppleScript macro
+ (NSString *)pptIsInstalledOrNot
{
return @"\n\
set appID to \"com.microsoft.Powerpoint\" \n\
-- check if the application exists \n\
set doesExist to false \n\
try \n\
tell application \"Finder\" to get application file id appID \n\
set doesExist to true \n\
end try \n\
\n\
return doesExist \n\
";
}
// AppleScript execution
+ (NSAppleEventDescriptor *)runProcess:(NSString *)script
errorDescription:(NSString **)errorDescription
{
NSDictionary *errorInfo = [[NSDictionary alloc] init];
NSAppleScript *appleScript = [[NSAppleScript alloc] initWithSource:script];
NSAppleEventDescriptor *eventResult = [appleScript executeAndReturnError:&errorInfo];
// Check errorInfo
if (!eventResult) {
// Set error message
if ([errorInfo valueForKey:NSAppleScriptErrorMessage]) {
id message = [errorInfo valueForKey:NSAppleScriptErrorMessage];
if (errorDescription) {
*errorDescription = (NSString *)message;
}
}
}
else {
// Set output to the AppleScript's output
}
return eventResult;
}
// main process
Boolean isInstalled = false;
{
NSString *script = [self pptIsInstalledOrNot];
NSString *errorMessage = nil;
NSAppleEventDescriptor *descriptor = [self runProcess:script errorDescription:&errorMessage];
isInstalled = [descriptor booleanValue];
}I ever tried other ways, still failed. How do I modify my program on XCode 10.3? Appreciate for any ideas andthanks your time.
Post
Replies
Boosts
Views
Activity
Hi everyone,
I am newbie deeply diving in DriverKit.
I need to schedule objects on-by-one, so that I need some methods to manage these.
I tried declare variable like pthread_mutexattr_t*
or pthread_mutex_t
in my .iig files, but never build success.
I also tried include libsystem_pthread.tbd
in Frameworks and libraries, or using
#include <pthread.h>
all never been success.
Is it possible to use pthread in a DriverKit dext? Appreciate for any reply.
We've developed a DriverKit driver to handle our usb mouse products. The driver is working perfectly in macOS 10.15.
In macOS 11 our driver can know our mouse is connecting but somehow, the cursor not moving and button event no response since system started. Unless I re-plug my mouse the cursor and button are working again.
Is this an issue of macOS 11? No matter Intel or Apple silicon this situation happens easily.
Our DriveKit driver is inherited from HIDFamily.
Hello everybody,
Since macOS 15, the systemextension allow in changed as switch style and put in the "Login items & Extensions". I know the URL navigating to here, which is:
x-apple.systempreferences:com.apple.LoginItems-Settings.extension
But the extension options we need to scroll deep down and we need to click the "!" to open it.
I want to open the finally window for user can easily see it and enable it. Please tell me how. Appreciate!!