私はこの投稿を読みましたが、与えられた答えではほとんど成功しませんでした。それは言った
WTSEnumerateSessions を使用して適切なデスクトップを見つける
しかし、私が得たのは構造体の駅名だけでしたWTS_SESSION_INFO
。私が見た名前 (「コンソール」、「サービス」など) は、「Winsta0\default」のようなステーション/デスクトップ名とはまったく異なります。答えは状態に進みます
次に、CreateProcessAsUser を使用してそのデスクトップでアプリケーションを起動します (STARTUPINFO 構造体の一部としてデスクトップのハンドルを渡します)。
デスクトップのメンバーがないHANDLE
ため、デスクトップの変数を参照しているとは思いません。STARTUPINFO
私が参照していると思うのはlpDesktop
、ステーション/デスクトップ名を指定できるメンバーです。によって返された名前を使用すると、表示されるWTSEnumerateSessions
UI を起動できませんでしたが、「Winsta0\default」では起動できました。
私は何を間違えましたか?