Teste do dia

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste do dia

Mensagem por JoséQuintas »

Só testei e funcionou.
Acho que os nomes no fonte dizem tudo.

Código: Selecionar todos

#include "hbdyn.ch"
#include "hbclass.ch"
#require "hbwin.hbc"

PROCEDURE Main

   ControlPanel():Panel()
   ControlPanel():AddRemove()
   ControlPanel():NetworkConn()
   ControlPanel():Power()
   ControlPanel():Regional()
   ControlPanel():SafetyRemove()
   ControlPanel():SoundProperties()
   ControlPanel():SystemProperties()
   ControlPanel():SystemPropertiesAdvanced()
   ControlPanel():SystemRemote()
   ControlPanel():SystemComputerName()
   ControlPanel():SystemHardware()
   ControlPanel():WindowsSecurityCenter()
   ControlPanel():WindowsFirewall()

   Inkey(10)

   RETURN

CREATE CLASS ControlPanel
   METHOD Run( m, d, a )             INLINE hb_DynCall( { m, d, HB_DYN_CALLCONV_STDCALL }, 0, 0, a, WIN_SW_NORMAL )
   METHOD ControlRunDll( cApp )      INLINE ::Run( "Control_RunDLL", "shell32.dll", cApp )
   METHOD Panel()                    INLINE ::ControlRunDll( "" )
   METHOD SysDM()                    INLINE ::ControlRunDll( "sysdm.cpl" )
   METHOD AddRemove()                INLINE ::ControlRunDll( "appwiz.cpl" )
   METHOD NetworkConn()              INLINE ::ControlRunDll( "ncpa.cpl" )
   METHOD Power()                    INLINE ::ControlRunDll( "powercfg.cpl" )
   METHOD Regional()                 INLINE ::ControlRunDll( "intl.cpl,,0")
   METHOD SafetyRemove()             INLINE ::ControlRunDll( "HotPlug.dll" )
   METHOD SoundProperties()          INLINE ::ControlRunDll( "Mmsys.cpl,,0" )
   METHOD SystemProperties()         INLINE ::ControlRunDll( "Sysdm.cpl,,3" )
   METHOD SystemPropertiesAdvanced() INLINE ::ControlRunDll( "Sysdm.cpl,,4")
   METHOD SystemRemote()             INLINE ::ControlRunDll( "sysdm.cpl,,5" )
   METHOD SystemComputerName()       INLINE ::ControlRunDll( "Sysdm.cpl,,1" )
   METHOD SystemHardware()           INLINE ::ControlRunDll( "Sysdm.cpl,,2" )
   METHOD WindowsSecurityCenter()    INLINE ::ControlRunDll( "wscui.cpl" )
   METHOD WindowsFirewall()          INLINE ::ControlRunDll( "firewall.cpl" )

   END CLASS
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Teste do dia

Mensagem por alxsts »

Olá!

Interessante mesmo. O exemplo compilou e linkeditou. Na hora da execução deu RTE acusando a falta da variável "WIN_SW_NORMAL". Falta algum include ou parâmetro de compilação? Ou o nome da constante está incorreto.
Capturar.JPG
Se me permite, sugiro que altere o título do tópico para um que reflita o assunto do mesmo.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste do dia

Mensagem por JoséQuintas »

coloquei #require "hbwin.hbc" mas não fez efeito, é ela que precisa: hbwin.hbc pra já acrescentar o CH

Testei mais alguns arquivos CPL da pasta
cpanel.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste do dia

Mensagem por JoséQuintas »

Aproveitando....

Compile usando -w3 -es2
Já teria o aviso na própria compilação de estar faltando isso.
Essa é uma das vantagens de compilar usando -w3 -es2
Não tem surpresas em run-time.
d:\temp>hbmk2 test
hbmk2: Processing environment options: -comp=mingw
hbmk2: Processing configuration: d:\harbour\bin\hbmk.hbc
Harbour 3.4.0dev (f8911388ba) (2017-06-04 18:03)
Copyright (c) 1999-2017, https://github.com/vszakats/harbour-core/
Compiling 'test.prg'...
500
test.prg:16: warning W0001 Ambiguous reference 'WIN_SW_NORMAL'

No code generated.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste do dia

Mensagem por JoséQuintas »

Pensei até que tinha errado.
d:\cdrom\FONTES\INTEGRA>hbmk2 *.hbp -m -n
hbmk2: Processing environment options: -comp=mingw
hbmk2: Processing configuration: d:\harbour\bin\hbmk.hbc
hbmk2: Triggered by #require directive: hbhpdf.hbc
hbmk2: Triggered by #require directive: hbzebra.hbc
hbmk2: Triggered by #require directive: hbziparc.hbc
hbmk2: Triggered by #require directive: hbnetio.hbc
hbmk2: Triggered by #require directive: hbwin.hbc
hbmk2: Triggered by #require directive: hbtip.hbc
Agora fiquei sem entender o funcionamento de #require
Isso dá a impressão de que adicionaria automático.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Teste do dia

Mensagem por alxsts »

Olá!

Desculpe mas não entendi o que queres dizer... Continua sem funcionar aqui...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Teste do dia

Mensagem por Toledo »

alxsts escreveu:acusando a falta da variável "WIN_SW_NORMAL".
Alexandre, esta variável não existe no Harbour 32, então troque esta variável por 1 ou crie ela:

Código: Selecionar todos

#define WIN_SW_NORMAL     1
Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste do dia

Mensagem por JoséQuintas »

Nem lembrava disso, no Harbour 3.4 o Viktor procurou deixar as variáveis do Windows como WIN_
No 3.2 deve ter algum equivalente, talvez procurando SW_NORMAL nos arquivos CH.
Também tinha na GTWVG mas não lembro se está como WIN_ ou outra coisa.

Aqui no Harbour 3.4 basta colocar HBWIN.HBC, e a variável está em hbwin.ch caso fosse #include

hbmk2 test hbwin.hbc
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Teste do dia

Mensagem por alxsts »

Olá!

Obrigado!

Agora funcionou!

WindowsControlPanel
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Teste do dia

Mensagem por alxsts »

Olá!

Duas coisas que me chamaram a atenção neste código: a classe ControlPanel não tem o método construtor e na Main() foi chamada diretamente. O normal que conheço é criar uma instância e usar...

Código: Selecionar todos

PROCEDURE Main

   LOCAL oWcp := ControlPanel():New()

   oWcp:Panel()
   oWcp:AddRemove()
   oWcp:NetworkConn()
   oWcp:Power()
   oWcp:Regional()
   oWcp:SafetyRemove()
   oWcp:SoundProperties()
   oWcp:SystemProperties()
   oWcp:SystemPropertiesAdvanced()
   oWcp:SystemRemote()
   oWcp:SystemComputerName()
   oWcp:SystemHardware()
   oWcp:WindowsSecurityCenter()
   oWcp:WindowsFirewall()

   Inkey(10)

   RETURN
Não sabia que isto é possível.
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste do dia

Mensagem por JoséQuintas »

Essa opção é interessante pra economizar variável e fonte.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder