回答
如果您願意強制用戶安裝另一個應用程序,則可以編寫一個小型C#或C++ windows服務,該服務只需打開一個提供某種協議即可訪問註冊表的Socket即可。然後在AIR中,您可以使用Socket類將消息發送到C#服務/從C#服務返回結果到AIR應用程序。
當應用程序加載時,您可以嘗試連接到套接字,並且如果連接被拒絕,則可以提示用戶下載/安裝該服務。
至於直接訪問註冊表,我敢肯定Adobe不會允許來自AIR的。
理論上你可以修改實際的註冊表文件,但是我會極力阻止這個想法。
你想確定用戶是否是管理員?
如果是這樣,您可以使用「File.userDirectory.name」對用戶名進行修改。
我想弄清楚用戶是否可以嘗試訪問需要管理員權限的文件(也許嘗試將文件寫入Windows/System32)。如果文件訪問失敗,則可以假定該用戶位於有限帳戶下。
如果您決定創建一個偵聽註冊表命令的套接字服務器,請非常小心。您可能會造成安全漏洞,用戶的個人防火牆可能會妨礙可用性。
如果你能我會感到震驚。
你爲什麼會感到恐懼? Air是一個桌面平臺,可以訪問操作系統的API(例如註冊表訪問),這很有意義。這就是說,它現在不被支持(並且由於Adobe似乎非常以Mac爲中心,我懷疑它會被添加)。
我已經解決從用戶目錄
使用File.userDirectory.name在大多數情況下工作,這個名稱抓住了用戶名,但它似乎是一個非常脆弱的執行,它依賴在操作系統上維護以用戶名作爲目錄的約定。我可以想到一些可能會破壞它的事情(使用TweakUI等)。
有點晚了,但是當項目快結束時,我從客戶那裏得到了一個從註冊表中讀取一些值的願望。如果有更多這樣的願望,我將永遠不會選擇AIR。但是我從FluorineFx中找到了一個很好的擴展,通過擴展它,我現在可以從註冊表中讀取字符串和雙字值。僅Windows:http://aperture.fluorinefx.com/
我還沒有嘗試過,但我認爲我找到了解決方法。
Adobe AIR無法寫入Windows註冊表,但是您可以在AIR 2中啓動本機進程。這裏有一篇博客文章展示瞭如何做到這一點:http://www.adobe.com/devnet/air/flex/quickstart/articles/interacting_with_native_process.html
現在,在Windows上,您可以使用.reg文件修改Windows註冊表。 .reg文件只是由regedit.exe讀取的純文本文件。因此,理論上,您可以將.reg文件寫入文件系統,然後啓動regedit.exe,並將.reg文件傳入並且... TADA!您剛剛從您的AIR應用程序修改了Windows註冊表!
要讀取值,可以使用regedit的導出功能寫入reg文件並從reg文件中讀取。詳細到註冊表編輯器的選項:http://www.robvanderwoude.com/regedit.php
這裏有一些額外的資源:
.reg文件的語法:http://support.microsoft.com/kb/310516
寫與空氣文件:http://www.adobe.com/devnet/air/flex/articles/exploring_file_capabilities.html
下面是使用的NativeProcess在Adobe AIR修改Windows註冊表的一個樣本和Python。所以你可以通過一行代碼添加,刪除或讀取密鑰!
下載:Adobe Air Registry Modifier在Github上
- 1. 您可以在Windows Embedded CE 7.0上運行Adobe Air嗎?
- 2. 訪問Windows註冊表Python
- 3. 訪問Windows註冊表
- 4. 您可以解壓縮Adobe AIR應用程序嗎?
- 5. 從ASP.Net註冊表訪問
- 6. 的Windows 10的註冊表訪問
- 7. 我可以從elisp中讀取Windows註冊表嗎?怎麼樣?
- 8. 從孩子MXML TabNavigator的訪問:-adobe AIR
- 9. 無法從Adobe Air訪問YouTube API
- 10. Adobe adobe air app可以打包運行在Windows 8上嗎?
- 11. 訪問Windows註冊表使用ADO .Net
- 12. VB2010和訪問Windows註冊表
- 13. 在Windows 7上訪問註冊表C#
- 14. 在C訪問Windows註冊表++與CRegKey
- 15. 可以從Java訪問Windows ESE嗎?
- 16. 蘋果開發者註冊過期後,您仍可以從iOS訪問您的應用程序嗎?
- 17. 您只能從您的註冊IP地址訪問
- 18. 是否可以從Adobe AIR內寫入Windows事件日誌?
- 19. 註冊表訪問問題
- 20. Facebook可以離線訪問相冊嗎?
- 21. 閱讀Windows註冊表時可以排序嗎?
- 22. ActionScript 3可以讀取Windows註冊表項嗎?
- 23. 可以在Windows註冊表中讀取rebol 2.7.7嗎?
- 24. 我可以從非虛擬化應用程序訪問Windows Virtual Store中的文件和註冊表項嗎?
- 25. 從Haskell訪問64位註冊表
- 26. 從Web服務訪問註冊表
- 27. 從Silverlight OOB訪問註冊表
- 28. 從WebJob/WebApp訪問註冊表
- 29. vb6:訪問註冊表值
- 30. Qt4 - 從註冊表中訪問Windows機器Guid
的應用程序是一個後臺下載,我需要獲得用戶名和角色,這是目前僅存儲在註冊表中的一些方法。我想我可以通過只讀訪問來訪問註冊表文件,但顯然它會嘗試和解析是瘋狂的(正如Jarin所說的)。我已經決定從用戶目錄的名稱中獲取用戶名,並在服務器上編寫Web方法以恢復其角色。 C#是一個有創意的想法,謝謝。 – Shawn 2009-10-22 15:20:07
如果你能我會感到震驚。 – sparkes 2008-08-06 16:50:10