quinta-feira, 14 de julho de 2016

Windev - Obter Numreo Serial hd

http://forum.pcsoft.fr/fr-FR/pcsoft.br.windev/1516-como-obter-numero-serial-macaddress-placa-rede-outras/read.awp


Para obter o Número serial do HD, IP, Macaddress da placa de rede e outras informações da maquina cliente, segue exemplo:




//SERIAL
IF EDT_Company <> "" AND EDT_CNPJ_CPF_ID <> "" AND EDT_E_mail <> "" THEN

EDT_Hard_Drive = ""
EDT_Serial_Webdev = ""
EDT_Serial_Windev = ""
EDT_Serial_WindevMobile = ""

SERIAL_DOUNGLE_WEBDEV, SERIAL_DOUNGLE_WINDEV, SERIAL_DOUNGLE_WINDEVMOBILE, Windows, SerialWindows isstring = ""

//FUNCAO GET SERIAL DOUNGLE
SERIAL_DOUNGLE_WEBDEV = 10
SERIAL_DOUNGLE_WINDEV = 20
SERIAL_DOUNGLE_WINDEVMOBILE = 30

EDT_Doungle_Webdev = "WEBDEV_" + SERIAL_DOUNGLE_WEBDEV
EDT_Doungle_Webdev_PcSoft = EDT_Doungle_Webdev 

EDT_Doungle_Windev = "WINDEV_" + SERIAL_DOUNGLE_WINDEV
EDT_Doungle_Windev_PcSoft = EDT_Doungle_Windev 

EDT_Doungle_WindevMobile = "WINDEVMOBILE_" + SERIAL_DOUNGLE_WINDEVMOBILE
EDT_Doungle_WindevMobile_PcSoft = EDT_Doungle_WindevMobile 

sBaseBoardManufacturer, sBaseBoardProduct, sBaseBoardVersion, sBIOSReleaseDate, sBIOSVendor,sBIOSVersion, sSystemFamily, sSystemManufacturer is string = ""

ResExist1 is boolean = RegistryExist("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS")

ResExist2 is boolean =RegistryExist("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0")

IF ResExist1 = True AND ResExist2 = True

sBaseBoardManufacturer =RegistryQueryValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "BaseBoardManufacturer",True)
sBaseBoardProduct = RegistryQueryValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS","BaseBoardProduct", True)
sBaseBoardVersion = RegistryQueryValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS","BaseBoardVersion", True)
sBIOSReleaseDate = RegistryQueryValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS","BIOSReleaseDate", True)
sBIOSVendor = RegistryQueryValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS","BIOSVendor", True)
sBIOSVersion = RegistryQueryValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS","BIOSVersion", True)
sSystemFamily = RegistryQueryValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS","SystemFamily", True)
sSystemManufacturer =RegistryQueryValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\BIOS", "SystemManufacturer", True)

EDT_Pais = RegistryQueryValue("HKEY_CURRENT_USER\Control Panel\International", "sCountry", True)

EDT_Processador =RegistryQueryValue("HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0","ProcessorNameString", True) 

EDT_Placa_Mae = sBaseBoardManufacturer +" - "+ sBaseBoardProduct +" - "+ sBaseBoardVersion +" - "+sBIOSReleaseDate +" - "+ sBIOSVendor +" - "+ sBIOSVersion +" - "+ sSystemFamily +" - "+ sSystemManufacturer 

Windows = RegistryQueryValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","ProductName", True)

SerialWindows = RegistryQueryValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","BuildGUID", True)

EDT_Version_Windows = Windows +" - "+ SerialWindows +" - "+ SysWindowsVersion(sysProcessor) +" bits - "+SysWindowsVersion(sysVersionBuild) +" - "+ SysWindowsVersion(sysVersionInfo) +" - "+SysWindowsVersion(sysVersionNumber) +" - "+ SysWindowsVersion(sysVersionPlatform)

END

//EDT_Hard_Drive
EDT_Hard_Drive = fDisqueInfo(Middle(SysDir(srWindows),1,2),fdSerialNumber) 

EDT_Hard_Drive_PcSoft = EDT_Hard_Drive 

EDT_IP_4 = NetIPAddress()

EDT_Placa_de_Rede_Mac = Upper(NetMACAddress())

EDT_Name_PC = Upper(NetMachineName())

//Marca_Modelo_Placa_de_Rede
ResExist3 is boolean = RegistryExist("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards")
IF ResExist3 = True THEN

Key is string = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"
Achou is string = ""
x is int = 0
WHILE Key <> ""
x+= 1
Achou = RegistryQueryValue(Key+x, "Description", True)
IF Achou <> ""
EDT_Placa_de_Rede_Marca_Modelo = Achou
EDT_Placa_de_Rede_ServiceName = RegistryQueryValue(Key+x, "ServiceName", True)
BREAK
END
IF x > 30 THEN
BREAK
END
END
END


