2010-06-18 50 views
4

我已經創建了一個本機應用程序。它在Win XP和Win Vista下沒有問題。在Win 7下,我的應用程序安裝正常。我跑了它。它正常工作,直到我從菜單中選擇「退出」。退出時,「程序兼容性助手」窗口出現,告訴我我的應用程序與Windows 7不兼容,並且應用了一些兼容性設置。Windows 7程序兼容性助手爲我的應用程序出現。爲什麼?

我的問題是:

  1. 我怎麼能知道我的申請沒有觸發程序兼容性助手?有沒有do和do的列表?
  2. 我可以在哪裏查找適用於我的應用程序的兼容性設置?
+0

你可以發佈一個代碼片段你的應用程序在選擇'退出'菜單上做什麼? – Oleg 2010-06-18 14:51:46

回答

3

請勿專門查看退出代碼。 PCA在您的應用完成後運行。觸發它的一件事是你的應用程序沒有做太多的事情。例如,如果您將某個「hello world」應用程序重命名爲setup.exe並運行它,它將會提升,但這並不會像真正的安裝應用程序那樣真正改變計算機上的任何內容。你的註冊表,程序文件目錄等都是一樣的。所以PCA說:「嗯,也許有些訪問被拒絕或者其他什麼,看起來這樣做沒用,你的設置可能不對。」換句話說,這可能是無害的。不過,我確實發現它可能會讓應用程序在每次不需要的時候都要求提升,因此值得花點時間調查一下。

更改存儲在組策略下。

+0

組策略下的什麼地方? – JohnB 2011-02-23 17:07:34

+0

@JohnB - 根據http://technet.microsoft.com/en-us/library/cc748935(WS.10).aspx,「通過運行gpmc.msc打開組策略管理控制檯,然後編輯適當的GPO。 展開計算機配置,展開管理模板,展開系統,展開疑難解答和診斷,然後單擊應用程序兼容性診斷。查看可用的組策略設置。如果需要更多設置信息,請雙擊設置,然後單擊解釋標籤「。我希望這是不言自明的,因爲我從來沒有做過。 – 2011-02-23 18:07:34

+0

可以使用本地組策略*(LGP)*來完成嗎?我認爲組策略管理控制檯更適用於Active Directory。 – JohnB 2011-02-24 00:17:23

2

我的猜測是你的應用程序的退出代碼不是0,而該值反而表明win7的行爲就像它一樣。

相關問題