I don't know about Open/Save dialogs, but you can get a list of open explorer windows with COM automation, the Shell.ApplicationShell.Application object has a collection of windowscollection of windows, or CoCreate IID_IShellWindows directly, each window in the list has a refresh method.
WSH/JScript:
for(var sw=new ActiveXObject("Shell.Application").Windows(),i=0;i<sw.Count; ++i)
sw.Item(i).Refresh();
I don't know about C#, but here are examples fordealing with shell windows in WSH/JScript and c++