lunes, 27 de noviembre de 2006

Tantas cosas

Han ocurrido tantas cosas en mi vida, 'demasiadas' es una buena aproximación; como siempre hago en este blog, contaré sólo lo que refiere a la informática, la tecnología, la era digital, actualidad, internet, etc.; los sentimientos los reservo para los otros blogs.

He abandonado la programación momentáneamente, han ocurrido muchas cosas en mi vida que me han hecho cambiar, tuve una era de retracción en la que he suspendido toda actividad que tenía, hay algunos hábitos que aún no recupero como la lectura, la escritura, el ciclismo y otras que ya estoy recuperando como la programación y las ganas de aprender.

Mi computadora posee ahora un servicio de internet con capacidad de 1 GB de transferencia y ahora ya no es molesto esperar a que una página cargue o probar mi paciencia con las descargas. Esto me ha llevado a reformar la forma en que uso el ordenador y administrar los insumos de que dispongo.

Por otra parte, me han comprado un quemador externo. Si me hubiera documentado mejor hubiera tomado una mejor decisión, pero lo hecho, hecho está y tengo que aprender a sacar lo mejor de este quemador hasta que logre venderlo, planes que trazaré en un futuro (postergando las cosas, como siempre ¬¬).

La unión en mi equipo de mi banda ancha y mi quemador han revolucionado la forma en que trabajo de mi computadora, que ha pasado de ser un pequeño almacén de datos a un banco de sueños más avanzado de lo que esperaba cuando tenía al tan nada extrañado módem de 56k.

He bajado varias películas y las he quemado en discos, así como software y Sistemas Operativos.

Resolví un problema que tenía con el Partition Magic, pues no reconocía la tabla de particiones desde que reinstalé Windows, pero eso ha quedado atrás y esta vez particioné mi HD de 40 GB de la siguiente forma (con una partición extendida):

| hda1 | hda3 | hda4 || hda5 | hda6 | hda7 |

hda1 = WorkStation
hda3 = Mandriva
hda4 = [Alternativo]
-
hda5 = SWAPSPACE2
hda6 = NekroLinux
hda7 = NekroByte

En WorkStation tengo a Windows, que para evitar problemas con ese caprichoso sistema (no reconoce particiones que no sean las suyas y al instalarse cambia automáticamente la MBR) el cuál no me extrañaría (y no quiero arriesgarme) que no fuera capaz de bootear después del cilindro 1024, como lo hace Linux.

Mandriva es donde tengo instalado el Mandriva Linux 2007 que he descargado de internet e incendiado, me va bien pero no sé qué hice ahora en estos formateos y reinstalaciones que ya no me reconoce el servicio de internet, sé que es un problema de configuración porque con Windows y Ubuntu todo va perfectamente.

Hablando de Ubuntu, es aquí donde toca el siguiente sistema alojado en la siguiente partición. Puse "[Alternativo]" porque es una partición primaria que dejé exclusivamente para probar sistemas operativos ya que, fuera de ella, todas las particiones las tengo pensadas en que queden fijas en el HD sin modificar su infirmación (obviamente no se aplica a la SWAP); de modo que si me da por probar Debian, Slack o lo que sea, en esa irá. Esta vez le tocó a Ubuntu porque es el SO que está de moda, la etiqueta que tengo para sí es "Ubuntu", aunque el Sistema Operativo que instale determinará a cuál la cambie luego.

Y comenzamos con las que hay en la partición primaria:

En SWAPSPACE2 está la SWAP que usan Mandriva y Ubuntu, que hice de 1024 para que los sistemas se explayen usándola (ya que tengo 512 de RAM, en lo que dejo de pensar es en limitaciones), pero descubrí con el KInfoCenter de Mandriva que apenas y usan el 15% de la SWAP, dato que obtuve después de probar abriendo todo OpenOffice y otro lote de software en cada uno de los 4 escritorios del Drak3D que me puse a girar para gastar recursos, pero nunca pasó del 16%, como lo muestra la imagen:




y de hecho estoy pensando en rebajarla hasta 256 MB si veo que a la larga las cosas siguen así.

Lo siguiente que se acerca es la etiquetada como NekroLinux. Tengo la intención de convertir mi computadora en un servidor, así tengo mi web donde puedo poner lo que quiera y sin pagar, tengo que aprender algo de redes para montar el servidor pero eso ya lo veré. Por el momento tiene lo que sobró, el espacio que no lograron ocupar entre todas las particiones, que es de casi 2 GB (a las primarias para los SO les asigné 5 GB).

Y por último, NekroByte es la partición NTFS que ocupo para mis archivos importantes y valiosos de Windows, como mi página web en HTML no estandarizado, archivos y textos que escribí, mis imágenes y fotos de mis amigos, páginas web que he descargado, música y demás, es de 20 GB y no está llena.

Probar Linux fue una buena experiencia, me adentraré más a ese mundo y espero tener mi server activo.

Parece que la pendiente de 90° en la que caí ha quedado atrás, pero ahora lo que resta es escalar una empinada cuya inclinación depende de mí, de mis desiciones, voluntad y determinación que obtenga; de mí depende que esa empinada sea una muy inclinada y no como el despegue de un avión.

Ahora estoy en la búsqueda de mi yo, y sé que retornaré.

Hilsener.

sábado, 4 de noviembre de 2006

Google bomb!

