2017-01-14 9 views
1

私はUWPクラスライブラリプロジェクト(C#で書かれています)にいくつかの有用なユーティリティクラスと関数を持っています。これらのクラスと関数を使用し、自動的に1日数回実行するスクリプトを作成したいと思います。これを達成する最良の方法は何ですか?UWPクラスライブラリを使用してスクリプトを作成するにはどうすればよいですか?

アプリを作成する必要がありますか?もしそうなら、私はそれを1日に数回走らせることができますか?

古典的なコンソールexeプログラムを作成し、スクリプトを使用して実行する必要がありますか?はいの場合、コンソールアプリケーションはUWPクラスライブラリを使用できますか?

バックグラウンドタスクを使用してWindowsランタイムコンポーネントを作成する必要がありますか?

または他の解決策ですか?

答えて

2

「スクリプト」の定義が「アプリを実行する」という意味に伸びているとすれば、できることはたくさんあります。より伝統的なスクリプトと見なされるようなものを望むなら、あなたができる最善の方法は、標準の.Netクラスライブラリ(UWPではない)でコードをコンパイルし、それをPowerShellスクリプトから呼び出すことです。あなたがアプリを走らせることができるなら、いくつかのオプションがあり、最も適切なものは、実行中のデバイス、実行したい頻度、そして実際に何をするかによって決まるでしょう。

あなたはUWPアプリについて話しているので、異なる「デバイスファミリ」で動作させることができます。さまざまなデバイス(デスクトップの&電話など)で実行する最も簡単な方法は、定期的なバックグラウンドタスクを作成することです。あなたが定義した時間間隔で、試行して実行します。接続性、電力などの影響を受けます

コンソールアプリケーションはオプションだと言われたので、実際にはデスクトップ/ PC環境にのみ関心があるでしょう。そこにはほとんどのオプションがあります。

まず、コードでUWP/Win10固有のAPIを使用している場合は、コードを変更せずにコンソールアプリケーションにコンパイルするのはおそらく不可能です。私はあなたが質問で説明し、コンソールアプリケーションを使用するような多くのことを行いますが、私はそれらを最も簡単に扱うことができます。

コードを変更する場合は、ポータブルクラスライブラリを使用して、従来のデスクトップアプリやUWPアプリなど、さまざまな種類のアプリからそのコードにリンクできるようにすることを検討してください。

潜在的な問題がたくさんあるので、本当に必要がない限り、ランタイムコンポーネントを作成しないでください。

タスクスケジューラから任意のアプリを実行できますが、UWPアプリを起動するのは難しいです。

タスクのアクションをexeに設定することで、通常のアプリまたはスクリプトを起動できます。 (またはEXEファイルをパラメータとして渡してください)

店舗のアプリはEXEを持っていないので、ちょっと立ち上げることができます。 Windowsシェルでのみ起動できます。しかし、幸いにも、これを行う方法があります。あなたのタスクにexplorer.exeを起動させてください(C:\ Windowsにあります)。その後、引数shell:AppsFolder\[app-PFN]!Appを追加してください。
[app-PFN]は、アプリの製品ファミリ名です。 C:\ Users [ユーザー名] \ AppData \ Local \ Packages \ "

これを使用して、ストアアプリを起動できます。

shell:AppsFolder\Microsoft.WindowsStore_8wekyb3d8bbwe!App 

Task Scheduler app showing the actions tab including above example

関連する問題