簡體   English   中英

在.net(C#)中模擬並通過Process.start打開文件

[英]Impersonating in .net (C#) & opening a file via Process.start

嗨,我正在使用LogonUser進行一些模擬,這在很多地方都得到了解釋。

(我使用了這里介紹的很棒的類庫,但是原理似乎在整個網絡上都是一樣的)。

我已經成功地模擬並轉到了我的“普通”用戶無法訪問的地方。 但是當我嘗試使用Process.Start以編程方式打開doc文件或txt文件或其他文件時,出現了錯誤

“沒有足夠的內存或磁盤空間來運行Word。”

我可以使用普通用戶以編程方式啟動word,但是,當我嘗試使用其他用戶以編程方式打開特定文件時,我得到了:

“拒絕訪問”。

順便說一句,當我手動登錄到計算機時,該其他用戶有權打開文件。

這聞起來像ProcessStartInfo.LoadUserProfile的問題。 默認為false,其副作用是啟動的進程將看到您帳戶的HKCU注冊表設置,而不是模擬的帳戶。 Office程序不會這樣。

請注意,afaik還必須將UseShellExecute設置為false才能使此設置生效。 僅通過傳遞.doc文件作為文件名,將會限制您啟動Word的能力。 您需要使用“ winword.exe”代替。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM