2010-11-24 16 views
0

Quicktimeでビデオファイルを開いて閉じようとしています。ビデオファイルは[NSWorkspase openfile:path withapplication:@"Quick Time Player"]で正常に開いています。しかし、Quicktimeウィンドウを閉じるときに何も起こりません。ここにコードがあります。[NSWindow close]または[NSWindow performClose:(id)]でウィンドウ(QuickTime)を閉じることができません

NSMutableArray *titles = [[NSApplication sharedApplication] orderedWindows]; 
int i; 
id obj; 
NSMutableString *mystring; 
for(i=0; i< [titles count]; i++) 
    { 
    obj = (NSWindow*)[titles objectAtIndex:i]; 
    mystring = [obj title]; 
    if([mystring isEqualToString:@"PREVIEW"] == 1) 
    { 
    [obj close]; 
    } 
    //NSLog("Title : %@\n",(NSString*)[obj title]); 
    } 

誰かが私を助けなければならないとすれば、私は義務づけられます。

答えて

0

orderedWindowsがアプリケーションからウィンドウのみを返すため、これは機能しません。 QuickTime Playerなどの別のアプリケーションからNSWindowオブジェクトにアクセスする方法はありません。

これを行うには、AppleEventsを使用する必要があります。それらを送信するにはさまざまな方法がありますが、最も簡単なのはおそらくScriptingBridgeです。ここにはかなり良いtutorialがあります。

+0

"orderedWindows"この機能は、自分自身のアプリケーションから発信されたため、QuickTime用のNSWindowオブジェクトを持っているため、QuickTime Playerのリファレンスを含むNSWindowsの配列を既に送っています。これについての考えは? – Omayr

1

私は解決策を見つけたねえ、それは簡単にスクリプトが

tell application "QuickTime Player" 
    repeat with d in documents 
     if name of d is "abc.mp4" then 
      close d 
     end if 
    end repeat 
end tell 

ある以下、アップルスクリプトを介して行うことができますそのシンプルで簡単です。このスクリプトはエラーを出しますが、必要なタスクを実行します。最初にアプリケーションQuickTme Playerのコントロールを取得し、タイトルがabc.mp4のウィンドウを検索して最終的に閉じます。

+0

これを行う簡単な方法があります: 'アプリケーションに" QuickTime Player "を閉じる(名前が" abc.mp4 "のすべてのドキュメント)' – Sven

関連する問題