我想检查外部应用程序的窗口(扑克在线游戏桌)何时跳过所有其他窗口,因为轮到我玩了.
问题是Game表跳转到前台......但是窗口不会成为活动状态......这意味着我无法通过API GetForegroundWindow检查它是否被跳过了所有其他可见窗口(并且在fatc中)此API继续返回上一个窗口的句柄,如果它是在跳过所有桌面窗口的游戏表之下).此外,GetTopWindow API不起作用.
现在的问题是:如果它没有激活,如何找到顶部可见窗口的句柄(在我眼睛的所有其他打开的窗口上的窗口)?
不,窗口不是TopMost窗口:事实上,如果我点击另一个窗口,它会进入后台.如果它应该是TopMost窗口,它将保持在顶部.
可能它是由WM_SHOW或WM_NOACTIVATE标志放在前台.
当我编译一个Inno Setup项目时,该[Code]
部分也被编译了(作为Pascal可执行文件还是Pascal DLL)?
换句话说,如果有人打开Inno Setup项目的包装,他是否可以将本[Code]
节视为原始源代码(该死的::))或作为已编译的可执行文件/ DLL(难于反汇编)?
我想在本[Code]
节中插入一些字符串(密码和密钥),而且我不知道它们是否也可以在没有逆向工程知识的情况下很容易地恢复。
使用此代码:
Dim sf As New StackFrame(0, True)
MessageBox.Show("Module: " & sf.GetFileName & " -Line: " & sf.GetFileLineNumber.ToString)
Run Code Online (Sandbox Code Playgroud)
我可以获得发生未处理异常的类和行号(in ApplicationEvents.vb, Sub MyApplication_UnhandledException(...) Handles Me.UnhandledException
)
但是,如果我使用EazFuscator(以及可能与其他任何人)混淆代码,我会丢失数据:我得到一个NullString,0代表行号.
插入代码:
<Assembly: Obfuscation(Feature:="encrypt symbol names with password XXXX", Exclude:=False)>
Run Code Online (Sandbox Code Playgroud)
没有什么变化.我可以反编译e.message,但线路丢失了.如何在混淆代码中获取错误行?