DIRECCIONAR WINDOWS EN MODO CONSOLE

HMG en Español

Moderator: Rathinagiri

Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: DIRECCIONAR WINDOWS EN MODO CONSOLE

Post by Javier Tovar »

Bueno, cuando le di Click a la dirección URL me salio la misma pagna que a LOUIS!, y después que te mande el Topic probe otra vez y ya salio bien!,

Bueno, lo bueno es que ya funciono.

Saludos
User avatar
LOUIS
Posts: 209
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: DIRECCIONAR WINDOWS EN MODO CONSOLE

Post by LOUIS »

OK Pablo, ya pude entrar ... Gracias ;)

Pero aquí voy de nuevo con otra inquietud, disculpad si molesto con estos temas de console ... Ved el Gráfico please ...
Attachments
TITULO.jpg
TITULO.jpg (54.42 KiB) Viewed 3174 times
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

DIRECCIONAR WINDOWS EN MODO CONSOLE

Post by Pablo César »

LOUIS wrote:...aquí voy de nuevo con otra inquietud, disculpad si molesto con estos temas de console ...
Hola Louis,

Agregale esta función en C a tu código:

Code: Select all

HB_FUNC(SETCONSOLETITLE)
{  char * szTitle=HMG_parc(1);
   SetConsoleTitle(szTitle);
}
Hazlo luego depues de:
HB_FUNC ( SETWINDOWPOS ) (del código ejemplo dado)
OK Pablo, ya pude entrar ... Gracias ;)
Por lo visto no te interesó... talvez te faltó prestarle más atención y dejaste de ver el código del URL que menciono abajo...
Pantalla1.png
Pantalla1.png (207.46 KiB) Viewed 3169 times
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
User avatar
LOUIS
Posts: 209
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: DIRECCIONAR WINDOWS EN MODO CONSOLE

Post by LOUIS »

Estimado Pablo:

La direccion del viewtopic #40041 sigue bloqueada, la 40092 sí permite ver ... sólo que son temas un poco complejos para mí :oops:
Cuando entré a formar parte de este forum, Yo les platiqué que entré al mundo de la programación en forma empírica, es decir no
tuve preparación académica, y entré al mundo de la programación a las bravas, esforzándome, buscando información y respuestas ...
En realidad me gusta la programación, y vengo del modo procedural del fox y clipper ... con Uds he aprendido mucho y sé que me falta
muchísimo, por eso siempre pido disculpas porque pueden parecer preguntas triviales las que emito aquí :roll:

