Cómo implementar la función de actualización del administrador de recursos mediante programación
1. Vaya a la clave principal [HKEY_LOCAL_MACHINE/System/CurrentControlSet/Control/Update].
2. Cambie el valor binario "UpdateMode" a "00 00 00 00".
Dos implementaciones de programación
SHDocVw::IShellWindowsPtr se utiliza para implementar esta función.
Código central simple:
clase CAutoRefreshDlg: CDialog público
{
...........
CListCtrlm_ctrlIE
SHDocVw::IShellWindowsPtr m_spSHWinds
...........
}; p>
BOOL CAutoRefreshDlg::OnInitDialog()
{
CoInitialize(NULL
........... .....
if (m_spSHWinds == NULL){
if (m_spSHWinds.CreateInstance(__uuidof(SHDocVw::ShellWindows)) != S_OK){
MessageBox("Error");
CoUninitialize();
EndDialog(1); /p>
m_ctrlIE.SetExtendedStyle(LVS_EX_CHECKBOXES|LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
m_ctrlIE.InsertColumn(0).InsertColumn(0, "IE", LVCFMT_LEFT, 500, -1); /p>
OnButtonRefresh();
m_uTimerRefresh = SetTimer(1, m_uFreq*1000, NULL);
return TRUE // Devuelve TRUE a menos que establezca el foco para los controles.
}
void CAutoRefreshDlg::OnButtonRefresh()
{
// TODO: Agregue su control aquí Código del controlador de notificaciones p>
int n = m_ctrlIE.GetItemCount(); //GetCount();
for (int i = 0; i lt; n; i ){ p>
IWebBrowser2 *pBrowser = (IWebBrowser2 *)m_ctrlIE.GetItemData(i);
if (pBrowser){
pBrowser-gt(); /p>
IWebBrowser2 *pBrowser = (IWebBrowser2 *)m_ctrlIE.
}
m_ctrlIE.DeleteAllItems()
if (m_ spSHWinds){
int n = m_spSHWinds-gt; GetCount();
for (int i = 0; i lt; n; i ){
_varian
t_t v = (largo)i;
IDispatchPtr spDisp = m_spSHWinds-gt;
SHDocVw::IWebBrowser2Ptr spBrowser(spDisp); if (spBrowser){
_bstr_t bsName = spBrowser-gt; GetLocationName();
int nPos = m_ctrlIE.InsertItem(0, bsName); -gt; AddRef();
void * pData = spBrowser;
}