C++ (Visual Studio 2010) で Windows サービスを作成していますが、このサービスはセキュア コピーを介してリモート サーバーにファイルを送信する必要があります (そのために pscp.exe を使用しています)。
そのため、関数を使用してsystempscp.exe を起動していますが、通常のアプリケーションとして実行するとすべて正常に動作します。
しかし、サービスとして実行しようとすると、サービスは pscp.exe を起動します (これはタスク マネージャーで確認できます) が、pscp.exe はフリーズし、リモート ホストに何も送信しません。また、サービスを停止しても、自分で pscp プロセスを強制終了する必要があります。
サービスが「デスクトップと対話」できるようにするためにいくつかのフォーラムを読みましたが、これで問題は解決しません。
また、サービスがログオンするユーザー アカウントを変更しようとしましたが、結果はありませんでした。
何か案は?
外部プログラムに pscp.exe のような GUI がなくても、Windows サービスから外部プログラムを実行するのは非常に難しいようです。
ありがとう!
-- アウグスト・カリンジ