【问题标题】:Windows Phone 8 - private APIs?Windows Phone 8 - 私有 API?
【发布时间】:2012-12-22 21:53:49
【问题描述】:

是否可以在类似于 iOS 开发的 Windows Phone 8 开发中使用私有 API?

当然,这不是关于要发布的应用程序(AppStore/Marketplace)。但是有很多非公共项目的用例,开发人员想要调用内部系统函数。

安装 Windows Phone 8 SDK 后,可以挂载位于C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images 的 Windows Phone 8 Emulator 映像。在 Windows Phone 操作系统的主分区中,可以导航到 Windows\System32 并使用 Dependency Walker 或 IDA Pro 等工具检查系统 DLL 文件。

有很多功能听起来很有趣,但不公开,因此没有记录。问题是:是否可以通过应用程序或其他方式以某种方式调用它们?

只是一些有趣的函数示例(还有更多):

  • ShellChrome.dll:InvokeStartMenu、InvokeScreenCapture、InvokeVolumeUp、LockDevice……
  • InputInjection.dll:ApiInjectInitialize、ApiInjectTouchEvent、...
  • ...

我试图让 LoadLibrary(特别是 LoadLibraryExA)在本机 Windows Phone 应用程序项目中以某种方式工作,并加载和调用这些函数(库的加载工作)。长话短说,我在尝试调用函数时遇到了访问冲突错误或类似错误(可能是因为沙盒执行环境)。另一个问题是,我只能猜测函数的签名(参数)。我用我使用的工具找不到它们。

【问题讨论】:

  • 顶起来,一个有趣的问题没有回应

标签: api windows-phone-8 private


【解决方案1】:

您不能,应用程序沙箱将强制使用 API。这意味着每次您尝试调用需要您没有权限的 api 时都会收到 UnauthorizedAccessException。 这与您用于解锁手机以进行开发的开发者帐户密切相关。

编辑:在 c++ 本机方面也是如此。

【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      私有API?我们可以在windows phone中使用dll文件。我在 windows phone 中使用了私有 sdk。我不认为 Windows 会允许我们像 Android 那样自定义操作系统,所以 Invoke volume up..etc 的东西不能通过私有 api 工作。

      【讨论】:

        猜你喜欢
        • 2014-01-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多