相关疑难解决方法(0)

Mac OS X中您最喜欢的反汇编工具是什么?

我现在用的otool,nmFraise文本编辑器拆解Mach-o二进制文件.此时我的工作流程非常简单:

    1.列出现有符号.
nm -g
Run Code Online (Sandbox Code Playgroud)
    2.获取诅咒代码.
otool -vt
Run Code Online (Sandbox Code Playgroud)
    3.将此输出复制并粘贴到文本文件中.
    4.在文本编辑器中阅读和注释代码:)

我正在寻找简化使用disasm代码的工具Mac OS X.

macos assembly otool disassembly nm

54
推荐指数
2
解决办法
4万
查看次数

在OS X上唯一标识活动窗口

我正在尝试修补使用辅助功能API调整窗口大小的应用程序.

我需要维护一个包含以前窗口大小的字典.密钥需要标识当前活动的窗口.此时,通过NSAccessibilityFocusedWindowAttribute按热键检索该活动窗口.

但是,每次调用此方法时AXUIElementRef,标识窗口的返回值都不同!这当然意味着我不能将它用作字典键 - 字典将找不到相应的条目.

以下代码重现了该问题:

-(IBAction)testWindowIdentification:(id)sender{
    AXUIElementRef focusedApp;
    AXUIElementRef focusedWindow;

    AXUIElementCopyAttributeValue(_systemWideElement,
                                  (CFStringRef) kAXFocusedApplicationAttribute,
                                  (CFTypeRef*) &focusedApp);
    AXUIElementCopyAttributeValue((AXUIElementRef) focusedApp,
                                  (CFStringRef) NSAccessibilityFocusedWindowAttribute,
                                  (CFTypeRef*) &focusedWindow);
    CFShow(focusedWindow);
}
Run Code Online (Sandbox Code Playgroud)

_systemWideElementinit使用调用方法在方法中初始化AXUIElementCreateSystemWide().

CFShow每次调用该方法时,该语句都会清楚地显示不同的ID(即使同一个窗口处于活动状态),这对我来说是无用的:

<AXUIElement 0x47e850> {pid=42463}
<AXUIElement 0x47e890> {pid=42463}
<AXUIElement 0x47e2c0> {pid=42463}
…
Run Code Online (Sandbox Code Playgroud)

关于文件AXUIElement显示没有检索用于UI元素的独特的属性,而且也不方法,所述的NSAccessibility协议.独特的PID是不是足以让我,因为一个进程可以有多个窗口.

如何在Cocoa中检索活动窗口的一些唯一标识符?

(顺便说一句,真正的代码是检查上述调用中的返回代码;没有错误,调用成功.)

macos cocoa objective-c

28
推荐指数
2
解决办法
5599
查看次数

标签 统计

macos ×2

assembly ×1

cocoa ×1

disassembly ×1

nm ×1

objective-c ×1

otool ×1