我正在尝试使用Redmon http://www.winimage.com/misc/redmon/将打印作业发送到自定义C#应用程序.Redmon"运行"(实际上是Print Spooler)作为SYSTEM,但有一个Run as User选项,允许您的应用程序在打印作业的用户下运行.问题是它似乎没有加载用户的环境.因此,调用Path.GetTempPath()等函数指向\ windows\temp而不是用户的.此外,当尝试通过MAPI调用运行Outlook 2007+(添加附件)时,它会报告由于我认为临时文件夹位置而导致的表单错误.
有没有办法"重新加载"个人资料或至少在模拟的应用程序中获取您的环境变量?到目前为止,我唯一的想法是直接从注册表重建变量,但我想避免这种情况,因为它是一个黑客(避免实现细节和所有这些).或者制作一个Redmon调用的存根程序,然后正确运行用户,并使用完整的自定义应用程序.
还有其他任何物品或招数吗?