的Windows Phone 8 - 私有的API?

问题描述:

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

Is it possible to use private APIs in Windows Phone 8 development similar to iOS development?

当然,这是不是会得到公布(苹果商店/市场)的应用程序。但也有非公益性项目很多使用情况下,开发人员要调用内部系统的功能。

Of course, this is NOT about apps going to get published (AppStore/Marketplace). But there are a lot of use cases for non-public projects where a developer wants to call internal system functions.

通过安装了Windows Phone 8 SDK,可以安装于Windows Phone 8的模拟器像C:\\ Program Files文件(x86)的\\微软的SDK \\的Windows Phone \\ 8.0 \\模拟\\图像。在Windows Phone OS的主分区,可以定位到Windows \\ System32下,检查系统DLL文件像Dependency Walker中或IDA Pro的一个工具。

With the Windows Phone 8 SDK installed, one can mount the Windows Phone 8 Emulator image located in "C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\Emulation\Images". In the main partition of the Windows Phone OS, one can navigate to Windows\System32 and inspect the system DLL files with a tool like Dependency Walker or IDA Pro.

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

There are a lot of functions which sound very interesting but which are not publically available and thus not documented. The question is: is it possible to call them somehow from an app or by other means?

刚性的功能的一些例子(有一个更为):

Just a few examples of interesting functions (there are a much more):


  • ShellChrome.dll:InvokeStartMenu,InvokeScreenCapture,InvokeVolumeUp,LockDevice,...

  • InputInjection.dll:ApiInjectInitialize,ApiInjectTouchEvent,...

  • ...

我试图让调用LoadLibrary(具体LoadLibraryExA)在原生的Windows Phone应用程序项目莫名其妙工作,并加载并调用这些函数(库的装载工作)。长话短说,我结束了访问冲突错误或试图调用(因为沙盒执行环境的可能)的职能时相似。另一个问题是,我只能猜测职能的签名(参数)。我找不到他们与我使用的工具。

I tried to get LoadLibrary (specifically, LoadLibraryExA) working somehow in a native Windows Phone App project, and to load and call these functions (the loading of the library worked). Long story short, I ended up with access violation errors or similar when trying to call the functions (maybe because of the sandboxed execution environment). Another problem is, that I can only guess the signatures (arguments) of the functions. I can't find them out with the tools I use.

您不能,应用程序沙箱将强制执行A​​PI的使用。这意味着每次尝试做一个API要求您没有权限的通话时间,你会得到一个UnauthorizedAccessException。
这是紧密联系在一起的。你们用什么来解锁手机用于开发目的开发者帐户。

You can't, the application sandbox will enforce API usage. That means you will get an UnauthorizedAccessException every time you try to do a call to an api requiring rights you don't have. This is intimately tied with the developer account you use to unlock your phone for development purposes.

编辑:这也是对C ++真正的原生侧

EDIT : That's also true on the c++ native side.