La última colaboración que me diste para cambiar u omitir el título de la ventana console, no me funcionó :(
puse la función dentro del código en C ... pero no sé como invocarla, no sé si faltará algo como #define
Tengo esto ---> PUBLIC hWnd := GETCONSOLEWNDHANDLE() dentro de Function Main()
y en los procedimientos más adelante tengo
SetWindowPos( hWnd, HWND_TOPMOST, -1, 132, 1, 1, hb_bitOr( SWP_NOSIZE, SWP_DRAWFRAME ) ) <--- funciona ok
SetConsoleTitle( ) <--- no funciona

sé que algo me falta, pero no sé que es ... HELP ME PLEASE !

Siempre muy agradecido por tu valioso tiempo.
User avatar
Pablo César
Posts: 4059
Joined: Wed Sep 08, 2010 1:18 pm
Location: Curitiba - Brasil

DIRECCIONAR WINDOWS EN MODO CONSOLE

Post by Pablo César »

Louis, lo que te pasé es una función hecha en lenguaje C. Asi como otras funciones, tienes que llamarla.
Yo sin ver tu código no tengo como indicarte donde tienes que llamarla.

Cuando uno tiene duda, de como hizo o le dá error, tiene que colocar a disposición su código o un ejemplo similar para poder basearse. Tambien debes informar cual es la version de HMG que estás usando. Toda informacion es bien venida !

Te indiqué un ejemplo que dices no poder accesar.
Pantalla2.png
Pantalla2.png (24.47 KiB) Viewed 3149 times
LOUIS wrote:La direccion del viewtopic #40041 sigue bloqueada, la 40092 sí permite ver
Cuando ocurre este tipo de cosas, deben mandarle a Rathinagiri un mensaje indicando el URL y diciendo que no están podiendo accesar. Digo esto, porque él es el responsable por la liberacion y administracion del forum.

Esa que te refieres 40092, es otro URL que yo nunca te indiqué... no sé por qué lo mencionas. Hay mucho desencuentros, deberia ser más claro... :mrgreen:
LOUIS wrote:SetConsoleTitle( ) <--- no funciona
No te parece que deberias pasar el nuevo título como parámetro para poder cambiar el título de la seccion console ?
Es asi como deberia ser: SetConsoleTitle("Colocas el título que quieras aqui")

Si vas usarlo en hmg 3.0.46, puedes usar este código que vuelvo a repetir a seguir (es el mismo que indiqué anteriormente y que tu ya lo has utilizado):

Code: Select all

/* Compiled with hmg.3.0.46 version */

#define HWND_TOPMOST                              -1
#define SWP_NOSIZE                                0x0001
#define SWP_DRAWFRAME                             0x0020

REQUEST HB_GT_WIN_DEFAULT 

Function Main ()
Local hWnd:=GetConsoleWindowHandle()

SetMode(25,80)
SetConsoleTitle("Colocas el título que quieras aqui")
SetWindowPos( hWnd, HWND_TOPMOST, 600, 500, 1, 1, hb_bitOr( SWP_NOSIZE, SWP_DRAWFRAME ) )

@ 00,00 to 24,79 double
@ 01,01 SAY "012345678901234567890123456789012345678901234567890123456789012345678901234567"
@ 03,01 SAY "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
Inkey(0)
Return Nil

#pragma BEGINDUMP
#define WINVER 0x0600 // for Vista
#define _WIN32_WINNT 0x0600 // for Vista

#include "windows.h"
#include "hbapi.h"

HB_FUNC( GETCONSOLEWINDOWHANDLE )
{
    HWND hwnd;
    AllocConsole();
    hwnd = FindWindowA("ConsoleWindowClass",NULL);
    hb_retnl( (LONG) hwnd );
}

HB_FUNC ( SETWINDOWPOS )
{
    HWND hwnd           = (HWND) hb_parnl(1);    // handle to window or control
    HWND hWndInsertAfter= (HWND) hb_parnl(2);    // placement-order handle
    int X               =        hb_parni(3);    // horizontal position
    int Y               =        hb_parni(4);    // vertical position
    int cx              =        hb_parni(5);    // width
    int cy              =        hb_parni(6);    // height
    UINT uFlags         = (UINT) hb_parni(7);    // window-positioning options

    hb_retl( (BOOL) SetWindowPos( hwnd, hWndInsertAfter, X, Y, cx, cy, uFlags ) );
}

HB_FUNC(SETCONSOLETITLE)
{  char * szTitle=hb_parc(1);
   SetConsoleTitle(szTitle);
}
#pragma ENDDUMP
Si utilizas la version actual (hmg 3.4.0), debes cambiar para las funciones UNICODE.
Por ejemplo, donde dice: { char * szTitle=hb_parc(1); lo reemplazas por: { char * szTitle=HMG_parc(1);

Entiendes ?

LOUIS wrote:Cuando entré a formar parte de este forum, Yo les platiqué que entré al mundo de la programación en forma empírica, es decir no tuve preparación académica, y entré al mundo de la programación a las bravas, esforzándome, buscando información y respuestas ...
En realidad me gusta la programación, y vengo del modo procedural del fox y clipper ... con Uds he aprendido mucho y sé que me falta muchísimo, por eso siempre pido disculpas porque pueden parecer preguntas triviales las que emito aquí :roll:
No desanimes. Te aconsejo a ser más atento, a leer más, no saber, no es defecto. Solo que deberias ser más claro en tus exposiciones. Colocar código ejemplo, es vital para referencia, para testeo y para mostrarnos donde está el error.
HMGing a better world
"Matter tells space how to curve, space tells matter how to move."
Albert Einstein
User avatar
LOUIS
Posts: 209
Joined: Tue Dec 11, 2012 9:05 pm
DBs Used: DBF

Re: DIRECCIONAR WINDOWS EN MODO CONSOLE

Post by LOUIS »

Estimado Pablo:

Gracias una vez más, si cliqueé donde debe ser y ví, pero al poner el código venía para unicode como vos mismo mencionaste.
La falla es mía y siempre recordaré que voy con la versión 3.0.46 ...
Ya con el ejemplo que ponés del code, esta super entendible ;) y ya me funcionó !

Se te agradece mucho*1000= muchísimo ... Gran Mago !
Javier Tovar
Posts: 1275
Joined: Tue Sep 03, 2013 4:22 am
Location: Tecámac, México

Re: DIRECCIONAR WINDOWS EN MODO CONSOLE

Post by Javier Tovar »

LOUIS wrote:Estimado Pablo: Gran Mago !
+1
Post Reply