PostScript プリンター ドライバーをインストールし、Postscript 出力をプログラムにリダイレクトするために REDMON (redmonnt.dll) をセットアップしました。私のかなり単純な C プログラムでは、STDIN からデータをキャプチャし、それを .ps ファイルに正常に保存できます。ファイルは問題ないようです。
しかし、ファイルを表示するために gsview.exe を起動したいのです。ShellExecute を呼び出すと、権限の問題により Windows 7 で失敗します。私のプログラムは別のユーザー アカウント (LOCAL SERVICE) で呼び出されているようです。そのため、特定のユーザー名 (印刷ジョブを開始したユーザー) で gsview.exe を実行する方法を探しています。このユーザー名は、SESSIONID と共に REDMON_USER という変数でプログラムで使用できます。
Q:ユーザー名とセッション ID を指定してプログラムを開始するために最低限必要な WinAPI 呼び出しは何ですか?
C/C++、.NET のコード例は非常に役立ちます。
EDIT:私が達成しようとしているのは、(redmoneeからの)redruneeに非常に似たものです。redrunee は、コンソール ウィンドウが一瞬だけ開くため、使用したくありません。
注: 1) プログラムは、プリンター サービスによって [ローカル サービス] アカウントとして呼び出されます。2) 最初のパラメーター Username (REDMON_USER) は、実際には、現在画面を見ているユーザーを指します。