//Crypto
EDT_Serial_Webdev = EDT_Doungle_Webdev +"; "+ EDT_Company +"; "+ EDT_Pais +"; "+ EDT_CNPJ_CPF_ID +"; "+EDT_E_mail +"; "+ EDT_Processador +"; "+ EDT_Placa_Mae +"; "+ EDT_Hard_Drive +"; "+ EDT_IP_4 +"; "+EDT_Placa_de_Rede_Mac +"; "+ EDT_Version_Windows +"; "+ EDT_Name_PC +"; "+ EDT_Placa_de_Rede_Marca_Modelo+"; "+ EDT_Placa_de_Rede_ServiceName
EDT_Serial_Webdev =Crypt(EDT_Serial_Webdev,EDT_Doungle_Webdev,cryptAnsi+compressShortString,encodeBASE64) 


//Crypto
EDT_Serial_Windev = EDT_Doungle_Windev +"; "+ EDT_Company +"; "+ EDT_Pais +"; "+ EDT_CNPJ_CPF_ID +"; "+EDT_E_mail +"; "+ EDT_Processador +"; "+ EDT_Placa_Mae +"; "+ EDT_Hard_Drive +"; "+ EDT_IP_4 +"; "+EDT_Placa_de_Rede_Mac +"; "+ EDT_Version_Windows +"; "+ EDT_Name_PC +"; "+ EDT_Placa_de_Rede_Marca_Modelo+"; "+ EDT_Placa_de_Rede_ServiceName
EDT_Serial_Windev =Crypt(EDT_Serial_Windev,EDT_Doungle_Windev,cryptAnsi+compressShortString,encodeBASE64)


//Crypto
EDT_Serial_WindevMobile = EDT_Doungle_WindevMobile +"; "+ EDT_Company +"; "+ EDT_Pais +"; "+EDT_CNPJ_CPF_ID +"; "+ EDT_E_mail +"; "+ EDT_Processador +"; "+ EDT_Placa_Mae +"; "+ EDT_Hard_Drive +"; "+EDT_IP_4 +"; "+ EDT_Placa_de_Rede_Mac +"; "+ EDT_Version_Windows +"; "+ EDT_Name_PC +"; "+EDT_Placa_de_Rede_Marca_Modelo +"; "+ EDT_Placa_de_Rede_ServiceName
EDT_Serial_WindevMobile =Crypt(EDT_Serial_WindevMobile,EDT_Doungle_WindevMobile,cryptAnsi+compressShortString,encodeBASE64)

ELSE

IF EDT_Company = "" THEN
EDT_Company..BrushColor = DarkRed
END
IF EDT_CNPJ_CPF_ID = "" THEN
EDT_CNPJ_CPF_ID..BrushColor = DarkRed 
END
IF EDT_E_mail = "" THEN
EDT_E_mail..BrushColor = DarkRed
END

END 
//Marca_Modelo_Placa_de_Rede
ResExist1 is boolean = RegistryExist("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards")
IF ResExist1 = True THEN

Key is string = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkCards\"
Achou is string = ""
x is int = 0
WHILE Key <> ""
x+= 1
Achou = RegistryQueryValue(Key+x, "Description", True)
IF Achou <> ""
EDT_Placa_de_Rede_Marca_Modelo01 = Achou
EDT_Placa_de_Rede_ServiceName01 = RegistryQueryValue(Key+x, "ServiceName", True)
BREAK
END
IF x > 30 THEN
BREAK
END
END
Achou = ""
WHILE Key <> ""
x+= 1
Achou = RegistryQueryValue(Key+x, "Description", True)
IF Achou <> ""
EDT_Placa_de_Rede_Marca_Modelo02 = Achou
EDT_Placa_de_Rede_ServiceName02 = RegistryQueryValue(Key+x, "ServiceName", True)
BREAK
END
IF x > 30 THEN
BREAK
END
END
END





Bons estudos

--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/

Curso WinDev - Funções Dialogo - 6/... - Input









Video Youtube



Nessa aula vou mostrar como digitar informacoes manuais com Input

This lesson will show how to type with manual Input Info

Cette leçon montrera comment taper avec Infos entrée manuelle

http://doc.windev.com/en-US/?3021010&name=constants_for_managing_the_dialog_boxes

http://doc.windev.com/en-US/?3021016&name=input_function
http://doc.pcsoft.fr/fr-FR/?3021016&name=saisie_fonction


