« [REALbasic]SafariをREALbasicからAppleEventで操る | Main | [REALbasic]特定のアプリケーションプロセスの存在の有無をAppleEventで確認する in Mac OS X »

2005.08.18

[REALbasic]Mac OS Xでは、GlobalFloatingWindowのFloaterProcessが有効にならない問題

Safariがfrontmostのときだけウインドウを表示しようと思って、WindowをGlobalFloatingWindowに設定し、WindowクラスのFloaterProcessを指定したところ(下記をOpenなどのイベントに書いておけばいいはず)、これが有効にならない。

Window1.FloaterProcess = "sfri"

何か自分が変なことをしているのかもと調べたところ、以前から解決されていないREALbasicのバグだと知る。

http://support.realsoftware.com/listarchives/realbasic-nug/2004-09/msg00226.html←ここで話題が出ている。

しょうがないので、Timerでpollingすることに。またAppleEventか。

■Safariがfrontmost(最前面のウインドウ)かどうか問い合わせる

Dim ae as AppleEvent
Dim obj As AppleEventObjectSpecifier
ae = NewAppleEvent("core","getd","macs")
ae.ObjectSpecifierParam("----") = GetNamedObjectDescriptor("pcap", Nil, "sfri")

//SafariのfrontmostがTrueだったらWindow1を表示。そうでなければ隠す。
//むろん、ApplicationのOpenか、Window1のOpenにme.hideとかしとく。
If ae.Send() Then
If ae.ReplyBoolean = True Then
Window1.Show
Else
Window1.Hide
End If
End If

|

« [REALbasic]SafariをREALbasicからAppleEventで操る | Main | [REALbasic]特定のアプリケーションプロセスの存在の有無をAppleEventで確認する in Mac OS X »