2012-12-15 92 views
-1

我知道GetUserDefaultUILanguage API可以檢索當前用戶的UI語言識別用戶的默認UI語言,但我需要從一個服務調用它,由它的用戶找到特定用戶的UI令牌。這樣可能嗎?獲取使用用戶令牌與C++

+4

你爲什麼這樣做在服務用戶具體的事情? –

+0

爲了長話短說,該服務需要確保在完成特定操作時所有用戶模式文件都被正確刪除,但要創建文件名,我需要知道用戶帳戶的用戶界面。 (這是一個故障安全機制的情況下,這樣的去除不是由用戶模式進程結束。)但是,這是問題的跑題...... – ahmd0

+0

不,是這個問題的地步完全相關的。如果有人說「我想要做Xyz」,那麼說「爲什麼你爲什麼要做Xyz?」是完全有效的。在我看來,這樣的失敗保險沒有多大意義,但我不知道具體情況。 –

回答

0

服務在某些帳戶下運行,因此,即使你能成功地調用函數這個樣子,他們會告訴你有關的服務在其下運行的帳戶,而不是用戶可能需要的服務的帳戶進行代表其運作。

因此,你可能需要有用戶程序與註冊服務本身(例如,PID和用戶界面語言)。然後服務可以存儲並根據需要使用它們。

+0

會話分離,比任何事情都更成爲一個問題。所以它將取決於函數是否在內部讀取註冊表以檢索信息。如果是這樣,加載用戶的配置單元(除非它已經是)的模擬是一條可行的路線。 – 0xC0000022L

+0

@ 0xC0000022L:你似乎(IMO,無論如何)有一個相當鬆散的「可行」的定義。首先你提出一個已經過時多年的解決方案,然後讓一個服務模擬一個普通用戶? (並且顯然是因爲有人意識到這是一個可怕的想法)而下調投票? –

+0

哪一個已經過時多年,憑證提供者?對於GINA我自己指出並給出了現代化的選擇。此外,從今天起,仍有大量的XP和2003系統仍在使用,操作系統沒有說明這是用於哪個操作系統。 – 0xC0000022L

0

使用一個服務裏面像GetUserDefaultUILanguage()功能,它需要的是該用戶。要麼將SCM中的服務設置爲在該特定用戶帳戶下運行,要麼在需要時使其代碼動態地模擬用戶。

+0

模擬會反映用戶的用戶界面嗎?到目前爲止,我能想出的唯一方法是產生一個小的用戶模式進程來運行該API並將數據發送回服務。 – ahmd0

相關問題