Gewenst functie:
Update & Refresh van de desktop en elk open explorer venster.
Waarom:
Programma gemaakt die verborgen bestanden weergave aan/uit zet via het register.
Echter, de wijziging word pas van kracht na een update van de verschillende vensters.
Handmatig uitvoeren van de actie:
F5 in Window Vista = Update window + Redraw window
F5 in Windows XP = Redraw window
Rechtermuisknop/Refresh Vista+XP = Update window + Redraw window
Het bovenstaande omschrijft meteen het probleem, alleen een Refresh is niet genoeg.
Refresh word helaas zowel als vernieuwen als verversen gebruikt en dat maakt googlen lastig.
Het vinden van de hWnd is het probleem niet, de juiste codes versturen naar het venster wel.
Code:
PostMessage(ChildrenList.Item(X).ToInt32, WM_KEYDOWN, VK_F5, 0)
Deze code werkt prima in Vista met SysListView32 (maar vooralsnog niet met SysTreeView32).
De code refreshed alleen in XP en update niet.
Wat heb ik nog meer geprobeerd (o.a.):
InvalidateRect(), UpdateWindow(), RedrawWindow(), SendMesage ipv PostMessage.
Ik heb inmiddels al heel wat uren achter het scherm gespendeerd op jacht en het proberen van code om het voor mekaar te krijgen. Het lukt me niet vandaar deze post.
Wie kan mij helpen om programmatisch een venster (SysListView32/SysTreeView32) te vernieuwen en te verversen in Visual Basic 2008?
Update & Refresh van de desktop en elk open explorer venster.
Waarom:
Programma gemaakt die verborgen bestanden weergave aan/uit zet via het register.
Echter, de wijziging word pas van kracht na een update van de verschillende vensters.
Handmatig uitvoeren van de actie:
F5 in Window Vista = Update window + Redraw window
F5 in Windows XP = Redraw window
Rechtermuisknop/Refresh Vista+XP = Update window + Redraw window
Het bovenstaande omschrijft meteen het probleem, alleen een Refresh is niet genoeg.
Refresh word helaas zowel als vernieuwen als verversen gebruikt en dat maakt googlen lastig.
Het vinden van de hWnd is het probleem niet, de juiste codes versturen naar het venster wel.
Code:
PostMessage(ChildrenList.Item(X).ToInt32, WM_KEYDOWN, VK_F5, 0)
Deze code werkt prima in Vista met SysListView32 (maar vooralsnog niet met SysTreeView32).
De code refreshed alleen in XP en update niet.
Wat heb ik nog meer geprobeerd (o.a.):
InvalidateRect(), UpdateWindow(), RedrawWindow(), SendMesage ipv PostMessage.
Ik heb inmiddels al heel wat uren achter het scherm gespendeerd op jacht en het proberen van code om het voor mekaar te krijgen. Het lukt me niet vandaar deze post.
Wie kan mij helpen om programmatisch een venster (SysListView32/SysTreeView32) te vernieuwen en te verversen in Visual Basic 2008?