web-dev-qa-db-ja.com

ログインせずにシステムの起動時にアプリケーションを起動する

新しいサーバーが稼働していて、インポートルーチンを実行する新しいプログラムがいくつかあります。これまでのところ良いです...しかしautostartフォルダに配置されるプログラムが1つありますしたがって、adminがログインするまで実行されず、ログアウトすると停止します

これを別のセッションに入れて、起動時にタスクスケジューラで起動するだけで、何の操作も必要ないようにしたいと考えています。これはこれを行う正しい方法ですか?後でログインしてログアウトしても安全ですか?

どうもありがとう!

編集:アプリケーションを実行すると、タスクバーに記号として表示されます。これにより、アプリケーションを構成できます。変更した場合、これについて知っておくべきことはありますか?

編集:これは私のアプリケーションではなく、サービスとして書き換えることはできません。

6
Daniel

起動時にタスクscheldulerを使用してアプリケーションを正常に追加しました。ログインしてログアウトしてもアプリケーションは終了しませんが、記号は表示されません。詳細を質問に追加してください。回答を承認済みとしてマークします。

編集:これを使用してしまいました。構成する必要がある場合は、タスクマネージャーでアプリケーションを停止し、リンクで再度開始します。その後、アプリケーションを終了し、タスクスケジューラの手動起動で再起動します。

6
Daniel

アプリケーションを2つに分離する必要があります。

ユーザーセッションなしで実行できるようにするには、Windowsサービスが必要です。それはすべての背景のものを処理するはずです。次に、サービスを登録し、システムの起動時に開始するように設定できます。

UIを備え、通知領域に表示されるようにするには、Windowsアプリケーションが必要です。これは通常どおり自動起動され、たとえば名前付きパイプを介してサービスと通信します。

ユーザーセッションなしでUIアプリケーションを実行することは(かろうじて)まだ可能ですが、下位互換性のためにのみ維持されており、既に多くの問題を示しています。かなりの数の契約に違反するため、将来的には完全に削除される可能性があります。このようなハックに依存しないでください。

4
Luaan

プログラムをWindowsサービスとして実行する必要があります。それを行う1つの方法は、sc.exeプログラム:

> sc create <new_service_name> binPath= "c:\myapp\myapp.exe"

あなたはそれについて読むことができます ここ

1

「sc create」コマンドを機能させることができませんでした。代わりに、regeditを使用してレジストリを手動で編集しました。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\servicesに新しいキーを追加しました。

次のページを使用して、必要なパラメーターとその値を理解しました。名前はマップされないことに注意してください。

https://docs.Microsoft.com/en-us/windows-hardware/drivers/install/inf-addservice-directive

0
raahlb

古い質問ですが、最近別の方法で解決しました...

(起動にスケジュールされたタスクを使用する前は、多くのソフトウェアでさまざまな問題が発生しました...)

いくつかのプログラムは、さまざまな理由から、ユーザーレベルで実行する必要があります...または特定のユーザーセッション内で実行する必要があります...

したがって、私が見つけた最良の方法は、Sysinternal/Autorunsなどのツールを使用して、特定のユーザーへの自動ログオンをプログラムすることです(これはレジストリ設定です)...そして、そのユーザーのスタートアップフォルダー(またはその他の「自動実行」)/autolaunch "タスク)...最初に画面をロックするスクリプトを実行します...次に、他の目的のプログラムを実行します...そのユーザープロファイルで実行されます...

したがって、標準ユーザーまたは管理者を選択できます...または、管理者モードで標準ユーザーからプログラムを起動することもできます...

お役に立てれば幸いです...
この「ハッキング」により、起動アプリに関する多くの問題が解決しました...

0
ZEE

古い質問ですが、ここでつまずく人のために。 srvanyを使用して、プログラムをカスタムサービスとして設定します。

Dropbox、googledriveなどでこれを行う場合は、サービスを停止し、プログラムを通常どおり開いて、パスワードや更新などの変更を行う必要があります。

以下は十分なイントロです。

https://www.iceflatline.com/2015/12/run-a-windows-application-as-a-service-with-srvany/

ここからツールキットをダウンロード

https://www.Microsoft.com/en-us/download/details.aspx?id=17657

0
Ryan Douglass

ユーザーアプリケーションをサービスに変換し、Regsvr32またはinstallutil.exeを使用して登録します。 [〜#〜] system [〜#〜]ユーザーアカウントを使用してサービスを開始します。これは高特権アカウントです。注:ウィンドウベースのアプリケーションは実行できません。メッセージのみのウィンドウでも。

0
amilamad