最近、複数の部分からなるアプリケーションを作成しました。パーツの1つはネットワークツールです。これは常にOSから始まり、いかなる種類のメッセージも表示しません。しかし、それは信じられないほど苛立たしいコンソールを起動します。それはプログラム自体を閉じずに取り除くことは不可能です(与えられたようにこれを受け入れてください)。プログラムを起動してこの問題を回避することにしました(これは*.exe
)サービスとして、したがってそれがまったく表示されないようにします。アプリケーションはさまざまなコンピューターに配布されるため(したがって、そもそもネットワークツールが必要です)。このプログラムをサービスとしてインストールする方法が必要です(したがって、コントロールパネルの一連のメニューを確認したり、どちらのコンピューターにとどまらなければならないサードパーティのアプリケーションをダウンロードしたりするような回答は必要ありません。サービスは実行されます)。これどうやってするの?
Windows NTリソースキットでは、Microsoftはsrvany
と呼ばれるツールを提供しています。このツールは.exe
サービスとして。それよりもうまく機能するツールは Non-Sucking Service Manager(nssm) です。
Nssmを使用して、Webサーバーであるpythonコンソール実行可能ファイルを、システムが正常に起動したときに実行されるサービスに変換しました。
通常のWindows実行可能ファイルをサービスとして実行するためのサードパーティツールは多数あります。
Bitsumは、 MakeService と呼ばれるコマンドラインのみのユーティリティを作成しました(現在、悪用のために配布が制限されています)。
彼らは、通常のWindows実行可能ファイルを起動するサービススタブを使用してこれを行うことができます。そのサービススタブは、開始、停止などのサービスコマンドに応答して、必要に応じて起動されたプロセスを制御できます。
ただし、アプリケーションにユーザーとの対話性がある場合は、NT6 +でシステムサービスセッションの分離が発生します。
このフリーウェアユーティリティの即時ダウンロードを中止しなければならなかったのは悲しいことですが、それでも正当なニーズがある人には配布します。 32ビットおよび64ビットのx86ネイティブで利用できます。
受け入れられた回答が推奨するように、Windowsリソースキットに含まれるMicrosoftのsrvany.exeなど、他の同様のユーティリティがあると確信しています。これは、MakeServiceが行った/行ったのと同じことを行います。
Microsoftは、Windowsサービスを作成し、リモートコンピューターにインストールする手順をこの ページ にまとめました。ここで概説するにはステップが多すぎます。潜在的な問題を解決するための追加のリンクがあります。