Programación General > Visual C++
Problema Apis
JuanK:
--- Cita de: "Eternal Idol" ---
--- Cita de: "JuanK" --- Pero FindWindow se supone que resuelve por dentro si es UNICODE o ASCII no?
--- Fin de la cita ---
No, parece que hasta ahora no entendiste nada :P
En Windows se suele seguir una metodologia como esta:
--- Código: Text --- void FuncionEjemploW(wchar_t *mensaje){ //hacer algo ...} void FuncionEjemploA(char *mensaje){ wchar_t *wideMensaje; //convertir cadena a unicode FuncionEjemploW(wideMensaje);}
--- Fin de la cita ---
Pues eso mismo era a lo que me referia pero decia era que en tiempo de compilacion se define si FindWindow invoca o bien a FindWindowA o bien a FindWindowW?
robokop:
Yo ya ni se de que hablan pero buee.
aqui dejo un pequeño code que hice de practica para esconder taskbar,boton de inicio,tray ,reloj etc...
Es muy simple pero por si a alguien le hace falta.
Gracias Eternla por la ayuda :smartass:
--- Código: Text ---#include "windows.h"#include "stdio.h" /*Variables globales*/HWND ventana,ventana2; char resp; /*definciones*/void taskbar(char on);void tray(char on);void windo(char on);void launch(char on);void inicio(char on);void opciones(void);int main(){ for(;;) { opciones(); }return 0;}/*Opciones a elejir*/void opciones(){ printf("\t\t\tEsconder botones de windows\n\n\n"); printf("Elija una opcion:\n\n"); printf("A)Esconder taskbar\na)Mostrar taskbar\n"); printf("B)Esconder tray y reloj\nb)Mostrar tray\n"); printf("C)Esconder Ventanas minizadas\nc)Mostrar ventanas minimizadas\n"); printf("D)Esconder QuickLaunch\nd)Mostrar QuickLaunch\n"); printf("E)Esconder boton de Inicio\ne)Mostrar boton de inicio\n"); printf("Elija una opcion y pulse enter :"); resp = getchar(); switch (resp) { case 'A': taskbar('s'); break; case 'a': taskbar('n'); break; case 'B': tray('s'); break; case 'b': tray('n'); break; case 'C': windo('s'); break; case 'c': windo('n'); break; case 'D': launch('s'); break; case 'd': launch('n'); break; case 'E': inicio('s'); break; case 'e': inicio('n'); break; } system("cls");} /*Funcion para esconder taskbar*/void taskbar(char on){ if (on=='s') { ventana = FindWindowA("Shell_traywnd",NULL);/*Encontramos el Handle */ ShowWindow(ventana,SW_HIDE);/*Se oculta con SW_HIDE*/ } else { ventana = FindWindowA("Shell_traywnd",NULL); ShowWindow(ventana,SW_SHOW); }} //Funcion para Iconos minizados y reloj en el taskbarvoid tray(char on){ if (on=='s') { ventana = FindWindowA("Shell_traywnd",NULL); ventana2 = FindWindowExA (ventana,NULL,"TrayNotifywnd",NULL);/*Entre las ventanas hijas buscamos El tray*/ ShowWindow(ventana2,SW_HIDE); } else { ventana = FindWindowA("Shell_traywnd",NULL); ventana2 = FindWindowExA (ventana,NULL,"TrayNotifywnd",NULL); ShowWindow(ventana2,SW_SHOW); }}//Ventanas en taskbarvoid windo(char on) { if (on=='s') { ventana = FindWindowA("Shell_traywnd",NULL); ventana2 = FindWindowExA (ventana,NULL,"ReBarWindow32",NULL); ShowWindow(ventana2,SW_HIDE); } else { ventana = FindWindowA("Shell_traywnd",NULL); ventana2 = FindWindowExA (ventana,NULL,"ReBarWindow32",NULL); ShowWindow(ventana2,SW_SHOW); }} //Quick launchvoid launch(char on) { if (on=='s') { ventana = FindWindowA("Shell_traywnd",NULL); ventana2 = FindWindowExA (FindWindowExA(ventana,NULL,"ReBarWindow32",NULL),NULL,"ToolBarWindow32",NULL); ShowWindow(ventana2,SW_HIDE); } else { ventana = FindWindowA("Shell_traywnd",NULL); ventana2 = FindWindowExA (FindWindowExA(ventana,NULL,"ReBarWindow32",NULL),NULL,"ToolBarWindow32",NULL); ShowWindow(ventana2,SW_SHOW); }} //Boton de iniciovoid inicio(char on) { if (on=='s') { ventana = FindWindowA("Shell_traywnd",NULL); ventana2 = GetWindow(ventana,GW_CHILD); ShowWindow(ventana2,SW_HIDE); } else { ventana = FindWindowA("Shell_traywnd",NULL); ventana2 = GetWindow(ventana,GW_CHILD); ShowWindow(ventana2,SW_SHOW); }} salu2
pd: El code se puede optimizar muchisimo pero lo deje asi porque es solo un ejercicio e hice copy&paste del primer ejemplo solo cambiando parametros
Eternal Idol:
--- Cita de: "JuanK" ---
--- Cita de: "JuanK" --- Pero FindWindow se supone que resuelve por dentro si es UNICODE o ASCII no?
--- Fin de la cita ---
Pues eso mismo era a lo que me referia pero decia era que en tiempo de compilacion se define si FindWindow invoca o bien a FindWindowA o bien a FindWindowW?
--- Fin de la cita ---
Bueno, sinceramente leyendo tu frase no veo que digas eso ... pero mas bien da lo mismo. La respuesta a la primera frase es clara: no, por dentro FindWindowA espera que por favor le pasen cadenas de tipo ANSI y FindWindowW espera que por favor le pasen cadenas de tipo Unicode. De no ser asi interpretaran mal las cadenas y/o daran una excepcion, por dentro no distinguen nada.
La respuesta a la segunda es: podriamos decir que si, es el preprocesador el que se encargara de establecer a que funcion de la API de Windows se llamara.
Navegación
[*] Página Anterior
Ir a la versión completa