FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#21
|
||||
|
||||
Pues la verdad, hacerlo como pretende es escabroso, pero yo creo que ya es una cuestión de curiosidad, a ver si le sale, más que por una cuestión práctica, y como él dice:Negriz, prueba ese último código, puede funcionar, aunque no "al pié de la letra" según lo has citado. Experimenta. En una ocasión yo hice un programa para hacer una broma a un compañero de trabajo. Consistía en localizar cuando estaba jugando, para lo que utilizaba FindWindow y WindowFromPoint. Localizada la ventana del juego y conociendo que estaba en primer plano y con actividad (movimiento de ratón), esperaba 10 segundos y le minimizaba la ventana.....Fue divertido y aprendí mucho.
|
#22
|
||||
|
||||
Cita:
Otro ejemplo es cuando cambias un icono con TuneUP o algun otro programa cuando aceptas los cambios, los iconos se refrescan. algo asi mas o menos es lo que se desea hacer. Cita:
Muchas gracias a todos por sus comentarios. La verdad... eso es verdad, valga la redundancia. yo quiero aprender y este tema me ha ayudad mucho. saludos desde colombia. keyboy voy a mirar la funcion. gracias. Última edición por Negriz fecha: 07-04-2008 a las 19:30:12. |
#23
|
||||
|
||||
Cita:
Código:
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0); } Saludos |
#24
|
||||
|
||||
Eso es lo que deseo hacer pero un poco mas especifico como haz podido leer, pero no es mala la idea, el codigo que colocaste funciona? porque la verdad no habia pensado en eso, cunado se cierre el programa que actualize.
Última edición por Negriz fecha: 11-04-2008 a las 16:15:11. |
#25
|
||||
|
||||
Última edición por cHackAll fecha: 14-04-2008 a las 03:40:30. |
#26
|
||||
|
||||
Si... Tienes razon...
aunque lo prbe pero lo probe y no se adapta a lo que neceisto... ShChangeNotify... como es la sintaxis??? que pena pero mis conocimientos no son muy grandes... Saludos y gracias. Última edición por Negriz fecha: 21-04-2008 a las 03:14:43. |
#27
|
||||
|
||||
Si, también funciona;
Código:
SHSTDAPI_(void) SHChangeNotify(LONG wEventId, UINT uFlags, LPCVOID dwItem1, LPCVOID dwItem2); void __fastcall TForm1::Button1Click(TObject *Sender) { SHChangeNotify(0x8000000L/*SHCNE_ASSOCCHANGED*/, 0/*SHCNF_IDLIST*/, NULL, NULL); }
Saludos Última edición por cHackAll fecha: 21-04-2008 a las 16:30:25. |
#28
|
||||
|
||||
Cita:
voy a probar. Gracias |
#29
|
||||
|
||||
Nop, ya probe y no hace lo que esperaba.... aunque es muy util, ya que si cambio el autorun de la usb para darle un nuevo icono
esta funcion lo acutaliza (aveces) sin necesidad de sacarla y meterla de nuevo. con respecto al explorer... no pasa nada. no se si conocen el Desktop.ini bueno un amigo me pidio que le hiziera algo donde el seleccionara la imagen y el programa le creara el desktop y le actualizara la imagen al salir.... ese es mi objetivo y por eso hize esta pregunta??? de todas maneras muchas gracias.... la verdad com dijo el amigo escafandra la verdad no esperaba averiguar tanto aca.... gracias. |
#30
|
||||
|
||||
Este es un exelente foro....
es uno de los emjores. Grcias. El Negriz. |
#31
|
||||
|
||||
hola...
Alguna otra sugerencia para actualizar el Desktop??? Grcias. |
#32
|
||||
|
||||
hola, gracias a todos por la ayuda.
he probado con la funcion SHChangeNotify... ahun si exito, pero creo que la solucion esta alli... Gracias a todos... Se acepatan sugerencias... Saludos. El Negriz |
#33
|
||||
|
||||
Me gustaría resucitar este hilo para aportar un detalle útil en este tema, al menos para mi.
Código:
SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0); He traceado los mensajes del explorador y he visto dos cosas interesantes: 1º Al pulsar F5 se genera un mensaje WM_COMMAND LPARAM 0x1A220 LPARAM 0 2º Al elegir la opción de menú ver \ actualizar, se genera un mensaje WM_COMMAND LPARAM 0x0A220 LPARAM 0 Así que: Código:
PostMessage(HWND_BROADCAST, WM_COMMAND, 0x0A220, 0); La pega está en que este sistema es muy dependiente del software del explorador actual y si Microsoft lo cambia dejará de funcionar, así como no funcionará, muy posiblemente, en otros exploradores. Como curiosidad, me ha parecido interesante publicarlo. Saludos. |
#34
|
||||
|
||||
Bueno, he de hacer una aclaración a mi post anterior.
El sistema funciona tal cual, pero SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, 0); envía a "todas" las ventanas top-level. He comprobado que algunos elementos del Microsoft Office reaccionan mal a ese mensaje y se cuelgan. Como la idea me sigue pareciendo buena, he creado un código para enviar el mensaje a todas las ventanas de una determinada clase (ClassName) con lo que el "bug" queda solucionado. Publico el código, considero que puede ser interesante para otras utilidades también. Código:
// Estructura con los datos del mensaje a enviar y el nombre de la clase de ventana struct TClassMsg{ UINT Msg; WPARAM wParam; LPARAM lParam; char* ClassName; }; BOOL CALLBACK EnumWindowsProc(HANDLE Handle, LPARAM lParam) { int SizeBuffer = 256; char* Buffer = new char[SizeBuffer+1]; TClassMsg *ClassMsg = (TClassMsg*)lParam; int S = GetClassName(Handle, Buffer, SizeBuffer); if(S) if(stricmp(Buffer, ClassMsg->ClassName)==0){ // Si coincide el ClasName con el deseado, se envía el mensaje PostMessage(Handle, ClassMsg->Msg, ClassMsg->wParam, ClassMsg->lParam); } delete Buffer; return true; } typedef BOOL (__stdcall *TP)(); void PostMessageToWindowClass(char *ClassName, UINT Msg, WPARAM wParam, LPARAM lParam) { TClassMsg ClassMsg; ClassMsg.Msg = Msg; ClassMsg.wParam = wParam; ClassMsg.lParam = lParam; ClassMsg.ClassName = ClassName; // Enumero las ventanas EnumWindows((TP)EnumWindowsProc, LPARAM(&ClassMsg)); } Código:
PostMessageToWindowClass("CabinetWClass", WM_COMMAND, 0x0A220, 0); Saludos. Última edición por escafandra fecha: 10-10-2008 a las 21:34:20. |
#35
|
||||
|
||||
pues la verdad si estab un poco muerto, voy a mirar gracias.
|
#36
|
||||
|
||||
pues va de maravilla, muchas gracias...
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Tab en el Explorador de Windows | vtdeleon | Noticias | 2 | 16-05-2007 00:14:09 |
FlashMemory no se ve en Explorador | Deiv | Windows | 5 | 16-02-2007 00:28:58 |
Ejecutar un PHP sin explorador | majaco | Internet | 1 | 24-04-2006 17:24:34 |
Problemas con el Explorador con las PC en Red | santi33a | Windows | 0 | 20-12-2005 17:16:46 |
Explorador de directorios. | zugazua2001 | Varios | 1 | 08-06-2005 17:48:54 |
|