Aprovechando que mis dominios están ya indexados en Google, aquí una NekroRecopilación de Google Bombs. Según vaya encontrando las iré poniendo, así contribuyo a que sigan vivas. Claro está, también incluiré las que vea por la red y agregaré unas de mi invención para ver si algún día caen (si están de acuerdo con una pueden ayudar a hacer Google bomb poniendo el enlace correspondiente en su web. En La Wikipedia hay unas cuantas.

Estúpido populista La págija del Peje.
Ladrones La SGAE.
Siempre Ganamos Algunos Euros Y la SGAE otra vez!
Miserable Ángel Jesús Acebes Paniagua... donde está bombeado es porque se lo merece.
Failure "Fracaso". La zona de Bush en la página de La Casa Blanca.
Miserable Failure "Miserable Fracasado". Lo mismo que el anterior.
French Military Victories Resultados de Google sobre las victorias francesas.
Armas de Destrucción Masiva Un sitio fiable donde podemos hayar armas... "de destrucción masiva", ¡valga!
Un mecánico serio y fiable ¿Buscas alguno?
Una razón para esta barbarie ¿Por qué el mundo es así?, ¿por qué no soy rico?, ¿por qué soy excesivamente guapo?
Un trabajo digno A alguien que esté interesado en un empleo y busque por internet.
Delincuentes Como la 'Siempre Ganamos Algunos Euros' pero en argentino.
Estafadores peruanos La página de un grupo de crimen organizado que actúa bajo el marco legal en Perú.




Y las mías:

NekroByte Ni falta que hagan links porque desde antes ya estaba indexada así. [...]sólo propaganda.
Lammer La página de MByte.
Hasecorp La página de Microsoft.
Hasefroch Win2.

Hilsener.

jueves, 19 de octubre de 2006

Guerra de comida contra los P2P

Primero la noticia:

Buscan combatir la piratería de música vía internet

México enfrenta un nuevo reto: combatir la piratería de música vía internet.

En lo que va del año han sido descargadas de forma ilegal 1.800 millones de canciones y 221 millones de videos. Esta práctica común en la población mundial es considerada ilegal por la industria discográfica mexicana, debido a que las obras están protegidas por la Ley Federal del Derecho de Autor.

Lo peor para ellos es que sus clientes potenciales son quienes la consumen.

Fernando Hernández, de la Asociación de Productores de Fonogramas y Videogramas, comentó: “el 60% de los internautas que comenten este ilícito pertenecen al nivel socioeconómico a, b y c plus, por lo que cuentan con suficiente poder adquisitivo para comprar en forma regular, música grabada y videos musicales”.

Para combatir esto la industria discográfica ha comenzado una campaña de concientización en la red, en la que incluso ofrecen un software gratuito para limpiar las computadoras y evitar la instalación de programas "Peer to peer", pues aseguran que al "bajar, quemar, descargar e intercambiar música y videos" por internet, se vulnera la privacidad del usuario.

Roger Hernández, director de Apfid México, explicó: “estos software se convierten en vehículos, como acabo de comentar, para poder ingresar y poder sacar la información que yo quiera, o sea se convierten en un espía en donde yo puedo saber perfectamente todo lo que está adentro de su ordenador como información bancaria, información de la familia”.

El número de canciones bajadas al año a través de estas redes superan al doble el número de canciones contenidas en los discos vendidos durante todo un año, por lo que se pretende que en México esta práctica sea ilegal.




México enfrenta un nuevo reto [...] Primero acaba los otros y luego vemos, ¿oquei?

Para combatir esto la industria discográfica ha comenzado una campaña de concientización en la red [...] "Concientización en la red"; oquei, ya no volveré a bajar nada del Ares (que desinstalaré ahora mismo), así, en lugar de tomarme 2 o 3 minutos en bajarme la canción de Alex Ubago que vi en MTV viajo hasta el centro y compro el disco de $250.00.

[...] que incluso ofrecen un software gratuito [*->] Debo aprovecharlo, después de todo, ¿cada cuánto se tiene la oportunidad de tener un software gratuito? [<-*]para limpiar las computadoras "Limpiar" =^.^=

aseguran que al "bajar, quemar, descargar e intercambiar música y videos" por internet, se vulnera la privacidad del usuario. Eso me recuerda a un reportaje de Hechos 7 en el que mostraban un video en el que se recitaba: "[...] Abiertamente te ofertan cómo engañar a tus padres para que tú consumas drogas o la cultives o la fabriques dentro de tu casa[...]" y "[...] Yo me siento desde mi casa y, a través de una computadora, DETONO UNA BOMBA en X lugar y mato a alguien, el delito que estoy cometiendo es homicidio, no importa si yo estoy presente o no estoy presente".

“estos software se convierten en vehículos, como acabo de comentar, para poder ingresar y poder sacar la información que yo quiera, o sea se convierten en un espía en donde yo puedo saber perfectamente todo lo que está adentro de su ordenador como información bancaria, información de la familia”. ¡God! O sea que por el Ares puedo ver el NIP de un tío de España que tiene 300 pesos en su cuenta ¡!, debe ser que vienen en los mp3 de Paulina Rubio que me descargo.

[...] se pretende que en México esta práctica sea ilegal. ¡Shit marble! Ahora me van a meter a la cárcel si me cachan descargando música de Juan Gabriel.


Difícil de asimilar, ¿cierto?

¿Adicto a internet?

3 Artículos de noticias que considero resaltantes:




Internet puede ser tan adictivo como el alcohol

Internet puede generar una dependencia comparable al alcoholismo, según un estudio hecho en Estados Unidos, donde un habitante de cada ocho admite tener "problemas de adicción", reveló un estudio efectuado por investigadores de la Universidad de Stanford.

El estudio reveló que 13,7 por ciento de los entrevistados admitió encontrar muy difícil permanecer lejos de Internet durante algunos días seguidos, informó ANSA.

"Nuestra investigación muestra signos de potencial uso problemático de Internet de parte de una porción concreta de la población", afirmó Elias Aboujaoude, que coordinó el estudio.

“Muchas veces nos centramos en lo maravilloso que es Internet, en lo simple que puede hacer las cosas”, dijo y agregó:“Pero tenemos que considerar el hecho de que crea problemas reales a un subgrupo de personas”.

Algunos de los entrevistados admitieron que usan a escondidas Internet o navegan online para combatir estados depresivos, según modelos que parecen reflejar los de los alcohólicos, afirma el estudio.

El trabajo señala que el 12,4% de los internautas dijo que suelen estar conectados más tiempo del que quisieran, más del 12% reconoció que necesita dejar de usar Internet y el 8,7% intenta ocultar el uso “no necesario” a la familia, amigos y jefe.

Un pequeño número, el 8,2 %, aseguró que usaba la Red para escapar de los problemas o del mal humor, mientras que el 5,9% sentía que sus relaciones personales estaban viéndose perjudicadas por el uso excesivo de Internet.

El estudio aparece después de que varios trabajos realizados en la década pasada concluyen que Internet y las computadoras podían causar adicción, incluyendo hábitos como visitar páginas pornográficas o jugar compulsivamente.




El sencillo test que le dice si usted es un adicto a Internet

A través de una serie de preguntas un grupo de expertos le dirá si padece este mal que sólo en los EE.UU. afecta a 89 millones de personas. ¿Presenta usted el llamado Trastorno Adictivo a Internet?

Nadie puede decir que la aparición de Internet produjo un cambio sustancial en la vida de millones de personas alrededor del mundo. Pero como en todos los campos de la vida, hay quienes saben controlar una actividad y otros que sencillamente se convierten en adictos.

Un reciente estudio de la Universidad de Pensilvania en EE.UU. asegura que 89 millones de personas en ese país padecen el llamado “Trastorno Adictivo a Internet”. Sin embargo, al momento de empezar a debatirse estas cuestiones, muchos dijeron que se trataba de una manera sencilla de sacarle dinero a las personas fanáticas de todas las actividades que se pueden realizar en Internet.

Pese a ello, existen organizaciones como el Center of Online Addiction, en cuya página web existe un test de 20 preguntas para descifrar si usted es un adicto a Internet.

Los resultados

El Center for Online Addiction indica que al finalizar el test cuanto más alto sea el puntaje obtenido mayor es la dependencia de la web.

Si obtuvo un puntaje de entre 20 y 49, “usted es un usuario promedio. Pasa mucho tiempo en Internet, pero tiene control sobre su uso”

50-79: “Experimenta ocasionales o frecuentes problemas a causa de Internet. Debería considerar el impacto en su vida”

80-100: “El uso que le da a Internet le causa problemas importantes en su vida. Debe evaluar el impacto de Internet en su vida”.

Los autores del test piden a quienes eligieron frecuentemente las opciones 4 ó 5 y relean las preguntas para darse cuenta de cómo ciertas actividades pueden afectar la vida cotidiana. Y dan como ejemplo a las preguntas dos y catorce, relacionadas con las actividades caseras y con el descanso nocturno.




Test de Adicción a Internet

Si su puntuación es mayor de 50 es aconsejable que imprima esta página y consulte con un especialista en Salud Mental (Psiquiatra o Psicólogo) para que le realice una evaluación diagnóstica ya que puede estar padeciendo una Adicción a Internet.

¡X-Rays! El mío fue de 58 ¬¬

jueves, 17 de agosto de 2006

Tests de personalidad informática

Resolví unos tests de BBspot.com y aquí los resultados (click para resolver el test):

¿Qué lenguaje de programación eres?


You are COBOL. You are very business-oriented.  You make conversations longer than they should be, and people easily grow bored by you.


¡Guácala!




¿Qué Sistema Operativo eres?




You are Windows XP.  Under your bright and cheerful exterior is a strong and stable personality.  You have a tendency to do more than what is asked or even desired.


Algo así.




¿Qué extensión de archivo eres?




You are .gif Sometimes you are animated, but usually you just sit there and look pretty.


A veces :P




¿Qué página web eres?




You are fark.com  You are popular, but many people don't take you seriously.  You like hearing yourself talk, and are fond of cliches. You like boobies.


Correcto, aunque no me gusta fark. Prefiero Digg

domingo, 30 de julio de 2006

Loituma - Ievan Polkka

Recién me mandaron un enlace al video y me pasó lo que a todos los que lo han visto: enviciarse al grado de no poder deshacerse de la canción por el momento. Casi todo lo que he hecho en la compu hoy ha sido escuchar esa canción: penetrando en lo más profundo de mi mente hasta poseerme.

La presento: es la canción de 'Ievan Polkka' del grupo 'Loituma' (más información en Google), un grupo finés, para cuando les surja la duda de "¿en qué damn idioma están cantando?".

Sin más rollos, aquí les dejo el video extraído de YouTube, y más abajo una animación flash que, les advierto, es infinita, para que no se queden como yo, esperando a que termine hasta que después de casi media hora dije "algo aquí anda mal...".





Enlace al sitio en YouTube











Click derecho y "Guardar destino como..." para grabarlo en tu disco duro o para ir al enlace a la página directa.



Hasta el momento sigo idiotizado con esa canción.

sábado, 29 de julio de 2006

Un par de chistes

Aquí unos chistes de Polo Polo que conseguí en lawaloca, más específicamente, en el nodo de Para Cagarse de risa.

Dales click y espera unos segundos mientras cargan. No te desesperes si después de los 5 segundos no pasa nada, sigue bajando. El del burro puede tener problemas la primera vez que se reproduzca porque es un archivo pesado.

Las animaciones acaban con una moraleja y un letrero que dice "Verlo otra vex"; si no termina así es porque no cargó completamente. El mejor remedio hasta el momento es darle Actualizar (F5).

El Burro y la Hormiga:












El Pajaro y el chango:











Saludos.

jueves, 20 de julio de 2006

Descargar videos de Google Videos

Google ha proporcionado un enlace para poder descargar directamente videos de 'Google Videos' al disco duro. Para no adelantar nada les ofreceré la traducción que encontré »Aquí«, por parte del Blog de Google.




Descarga Videos de Google como archivos AVI

Si desea guardar videos de 'Google Video' y usa Windows, tiene la opción de descargarlos como archivos GVI y reproducirlos con Google Video Player.

Si quiere guardarlos como AVI y verlos en cualquier reproductor de videos en cualquier plataforma, use este marcador: Videos de Google como AVI. Puede guardarlo como un marcador en su explorador arrastrándolo y colocándolo en la barra de herramientas de marcadores. La próxima vez que vea un video que le guste en 'Google Video', haga click en el marcador y podrá guardar el archivo de video en su disco duro.

Explicación: La localización de los archivos AVI puede hallarse en el código de las páginas de 'Google Videos', pero está oculto para los usuarios de Windows.

Si no puede ver los videos o su reproductor le arroja errores, pruebe el Media Player Classic.

http://prdownloads.sourceforge.net/guliverkli/mpc2kxp6490.zip?download (para 2000/XP)
http://prdownloads.sourceforge.net/guliverkli/mpc98me6490.zip?download (para 98)




Lo he probado antes de bloggear y, en efecto, ha funcionado. El único problema es que mi reproductor de Windows (el 10) 'no encuentra el codec' y con el que probé en los enlaces de arriba (el clásico) me muestra el mismo error pero de distinta forma :P

Así que: lo dejo a su criterio.

Med hilsen.

El del moño colorado

A ver, a ver, a ver. Publiqué una noticia en Barrapunto en la que el tema no viene al caso y lo que vale es la expresión: 'se pone sus moños'.

Pensando (yop) en que se, si no se llegaba usar en España o en cualquier país hispano que leyera mi nota, al menos se iba a sobreentender el significado de mis palabras, sea adaptándolo al contexto o de la manera que fuere.

Veo que es una frase mayormente dicha en México y muy inentendible para foráneos, y es que parece que además les suena muy rara y no le hayan significado. Yo como soy de México no puedo comprender eso porque la he usado y oído innumerables veces pero, ¿tanto así de rara suena?

Bien, paso a explicar:

"Ponerse los moños" es, básicamente, hacerse el difícil o hacerse el ofendido... ¡Indignarse!

Para cosas (o casos) como este yo entiendo más por ejemplos:

Reclamo: "¡En cima de que te estoy pidiendo disculpas todavía te pones tus moños!"
Explicación: Que en cima de que la persona se siente arrepentida y se ofrece a pedir unas disculpas, el agrediendo se hace más que la víctima, como si le hubieran introducido un tubo por el c... ó lo hubiesen hecho caer al suelo en medio del parque Independencia a la vista de todos cuando sólo fue un desacuerdo de opiniones.
Consejo: Mándalo al infierno.

Comentario: -Ayer me le declaré a Paulina pero me dijo que no era lo que yo quería y que me faltaba mucho para merecerla. -Pero tú como Ingeniero en Sistemas de Información no deberías dejarte de esa preparatoriana de 17 años que, encima de no saber leer bien y estar fea y horrible, ¡se pone sus moños la condenada!
Explicación: Que Paulina encima de no saber leer bien y estar fea y horrible, ¡se pone sus moños la condenada!
Consejo: ¡Insístele! :P

Creo que con esto se resuelve el MM (Misterio del Milenio).

Med hilsen.

sábado, 15 de julio de 2006

I Digg

Ahh...

Está todo aquí tan cálido.

Hace ya meses que no bloggeaba en este sitio, y no fue por olvido, sino por unos problemas sentimentales por lo que me tuve que enfrentar, y aún después de varios meses aún sigo asimilando la idea de que a mí me pudiera pasar aquello. No comprendo todavía cómo fueron las cosas pero es algo de lo que no voy a hablar en este blog.

A pesar de todo ya estoy agarrando vuelo nuevamente en esto de la informática, que había dejado descansando como vegetal durante un tiempo.


Sucede que por estas fechas me estuve adentrando al mundo de Digg, Slashdot y Barrapunto casi de manera simultánea, y es que mientras estaba acomodando mi página de Google personalizada me topaba con los gadgets que ellos y otros dominios públicos habían programado con las APIs de Google. En un principio sólo las agregué porque tenían pinta de ser muy reconocidas en la web y, ¿cómo perderme yo algo así?, tengo que vivir con lo actualizado si quiero mantenerme al día con noticias de calidad (pienso yo).

Con respecto a los hermanos Slashdot y Barrapunto, no me logro adaptar muy bien aún. Bueno, Slashdot me parece que está algo desorganizado e inentendible (y no porque esté en inglés), creo que le hace falta más orden. Barrapunto, por su parte, es albergue de un compendio de noticias muy interesantes y que vale mucho la pena leerlas, pues de buenas fuentes son obtenidas, dando como resultado enlaces hacia webs con información nutrida... El problema radica en que dentro de los hilos de comentarios se forman discusiones sin sentido. No digo que sea en todos, ni en la mayoría de los casos, pero fácilmente puede toparse uno con los usuarios que comienzan una discusión tonta, con faltas a la moral y sin mucho respeto.

Slashdot, por su parte, creo que fue la página con la que más me entretuve. Si bien el primer artículo me remitió a excavar al inglés que ya algo en desuso tenía, fui incentivado a crear en Blogger otro sitio en el que bloggeara los tópicos publicados en Slash que me parecieran interesantes; y ya tenemos en el NekroDigg mi primer post: " "The camel has two humps" - Programming Aptitude Test (PDF link)" Un artículo muy interesante. He leído sólo las primeras 7 páginas del documento pero se muestra información contundente y que conlleva a uno a pensar.

Sin pretensiones de arrogancia admito que, en mi caso, al leer eso, me sentí dichoso mientras soltaban enunciados sobre la habilidad nata que tiene un ser humano como programador, y obviamente no es que nazcamos con códigos en la cabeza, sino que (especulo) ciertas partes del cerebro están más desarrolladas (o bien fortificadas de diferente forma) para comprender un lenguaje estructurado artificialmente.

Mientras decía que la recursión es un tema que a muchos les cuesta cierta dificultad de comprender, yo entendí a la perfección la técnica cuando un profesor nos las enseñó: Primero nos dejó hacer un código en C para resolver el factorial de un número y cuando todos lo terminaron, se expuso el código al que habíamos llegado todos, que era por fuerza bruta, después él simplemente ideó unas 2 líneas dentro de la función que lo hacían más práctico y cuando terminó sus anotaciones me dije decepcionado: "¡pero cómo no se me ocurrió antes!".

Creía que el código era demasiado obvio y hasta me intrigué, pero con el paso de los MESES me di cuenta de que la recursión es un tema que casi nadie logra entender a la primera, no sé por qué, si yo lo veo y me parece de lo más sencillo, y yo no pienso en si es sencillo o no de comprender porque a mi parecer lo es, sino que admiro a aquella técnica por la utilidad que confiere.

Cuando tenga otro poco de tiempo y menos sueño voy a terminar de leer el PDF que hasta donde voy luce interesante. Con ayuda de las probabilidades, quizá pronto se vea un post mío en este blog donde confiera información y mis críticas sobre la nota.

Y ¡qué con Digg! Sí que puso mi cerebro en actividad. Además, al contrario de Slashdot, veo a Digg con una organización no estricta, pero sí simplicista. Tanto así que para entrar con fuerza a Slashdot y no dar tantos tropiezos en la página me dediqué a traducirlo de la EN.Wikipedia a la ES.Wikipedia. No sé qué tantos cambios haya sufrido desde hoy que lo terminé de traducir por la 1:00 o 2:00 de la madrugada pero en este tiempo los textos vienen quedando así:

Digg en la Wikipedia EN:
Digg

Digg en la Wikipedia ES:
Digg

La razón por la que le puse "Traducción realizada por NekroByte" fue porque tuve problemas de ingreso de sesión mientras redactaba (cosa de cookies) y no quería que mi trabajo de 2 madrugadas y media quedara registrado como una simple IP anónima que hizo la contribución. Creo que eso no fue muy modesto de mi parte pero yo también tengo mis ratos. Admito que no soy completamente modesto ni humilde, y creo que el asegurarse de que alguien reconozca quién hizo el trabajo es algo que cualquiera se merece.


Por otra parte, conseguí la forma de convertir un sitio web con Feed en un gadget de Google; bueno, en realidad "conseguí" significa que lo vi en un blog de otro usuario (ajeno al blogger) y le hice las modificaciones debidas. Pueden ver el botón de "Add to Google" en el panel de la izquierda del blog.

Realmente tengo muchas cosas qué hacer y no pienso desaprovechar para nada estas vacaciones. Llevo un retraso informativo que está al borde de volverse tanto imperdonable como irremediable. Necesito con urgencia ponerme al día así que...

...¡Cambio y fuera!

domingo, 5 de marzo de 2006

Estancado en la progman

Desde hace ya mucho tiempo acostumbro llamarla "progman" a la programación. progman.exe es un archivo de Microsoft, pero no recuerdo si era de Windows u Office (creo que la última), y me encariñé con él desde que iba a cursos de computación hace años; después, cuando estaba la aprendiendo programación, vi o recordé el nombre de ese archivo nuevamente y asimilé su parecido con la palabra "programación" y desde entonces, cuando necesito escribir o decir la palabra programación sin perder tiempo, simplemente digo "progman".

Y con respecto a la progman.exe... estoy estancado en ella ¡!

Anteriormente he comentado que estoy realizando dos proyectos en Visual Basic; el primero es el NekroEditor: un editor de códigos con sintaxis básicas, y el otro es el NekroConmutador, un simulador de conmutadores: metes dos valores: '1' y '0', si tiene la propiedad Operador en 'And', devuelve False, si tiene 'Or', True; 'Xor', True; 'Eqv', False; 'Imp' = False.

Aunque el primero pretende ser una aplicación del tipo WordPad o Notepad2 y el otro un simple ActiveX con tres cuadritos (Valor1, Valor2 y Valor1 [...Xor...] Valor2), ambos están resultando más complejos de lo que en un principio imaginé.

El NekroEditor me hizo pasar por varios sufrimientos, corajes y alegrías, y creo que "hizo" subestima lo que implica la oración. Mis problemas con él son estos:

Uno: Ejecuten el bloc de notas, tecléen cualquier cosa y vayan a Edición / Buscar; mientras esté la ventana como activa, el cuadro de diálogo se encontrará en primera posición, pero esto es relativo, ya que si nos pasamos a otra ventana, el cuadro de diálogo de oculta junto con notepad.exe, y de otra forma queda TopMost. He intentado cambiar propiedades y escribir sentencias a mi frmBuscar.frm pero, además de que no me sale, creo que esa no es la solución.

He usado una API (no recuerdo cuál) para ponerla hasta el frente pero mi frmBuscar adquiere la importancia del Administrador de Tareas cuando le das Opciones / Siempre visible. Se me ha ocurrido que lo que necesito es una API que me combierta mi frmBuscar en una ventana hija de frmMain.frm, luego le aplicaría la API que no me acuerdo su nombre y, al pasarle TOPMOST a un argumento, quedaría siempre visible pero dentro del marco de mi aplicación.

La mayoría de este plan se me acabó de ocurrir en estos momentos, pero considero que, antes de eso, tengo que resolver los problemas que describo abajo.

Dos: Ya creé mi barra de menús con las APIs InsertMenuItem, CreateMenu y algunas otras, junto con una función que hice. El problema viene cuando quiero que la barra quede tatuada en mi programa: logro que aparezca y que se puedan seleccionar los menús, pero surge un inconveniente que acabo de descubrir hoy en la mañana: mi RichTextBox.

Estando haciendo cualquier cosa, la barra sigue intacta y visible, el problema viene cuando el RichTextBox cursa el evento _LostFocus(): escribo, y al darle la tecla TAB el foco pasa a un Command1_() que tengo para hacer experimentos, y, al perder el foco el RichTextBox, la barra de menús desaparece. Al decir "desaparece" me refiero a que se quita de la aplicación, no es que se oculte, sino que se quita de tal forma que la API GetMenu(hWnd) devolvería '0'.

La solución parcial que utilizé fue que en el evento _LostFocus() se llamara a SetMenu(hWnd, hMenú), pero, además de ser algo no propio de un código eficiente, no evitaba que mi barra se desapareciera y lo hacía ver poco presentable: al presionar la tecla TAB, desaparecía la barra de menús, pero en 1/4 de segundo volvía a aparecer: se podía apreciar cómo mi RichTextBox y mi CommmandButton se ponían más arriba y luego corrían otra vez para abajo cuando aparecía la barra de menús: un espectáculo realmente patético y penoso.

Hice unos experimentos y comprobé que la causa era el efecto RichTextBox_LostFocus(), puesto que con cambiar el área de trabajo a un TextBox, ya no pasaba esto, ni con otro control; también intenté cambiando la propiedad Multiline tanto al Textbox como al Rich pero ni así: tiene que ser cuando un RICH PIERDE EL FOCO. Mas, pese a que esto pueda ser por compatibilidad de control (hay que agregar una dependencia para el RichTextBox) creo que es porque algo le falta a mí menú, y es que si creo la barra de menús con el Editor de Menús de Visual Basic, la barra permanece fija y sin moverse aunque le de a TAB estando en el RichTextBox

¿Qué es lo que le falta? No creo que unos repetitivos DrawMenuBar o SetMenu lo arreglen, aunque estén ordenados estratégicamente.

También he intentado con SetClassLong cambiándole el valor de GCL_MENUNAME a hMenú, que es mi barra de menús, pero sólo consigo que Visual Basic genere un error y luego "deba cerrarse".

Tres: Tenía un problema para crear entradas de registro pero lo solucioné como hace 2 días.

Cuatro: Esto es en el NekroConmutador: Me da flojera describirlos porque son en cuanto al diseño y tendría que explicar cómo va gran parte de mi Conmutador.

Pero no estoy sólo en esos ámbitos, sino también practico haciendo proyectos pequeños aparte y experimentos de esos que no se guardan. Por ejemplo, estoy haciendo una aplicacioncita para jugar con las ventanas: con EnumWindows() y EnumChildWindows() saco los hWnd de todas las ventanas (no sé si los listbox y textbox y otros controles se consideren como ventanas porque no los extrae) y de ahí hago lo que quiero, que es practicar APIs: le cambio el nombre a las ventanas ajenas, les cambio la barra de menús y otras cosas. De hecho voy a practicar un rato con ellas porque ya me aburrió el NekroEditor, luego quizá me desconecte y juegue Mythology o mi emulador de Mario y al final leeré parte de una revista y mientras duerma sentiré remordimiento de no haber hecho la tarea.

Hora en que termino de escribir esto: 6:00

jueves, 5 de enero de 2006

Menú Nk reportándose :->

¡No puedo creerlo!

No le he puesto título al post, no sé qué pensar... qué hacer.

Vengo de revolcarme en el mueble tomado de los cabellos y pujar "ggggg" con una especie de chillido; mis músculos hicieron mucha fuerza, como si todo mi ser fuera a estallar.

Tiemblo, me manoseo los cabellos, todavía tengo la imagen en mi mente: hacía click en un CommandButton1 que creé hace 1 minuto y veía en el frmMain aparecer los menú de prueba que había creado.

Bien, la cosa es así:

Después de que escribí el post pasado hace (creo) no menos de media hora, seguí viendo mi código y pensando en cuál podía ser la función API para hacer aparecer mi barra de menús. Se me vino a la mente el que pudiera ser una función de entrada, digamos, una forma de crear el primer menú, pero no fue así.

Me pasé a la ventana de MSDN y di un vistazo a todas las "Menu Functions" hasta que vi una nada fuera de lo normal: SetMenu. Accedí a su descripción buscando datos en "Remark" que encontré:

"The window is redrawn to reflect the menu change.



The SetMenu function replaces the previous menu, if any, but it does  not destroy it. An application should call the DestroyMenu function to  accomplish this task."

"Uhmmm...", pensé y medio balbuceé. Entonces mi linea "   Call DrawMenuBar (hWnd)" no está mal, y si se supone que mi código para los menús está bien creado, significa que el problema no era eso, sino que mi Barra no se dibujaba... ¡lo que vengo diciéndome y escribiendo desde hace días! Pero aun así me sonó una explicación tonta, tan tonta como las explicaciones que me han llevado a quedarme desvelado y avanzar, así que hice un experimento:

Mi procedimiento para crear los menús está en el módulo modMenú.bas, como ya había dicho, y como mi proyecto inicia en SubMain para llamar al procedimiento del modMenú antes de crear el formulario, entonces pensé que quizá todo eso pasaba y no se dibujaba en el formulario. Creé un botón de comando Command1 en donde cayera (encima del RichTextBox) y en su evento _Click() le puse "Call DrawMenuBar(hWnd)". Lo ejecuté pero no sirvió, además, ¿por qué habría de servir, si tengo esa linea al final de otras en el evento _Resize()?

Bueno, no sirvió, pero de repente me surgió una idea algo más extravagante: Volver a llamar al procedimiento pero ya cuando esté pintado el Form, y para aplicar eso del reciclaje, pues usé el mismo botón de comando. El código quedó:

Private Sub Command1_Click()
Call Crear_Menús_Estándar
End Sub


(Lo hice a la carrera, pero así de desordenado con mis códigos no soy). Ejecuto y ¡oh sorpresa! Aparece mi menú "Nk" y sus submenús "a1" y "b1".

Sin pensarlo me levanté tieso de la silla y me fui al mueble a revolcar. Después de eso vine aquí, pero ahora vamos a testearlo y a escribir en el blog los apuntes, como todo un científico xD, y para que sepan que todo lo que anoto ocurre en tiempo real. (Lo guardo antes que nada :P).

¿Qué ocurre al hacer click en Command1?

Antes tenía una ToolBar llamada "Barra_de_Herramientas", pero por sospechas la cambié a un Label llamado igual. Pues bien, al crearse el menú, el Label y el RichTextBox se hacen un tantito pa'bajo y se crea el menú "Nk".

¿Qué ocurre su presiono más de una vez el Command1?
No aparecen más barras de menús ni menús, sino que, acorde con el texto citado de MSDN, la barra es redibujada en su mismo lugar, pero sin destruir las otras, que quedan invisibles e inabilitadas.

¿Qué ocurre si borramos el Label y reestablecemos nuevamente la ToolBar que tenía?
Veamos...Lo mismo: se hace para abajo.

Ahora tendré que buscar la forma de que se dibuje esa barra sin necesidad de oprimir el botón y haciendo lo posible por mantenerla en el procedimiento Main.

Comienzo a las 3:05 am...

3:09 am: pasé Call SetMenu(hWnd, hMenú) hasta abajo de SubMain, después de hacer el frmMain.Visible = True; para eso tuve que cambiar hMenú de Dim a Public en modMenú.bas

Por el momento eso es todo. Les voy a mostrar mi código en modMenú.bas:

'Handle de la Barra de Menús
Public hMenú As Long

'Handle para los Submenús
Dim hPopupMenu As Long
Private Function Crear_Menú(ByVal Valor As String, ByVal Tipo As mnuTipo, _
                           Máscara As mnuMáscara, Estado_Inicial As mnuEstado, _
                           ByVal Menú_Matriz As Long, ByVal Submenús As Long, _
                           Optional ByVal Posición As Long) As Long

  Dim Información_del_Menú As MENUITEMINFO

  With Información_del_Menú
       .cbSize = LenB(Información_del_Menú)
       .cch = Len(Valor)
       .dwTypeData = Valor
       .fMask = Máscara
       .fState = Estado_Inicial
       .fType = Tipo
       .hSubMenu = Submenús
  End With

  If Posición >= 0 Then Posición = GetMenuItemCount(Menú_Matriz) + 1

  Crear_Menú = InsertMenuItem(Menú_Matriz, Posición, True, Información_del_Menú)

  Call DrawMenuBar(hWnd)

End Function

Public Sub Crear_Menús_Estándar()
   
   hMenú = CreateMenu
   hPopupMenu = CreatePopupMenu
   
   Call Crear_Menú("a1", MFT_STRING, MIIM_TYPE, MFS_DEFAULT, hPopupMenu, vbNull)
   Call Crear_Menú("a2", MFT_STRING, MIIM_TYPE, MFS_DEFAULT, hPopupMenu, vbNull)
   Call Crear_Menú("Nk", MFT_STRING, MIIM_TYPE + MIIM_SUBMENU, MFS_DEFAULT, hMenú, hPopupMenu)
   
End Sub



No incluye declaraciones, ni tipos, ni nada más porque harían un buen de espacio.
Y en el SubMain de modMain.bas:

'Inicializar Menús
   Crear_Menús_Estándar
     
   'Y, después de un gran movimiento por parte del personal, abrimos el telón...
   frmMain.Visible = True
   
   'Haremos que aparezca la Barra de Menús
   Call SetMenu(hWnd, hMenú)


y en frmMain:

Private Sub Form_Resize()
   
   On Error Resume Next
   
   With Área_de_Trabajo
        .Top = Barra_de_Herramientas.Top + Barra_de_Herramientas.Height
        .Left = 0
        .Height = Me.Height - .Top - 1100
        .Width = Me.Width - 100
   End With
   
   Call DrawMenuBar(hWnd)
   
End Sub


Evidentemente esto no es todo. Ya resuelto este problema me creo capaz de editarlos, crear, esconder, darles valores, y lo del evento Click supongo que no será mucha lata, si a casi una desvelada como máximo (que me tarde muchísimo).

También falta perfeccionar mi código: haré que mi función de Crear_Menú() devuelva el ID del menú creado y no el valor Booleano de la API de si se pudo o no crear. También haré otro hPopupMenú_secundario o algo así para lo de "Archivo/Nuevo/Documento en blanco" y otras cosas por el estilo. Pero eso será mañana porque, me apena decirlo, me toca estudiar álgebra.

También voy a jugar Mythology hasta que amanezca y trataré de hacer actividades algo pesadas durante el día para mantenerme despierto (haber si puedo).

Lo que dije entre la primera y segunda desvelada lo sostengo ahora con más ahinco: crear menús con APIs no es difícil, lo que cuesta es descubrir la forma.

Hilsen



PD: Disculpen por las irregularidades del código pero en la edición no puedo empezar líneas con espacios; bueno, sí, pero eso requiere de un esfuerzo que por ahora no estoy dispuesto a realizar.




Editado Viernes 29 de Junio del 2007: Ya le corregí los aspectos del código haciéndolo más legible.

CreatePopupMenu

Con respecto a lo de los menús, hice las siguientes búsqueda en Google:

"crear menú"+"Visual Basic"
"hMenú"+"Visual Basic"
"InsertMenuItem"+"Visual Basic"
"InsertMenuItem"+"Visual Basic"
"menú"+"Visual Basic"
"SetMenu"+"Visual Basic"

No todas tienen los parámetros, algunas están en inglés y otras en español. Pero de todo eso lo único que me sirvió fue esto:

Colabora: API menús por Jordi Garcia

De ahí en fuera todo fueron o bien cosas inútiles o bien cosas inútiles. E inclusive del enlace de arriba debo decir que sólo saqué lo que me servía, puesto que el código era para VB3 me parece, y ahí usaban la API AppendMenu que requiere de no más que 4 parámetros, mientras que mi InsertMenuItem depende de 3 y un tipo de 11 variables. Lo que saqué de ahí fue el empleo de CreatePopupMenu para crear los submenús (digamos, "Abrir, Guardar, Nuevo...").

Me extraña no haber encontrado el enlace ese porque hace media semana que andaba en lo de las desveladas me metí a ElGuille a buscar sobre los menús pero no encontré nada.

En pocas palabras: ya puedo crear un menú Archivo y sus submenús, es más, al decir esto me refiero a que incusive puedo crear menús desplegables como "Archivo/Nuevo/Hoja en blanco"; y se supone que con eso tengo, ¿no? Pues aun sigo sin poder hacer que aparezca mi barra de menús: la tengo que crear desde el Editor de Menús y cambiar un par de líneas en mi código para que aparezca y se creen mis menús de prueba, pero a pura API no aparece, y lo hago igual al código de ElGuille (claro, con sus respectivas modificaciones y ajustes a mi código).

Pero ya tengo más abiertos los horizontes, ahora tengo que pensar en cómo hacer para que aparezca mi barra de menús.

Hilsen

miércoles, 4 de enero de 2006

Eich of Mitzololly

(No sé qué pretendía en el post pasado con ese título de a versito).

Creo que tantos juegos en el Mythology me han dado algo de práctica. Antes la máquina me ganaba siempre... 'por un poquito'. Cuando yo estaba comenzando a crear soldados, ella ya venía con su ejército, y cuando yo seguía con mi MONOSeattlement, ella ya abarcaba dos Seattlement e iba por el tercero; siempre me ganaba por poco en todo, pero me ganaba.

Ahora creo que he descubierto la base para una buena economía en el nivel Moderado: irse con los dos o tres aldeanos (o enanos xD) a crear un granero por donde haya esas cosas como brócoli gigantes y gastarse toda la comida en aldeanos para llevarlos a recoger a esos arbustos (hasta ahora, la táctica que llevaba haciendo desde hace ya tiempo.

Pero he aquí la diferencia: yo mandaba a los otros sujetos a recoger comida y luego creaba otros dos o tres (con la comida que recien había acumulado) para recoger madera y oro y construir mis casas y el templo, pero sucede que para una buena economía necesito gente que esté trabaje y trabaje todo el tiempo, más con los egipcios que fueron hechos para construir. Entonces, lo que tengo que hacer es mandar a todos a recoger esos arbustos, coger la carne de las cabras, cerdos y vacas y gallinas, y uno que construya una casa, lo que sea para recoger madera y el templo y luego siguiera consiguiendo comida, mientras mando a mi Ulfsark/Katáskopos/Priest a peinar la zona en busca de comida.

Haciendo eso, en unos minutos se puede obtener hasta 800 y pico de comida, como yo lo hice, dejaba en la cola del centro urbano unos cuatro o cinco aldeanos y el avance a la edad Clásica.

Evidentemente la máquina llegaba a la clásica antes que yo, pero con mis aldeanos nuevos y los otros que ya había terminado la comida, me ponía a talar árboles y recoger oro y a cazar ciervos, caribúes, hipopótamos, elefantes o lo que sea, el caso es tener a 7 o más recolectando comida y a seis con oro y con la madera, los que sean necesarios, puesto que con la madera no le veo tarifa fija (los egipcios necesitan más oro, mientras que los griegos y vikingos, madera).

En todo lo que avanza de edad hay que poner a todos los aldeanos a trabajar y crear un héroe para que recoga las reliquias (en el caso de los Egyptian, el Faraón lo puede hacer desde el principio).

Al avanzar de edad, hay que crear otros cinco aldeanos e irles asignando las tareas necesarias (6 en oro, 7 o más en comida y los que sobren (que sean como 5 (sino créalos)) en madera). Mandar a uno o dos para que creen casas, la herrería y tres cuarteles (Long houses, Barraks(o algo así) o lo que sea que se parezca a un cuartel para entrenar milicias).

Hasta ahora llevaríamos unos 600 de cada cosa como mínimo. Pues en todo lo que el o los aldeanos construyen, creamos al héroe de la Clásica con la madera que hemos acumulado (todos los héroes de la clásica (creo) cuestan siempre 200 de madera y 2 de fé).

Ya tenemos nuestros dos héroes, casi 1000 de cada uno y tres cuarteles en creación. El siguiente paso es crear unos aldeanos y mandarlos a cultivar en granjas; para cuando estén ya arando tendremos los tres cuarteles listos y el Seattlement rodeado de granjas, lo que hacemos es seleccionar nuestros tres cuarteles a la vez (doble click en uno (tienen que estar cerca)) y darle cinco veces al muñequito de la izquierda, el primero, porque creo que es el que resulta ser más fuerte; de este modo estarán en cola 15 soldaditos, 5 en cada cuartel, nos vamos al templo y creamos una unidad mitológica. Si no te alcanza para la unidad mitológica es porque vas mal de economía y puede que ese sea el único ejército que puedas tener en la partida, a menos que la unidad requiera de madera, como los centauros, ahí sí puedes ser perdonado :P.

Con la comida que nos sobre, vemos si podemos crear unos 5 aldeanos, para mandarlos a la comida o madera, y, según especulo yo, tendrás suficientes recursos para desarrollar los tres (o cuatro) implementos visibles de la herrería.

Mandas tus unidades al ataque. No sé qué vayas a atacar, pero yo me voy por el cuartel y el templo que seguramente tendrán y cuando se destruyen, dejo que los muñequitos peleen automáticamente. Con esto ya tendrás bloqueada la economía de la compu y suficientes recursos (al rededor de mil de comida u oro) para otra ronda de 15 soldaditos y una unidad mitológica.

Para esto ya debes tener tu centro urbano rodeado de granjas y otro molino aparte también rodeado de granjas.

Todos los avances tanto de los centros madereros y de oro deben estar avanzados, en el caso de los molinos basta con encargarse de los de la granja. Los de la herrería nunca deben olvidarse.

Así nos vamos hasta que poco a poco la compu se queda sin edificios militarea, luego guerreros, luego aldeanos, luego el Seattlement y luego sus casitas hasta que sale su letrero de "May I offer my surrender?", o "Can we stop this war before haya más gente lastimada"? y pues, si se trata de Griegos o Egipcios, le digo que sí, porque somos civilizados y hay que tomar buenas desiciones para nuestro pueblo, pero si estoy con los Vikingos, que se vayan mucho a talar árboles porque los voy a asesinar a todos.

Cuando estoy con los vikingos y me ofrecen su rendición, les digo que no pero dejo de crear unidades y trato de alejar ese ejército, conquisto los Seattlements que queden y me dedico a juntar oro y todo para desarrollar la omniprescencia y luego crear una maravilla.

Lo que ocurría antes que aplazaba mis avances era porque, apenas y tenía recursos suficientes, avanzaba de edad, y al estar en la heróica, creaba un centro urbano y un mercado en la esquina contraria para hacer unos 10 o 15 animales que comerciaran con una buena feria, y con eso perdía mis pocos recursos y la máquina me embestía.

Pero ahora cuando gano generalmente estoy desarrollando o por desarrollar la Edad Heróica, con no más que un Seattlement, sin mercado y sin Fortress, o Migdol Stronghold o Fortress Hil.

Se dan casos en que la máquina me gana: no sé por qué. Pero cuando veo que me están atacando y no tengo ni estoy creando ningún ejército, le doy "Resign" para ver qué tan avanzada va la máquina.

Yo uso los poderes de dioses para ayudarme: el de Bronze lo utilizo cuando tengo un numeroso ejército y deseo atacar un centro urbano, el de la Pestilencia puede ser usado desde que llegas a la edad Clásica: mandas a tu explorador o algo al reino enemigo y cuando esté a la vista el Seattlement, le das la Pestilencia para que no cree unidades; el templo podrá estar cerca y con suerte tampoco le tocará nada; si hay un cuartel entonces apúrate a recoger recursos.

Voy a buscar info sobre los menús y luego a jugar Mythology.

Hilsen

En busca de una luciérnaga en la ciénaga

He regresado de vacaciones. Me la he pasado medianamente bien.

En el post anterior estaba tan urgido por terminar que se me pasó contar un detalle acerca de los menús: logré ver que, teniendo ya creados X menús con el Editor de Menús, puedo ver en la ventana de propiedades las respectivas propiedades de ellos: caption, name, etc. De hecho, ya había visto antes que se agregaban en la ventana de propiedades, pero nunca le puse atención a ese detalle puesto que cuando necesitaba componer algo en mis menús iba directamente al Editor de Menús. El caso es que todo el tiempo se me olvidó que los menús se podían manipular muy bien ahí.

Cuando me di cuenta de eso, mi cara quedó paralizada y mi mente se nubló de incredulidad. Estaba perplejo viendo aquellas propiedades enlistadas: cada menú tenía su propia zona en aquella ventana.

Pensé que sería mejor, más fácil y que además me ahorraría mucho código el manipular a través de ahí a mis menús, ya que lo que quiero no pasa de cambiar el Caption de cada uno a mi gusto es por eso de la compatibilidad de idiomas de la NekroLicencia); pero luego pensé en que me había matado varias noches aprendiendo a usar esas APIs e inclusive había faltado al sueño dos veces (en año nuevo ocurrió la tercera) com pequeños avances: la tecnología cuesta menos coronas que sudor.

Después de rápidamente tomar esa desición, seguí con lo de las APIs pero sin lograr nada. Mi teoría sigue en pie: la razón por la que mis menús no se dibujan en el form a pesar de estar ya creados y asignados a la ventana es porque me hace falta poner ese código para crear eventos: ¿cómo hago para definir las acciones que ocurrirán cuando le de click a un menú?

Creo que necesito crear una clase y ponerle el Event Click, pero al crear esa clase me vería en la necesidad de crear los menús para allá y, ¿cómo saber, en el .cls, cuando se hace click en un menú creado con APIs? Había pensado en un GetMessage, pero tendría que andarlo checando con un Timer o algo cada ratito para ver si alguien ha hecho un click y eso sería usar mucho espacio.

En eso me la paso pensando: mi barra de menú está creada, junto con sus items, pero, ¿cómo saber cuando se ha hecho click en un menú?; al responder esta pregunta creo que el código para que aparezcan vendría sólo.

Creo que voy a buscar sources donde vengan menús creados con APIs, a ver qué loco ya lo hizo, pero me sentiría defraudado al pensar que alguien sí lo hizo sin ayuda de otro, por eso es que flaqueo al imaginarme buscando en Google.

Pero mientras no, voy a investigar con las APIs y quizá relea algo sobre clases para ver si encuentro algo que me pueda ser de utilidad para establecer el _Click() o dibujar los menuseses.

Hilsen