12

是否可以在类似于 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 操作系统的主分区中,可以导航到 Windows\System32 并使用 Dependency Walker 或 IDA Pro 等工具检查系统 DLL 文件。

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

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

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

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

4

3 回答 3

0

I think they only provide some private apis to only partners with an NDA.

http://social.msdn.microsoft.com/forums/wpapps/en-US/4af0e87a-ab4b-4652-891a-f198a32758cf/windows-phone-8-access-to-private-apis

于 2013-11-22T08:16:53.833 回答
0

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

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

于 2014-07-30T11:50:29.127 回答
0

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

于 2013-05-24T12:43:22.123 回答