Blog - WinDev - Curso Funções Dialogo - 001/... - Confirm
Blog - WinDev - Curso Funções Dialogo - 002/... - Okcancel
Blog - WinDev - Curso Funções Dialogo - 003/... - Message
Blog - WinDev - Curso Funções Dialogo - 004/... - toastDisplay
Blog - WinDev - Curso Funções Dialogo - 005/... - YesNo
Blog - WinDev - Curso Funções Dialogo - 006/... - Input
Blog - WinDev - Curso Funções Dialogo - 007/... - Error
Blog - WinDev - Curso Funções Dialogo - 008/... - Gauge
Blog - WinDev - Curso Funções dialogo - 009/... - Info 


n_numero_copias is int
Input("Quantas Copias",n_numero_copias)
s_telefone is string=""
Input.InputMask=maskPhone
Input("Telefone",s_telefone)
s_observacao is string=""
s_observacao=RepeatString(CR,10)
Input.InputMask="regexp:.{0,140}"
Input("Observacao",s_observacao)
b_pergunta is boolean=False
Input.OptionalCaption="Deseja Gravar"
Input("pergunta",b_pergunta)




n_numero_copias est entier
Saisie("Quantas Copias",n_numero_copias)
s_telefone est chaîne=""
Saisie.MasqueSaisie=maskTel
Saisie("Telefone",s_telefone)
s_observacao est chaîne=""
s_observacao=Répète(RC,10)
Saisie.MasqueSaisie="regexp:.{0,140}"
Saisie("Observacao",s_observacao)
b_pergunta est booléen=Faux
Saisie.LibelléOptionnel="Deseja Gravar"
Saisie("pergunta",b_pergunta)














Example
// Example of simplified input
NbCopies is int
ReturnValue is int
ReturnValue = Input("How many copies do you want to print?", NbCopies)
SWITCH ReturnValue 
CASE 0: Info("You have canceled. The default number is set to 1")
CASE 1: Info("You have requested " + NbCopies)
END
// Simplified input while using an input mask
PhoneNum is string
// Use an input mask
Input.InputMask = maskPhoneFrance
SWITCH Input("What is your phone number?", PhoneNum)
// OK
CASE 1: EDT_PhoneNum = PhoneNum 
// Cancel
CASE 0: EDT_PhoneNum = "No phone"
END
Comments is string
Comments = RepeatString(CR, 10)
// Comments entered by the user in a multi-line control
// Input limited to 140 characters
Input.InputMask = "regexp:.{0,140}"
SWITCH Input("Enter your comments.", Comments)
// OK
CASE 1: EDT_Comment = Comments
// Cancel
CASE 0: EDT_Comment = "No comment"
END
DisplayInfo is boolean = False
// Ask the user whether he really wants to close the application
// A checkmark ("Don't display this window anymore") allows the user
// not to display this question anymore
Input.OptionalCaption = "Don't display this window anymore"
IF DisplayInfo = False THEN
SWITCH Input("Do you want to close the application?", DisplayInfo)
// Close
CASE 1: Close()
END
END
// Remember to store the value of DisplayInfo for the next time

// Direct syntax
PhoneNum is string
IF Input("What is your phone number?", PhoneNum, ...
["Validate", "No phone", "Cancel"], 3, 3, dlgIconQuestion) = 1 THEN
Info(PhoneNum)
END












quarta-feira, 13 de julho de 2016

Curso WinDev - Funções Dialogo - 5/... - YesNo









Nessa aula vou ensinar como perguntar se vou gravar ou não

This class will teach how to ask whether I write or not

Cette classe vous apprendra comment demander si j'écris ou non

Video youtube

 

http://doc.windev.com/en-US/?3021005&name=yesno_function
http://doc.pcsoft.fr/fr-FR/?3021005&name=ouinon_fonction

http://doc.windev.com/en-US/?3021010&name=constants_for_managing_the_dialog_boxes

IF YesNo("Deseja gravar?") THEN
    //Comandos de Gravar
    Info("Gravar")
ELSE
    Info("Nao vou Gravar")   


Blog - WinDev - Curso Funções Dialogo - 001/... - Confirm
Blog - WinDev - Curso Funções Dialogo - 002/... - Okcancel
Blog - WinDev - Curso Funções Dialogo - 003/... - Message
Blog - WinDev - Curso Funções Dialogo - 004/... - toastDisplay
Blog - WinDev - Curso Funções Dialogo - 005/... - YesNo
Blog - WinDev - Curso Funções Dialogo - 006/... - Input
Blog - WinDev - Curso Funções Dialogo - 007/... - Error
Blog - WinDev - Curso Funções Dialogo - 008/... - Gauge
Blog - WinDev - Curso Funções dialogo - 009/... - Info 


// Exit choice
IF YesNo("Do you want to exit from the program?") = Yes THEN 
Close()
END















Teste

Teste
teste