2017-09-29 6 views
0

私たちはデバイスにネットワーク接続を使用しない「割り当てられたアクセス」アプリケーションを実行しています。この製品は、Windows 10ビルド1703で当社のUWPアプリケーションを起動し、直ちに実行します。C++/CXで書かれたUWPで時間を設定する

このデバイスは国際的なもので、現在の地域とローカルのDSTルールに基づいて時刻と日付を設定する必要があります。

UWPアプリケーションはデフォルトでサンドボックス化されているため、このようなシステムコールは一般的に利用できません。このアプリは決して店に置かれることはありませんので、ストアルールを遵守する必要がないということを考えれば、時間を設定するための回避策がありますか? (完全に信頼できるUWPアプリですか?これは変換されたwin32アプリケーションに限定されている可能性があります)

現在、Windows :: Globalization :: Calendarメソッドで時刻と日付を読み取っていますが、方法(おそらく、アプリケーションの制限のため)

時間を設定するアプリからwin32アプリケーションを起動することもあります。おそらく時間と日付をコマンドラインパラメータとして渡します。これは最善の解決策ですか、実際にはうまくいくのでしょうか? この機能を有効にする可能性のあるアプリマニフェストに何かを追加できますか?

それは、タイムスタンプなどを使用すると、当社の特定のアプリのためにかなり制限となり、日付と時刻を設定することができない私はあなたが経由で店舗への移植後、WPFを使用したほうが良いと思います

+0

、アプリが適切な特権を持っていません。たとえば、UWPアプリケーションからデスクトップアプリケーションを起動する場合は、[FullTrustProcessLauncher]を使用して起動できます(https://docs.microsoft.com/en-us/uwp/api/windows.applicationmodel.fulltrustprocesslauncher#Windows_ApplicationModel_FullTrustProcessLauncher_LaunchFullTrustProcessForAppAsync_System_String_ )。 「要求された操作には仰角が必要です」というエラーが表示されます。 – kennyzx

答えて

0

このアプリは、あなたがBrokered Windows Runtime Componentsを使用して考えることができストア

に置かれることはありません。これは、サイドロードされたUniversal Windows Platformアプリケーションが、アプリケーションコンテナの外部のデスクトッププロセスと相互運用できるようにすることによって可能になります。

Cheat-Sheet for using Brokered Windows Runtime Components for side-loaded Windows Store appsについてのこのブログは、あなたの詳細です。

は、ここにあなたの参照のためのサンプルコードです:時間を設定するためのAPIを見つけること以外に考慮すべき何か他のものがありますhttps://code.msdn.microsoft.com/windowsapps/Brokered-Windows-Runtime-9d64cada

+0

ありがとうございます - これは私が想像したものに最も近いと思われます。私は過去にこれを使用していないので、最終的に問題を解決するかどうかを実験する必要があります。私はそれを答えとして受け入れます。とても有難い。 – Keano

0

デスクトップブリッジ。

WPFは、uwpからサンドボックスを差し引いたものとほぼ同じです。新しいwpfプロジェクトをブレンドして、uwpアプリケーションで使用したものと同じxamlを使用できます。

これはデスクトップとサーフェスハブでのみ機能しますので、ご注意ください。

ps:uwpからwin32アプリを起動することもできますが、デスクトップのみに制限されるので、どのような場合でもWPFを使用する方がよいでしょう。

https://docs.microsoft.com/en-us/windows/uwp/porting/desktop-to-uwp-root

+0

提案された回答に感謝します。この場合、アプリケーションは大きく、純粋なC++から移植されています(ABIのみでC++/CXを使用します)。デスクトップへの実行を制限するのは問題ありませんが、この単一の機能にアクセスするためにc#で書き直すのは現実的ではありません。私は、絶対に必要でない限り、このタスクを実行するためにwin32アプリを起動したくない! – Keano

+0

@Keano https://msdn.microsoft.com/en-us/library/system.datetime(v=vs.110).aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1そこに時間のかかるこのような構造が役に立つかもしれません。そして、再びシステム時間を設定しません。 –

関連する問題