[ n1tr0 @ 09.11.2011. 20:58 ] @
Napravio sam neki program i dodao mu asocijacije menjanjem registry-a. Takodje sam promenio context menije u exploreru preko registry-a, medjutim promene se uopste ne vide. Posle restarta(vise puta) ista prica. Kada sam promenio asocijaciju za txt file testa radi i onda je windows ocigledno refresh-ovao asocijacije i ponovo ucitao sve iz registry-a i sve je bilo ok. Pitanje je (posto ce ljudi instalirati taj program) kako posle tog menjanja registry-a da force-ujem win da uradi refresh asocijacija?
[ lonelyrider_44 @ 09.11.2011. 22:51 ] @
Ja sam pravio mali programičić koji menja pozadinu desktopa, i promenom u
registriju nije se ništa ažuriralo, a tamo je stojala putanja do slike
koja treba da bude na pozadini. Morao sam nakon toga da pozovem
rundll32.exe sa nekim parametrima (dll koji se refrešuje, mislim da je i u
tvom i u mom slučaju to user32.dll, ali ne sećam se tačno), pa da se
ažuriraju te promene. Možda bi to rešilo i tvoj problem.

--
Using Opera's revolutionary email client: http://www.opera.com/mail/
[ n1tr0 @ 09.11.2011. 23:14 ] @
Da ne mislis mozda na:
[DllImport("user32.dll", CharSet = CharSet.Auto)]
static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);
[ n1tr0 @ 09.11.2011. 23:40 ] @
Cini mi se da sam nasao resenje - jos testiram - trebalo je deklarisati ovu funkciju:
Code:
[DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = true)]
public static extern void SHChangeNotify(uint wEventId, uint uFlags, IntPtr dwItem1, IntPtr dwItem2);

const uint SHCNF_IDLIST = 0x0;
const uint SHCNE_ASSOCCHANGED = 0x08000000;


I onda posle promene asocijacija i dodavanja context itema u explorer-ov meni - izvrsiti ovo
Code:
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, IntPtr.Zero, IntPtr.Zero);