新しいサーバーが稼働していて、インポートルーチンを実行する新しいプログラムがいくつかあります。これまでのところ良いです...しかしautostartフォルダに配置されるプログラムが1つありますしたがって、adminがログインするまで実行されず、ログアウトすると停止します。
これを別のセッションに入れて、起動時にタスクスケジューラで起動するだけで、何の操作も必要ないようにしたいと考えています。これはこれを行う正しい方法ですか?後でログインしてログアウトしても安全ですか?
どうもありがとう!
編集:アプリケーションを実行すると、タスクバーに記号として表示されます。これにより、アプリケーションを構成できます。変更した場合、これについて知っておくべきことはありますか?
編集:これは私のアプリケーションではなく、サービスとして書き換えることはできません。
起動時にタスクscheldulerを使用してアプリケーションを正常に追加しました。ログインしてログアウトしてもアプリケーションは終了しませんが、記号は表示されません。詳細を質問に追加してください。回答を承認済みとしてマークします。
編集:これを使用してしまいました。構成する必要がある場合は、タスクマネージャーでアプリケーションを停止し、リンクで再度開始します。その後、アプリケーションを終了し、タスクスケジューラの手動起動で再起動します。
アプリケーションを2つに分離する必要があります。
ユーザーセッションなしで実行できるようにするには、Windowsサービスが必要です。それはすべての背景のものを処理するはずです。次に、サービスを登録し、システムの起動時に開始するように設定できます。
UIを備え、通知領域に表示されるようにするには、Windowsアプリケーションが必要です。これは通常どおり自動起動され、たとえば名前付きパイプを介してサービスと通信します。
ユーザーセッションなしでUIアプリケーションを実行することは(かろうじて)まだ可能ですが、下位互換性のためにのみ維持されており、既に多くの問題を示しています。かなりの数の契約に違反するため、将来的には完全に削除される可能性があります。このようなハックに依存しないでください。
プログラムをWindowsサービスとして実行する必要があります。それを行う1つの方法は、sc.exe
プログラム:
> sc create <new_service_name> binPath= "c:\myapp\myapp.exe"
あなたはそれについて読むことができます ここ 。
「sc create」コマンドを機能させることができませんでした。代わりに、regeditを使用してレジストリを手動で編集しました。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\servicesに新しいキーを追加しました。
次のページを使用して、必要なパラメーターとその値を理解しました。名前はマップされないことに注意してください。
https://docs.Microsoft.com/en-us/windows-hardware/drivers/install/inf-addservice-directive
古い質問ですが、最近別の方法で解決しました...
(起動にスケジュールされたタスクを使用する前は、多くのソフトウェアでさまざまな問題が発生しました...)
いくつかのプログラムは、さまざまな理由から、ユーザーレベルで実行する必要があります...または特定のユーザーセッション内で実行する必要があります...
したがって、私が見つけた最良の方法は、Sysinternal/Autorunsなどのツールを使用して、特定のユーザーへの自動ログオンをプログラムすることです(これはレジストリ設定です)...そして、そのユーザーのスタートアップフォルダー(またはその他の「自動実行」)/autolaunch "タスク)...最初に画面をロックするスクリプトを実行します...次に、他の目的のプログラムを実行します...そのユーザープロファイルで実行されます...
したがって、標準ユーザーまたは管理者を選択できます...または、管理者モードで標準ユーザーからプログラムを起動することもできます...
お役に立てれば幸いです...
この「ハッキング」により、起動アプリに関する多くの問題が解決しました...
古い質問ですが、ここでつまずく人のために。 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
ユーザーアプリケーションをサービスに変換し、Regsvr32またはinstallutil.exeを使用して登録します。 [〜#〜] system [〜#〜]ユーザーアカウントを使用してサービスを開始します。これは高特権アカウントです。注:ウィンドウベースのアプリケーションは実行できません。メッセージのみのウィンドウでも。