1
我通過基於ffilib的FFI使用Quartz(即Quartz是動態加載的)。對CGWindowListCopyWindowInfo
的調用返回包含窗口信息的字典CFArray
。一個有趣的關鍵是kCGWindowName
,它可以用來獲取窗口的名稱。kCGWindowName的值是什麼?
在C中將包括適當的頭文件,但由於我使用ffilib,我需要知道kCGWindowName
的值。根據蘋果的文件,它是CFStringRef
。
如何獲得kCGWindowName
的值?
在頭文件中嘗試刷新kCGWindowName
時沒有提供可用的結果。
OK,這就是你想要的。好吧,我也找不到它,但我猜測。我用代碼中的CFSTR(「kCGWindowName」)替換了kCGWindowName,它工作正常。所以這就是它所代表的!它必須像這樣定義... const kCGWindowName =「kCGWindowName」。我希望有所幫助。 – regulus6633
太簡單了!我應該猜到了。接下來是如何構建CFString。不幸的是,CFSTR是宏觀的,因此無法通過ffi。但我想我可以在某個頭文件中找到CFSTR。 – soegaard
最簡單的解決方案是'CFStringCreateWithCString'。 – soegaard