Code: Select all
PROCEDURE EditForm(aStruc)
LOCAL i, iMax, cObj, cLabel
LOCAL cText, cType, nSize,nDec
iMax := LEN(aStruc)
DEFINE WINDOW Browse_Edit ;
AT 0,0 ;
WIDTH 300 ;
HEIGHT 600 ;
VIRTUAL WIDTH 999 ;
VIRTUAL HEIGHT 9999 ;
TITLE "" ;
ICON NIL ;
CURSOR NIL ;
ON INIT Nil ;
ON RELEASE Nil ;
ON INTERACTIVECLOSE Nil ;
ON MOUSECLICK Nil ;
ON MOUSEDRAG Nil ;
ON MOUSEMOVE Nil ;
ON SIZE NIL ;
ON MAXIMIZE NIL ;
ON MINIMIZE Nil ;
ON PAINT Nil ;
BACKCOLOR { 7, 7, 7 } ;
NOTIFYICON NIL ;
NOTIFYTOOLTIP NIL ;
ON NOTIFYCLICK Nil ;
ON GOTFOCUS Nil ;
ON LOSTFOCUS Nil ;
ON SCROLLUP Nil ;
ON SCROLLDOWN Nil ;
ON SCROLLLEFT Nil ;
ON SCROLLRIGHT Nil ;
ON HSCROLLBOX Nil ;
ON VSCROLLBOX Nil
FOR i := 1 TO iMax
cLabel := "LABEL"+STRZERO(i,3)
cObj := "TEXT_"+STRZERO(i,3)
nRow := 32 * (i-1)
nSize := aStruc[i][DBS_LEN]*11
cFIELD := aStruc[i][DBS_NAME]
DEFINE LABEL &cLabel
ROW nRow
COL 10
VALUE cFIELD
WIDTH 80
HEIGHT 30
BACKCOLOR { 0, 0, 0 }
FONTCOLOR { 0, 220, 220 }
END LABEL
cFIELD := "FIELD->" + aStruc[i][DBS_NAME]
DO CASE
CASE aStruc[i][DBS_TYPE] = "C"
DEFINE TEXTBOX &cObj
ROW nRow
COL 100
HEIGHT 30
FIELD &(cFIELD)
READONLY .F.
VALUE NIL
WIDTH nSize
INPUTMASK Nil
FORMAT Nil
FONTNAME "Arial"
FONTSIZE 10
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
TOOLTIP ""
BACKCOLOR { 0, 0, 0 }
FONTCOLOR { 0, 220, 220 }
DISABLEDBACKCOLOR Nil
DISABLEDFONTCOLOR Nil
DATATYPE CHARACTER
CASECONVERT NONE
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
ONENTER Nil
RIGHTALIGN .F.
VISIBLE .T.
TABSTOP .T.
HELPID Nil
END TEXTBOX
CASE aStruc[i][DBS_TYPE] = "N"
DEFINE TEXTBOX &cObj
ROW nRow
COL 100
HEIGHT 30
FIELD &(cFIELD)
READONLY .F.
VALUE NIL
WIDTH nSize
INPUTMASK Nil
FORMAT Nil
FONTNAME "Arial"
FONTSIZE 10
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
TOOLTIP ""
BACKCOLOR { 0, 0, 0 }
FONTCOLOR { 0, 220, 220 }
DISABLEDBACKCOLOR Nil
DISABLEDFONTCOLOR Nil
DATATYPE NUMERIC
CASECONVERT NONE
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
ONENTER Nil
RIGHTALIGN .F.
VISIBLE .T.
TABSTOP .T.
HELPID Nil
END TEXTBOX
CASE aStruc[i][DBS_TYPE] = "D"
DEFINE TEXTBOX &cObj
ROW nRow
COL 100
HEIGHT 30
FIELD &(cFIELD)
READONLY .F.
VALUE NIL
WIDTH nSize
FORMAT Nil
FONTNAME "Arial"
FONTSIZE 10
BACKCOLOR { 0, 0, 0 }
FONTCOLOR { 0, 220, 220 }
DATATYPE DATE
CASECONVERT NONE
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
ONENTER Nil
RIGHTALIGN .F.
VISIBLE .T.
TABSTOP .T.
HELPID Nil
END TEXTBOX
CASE aStruc[i][DBS_TYPE] = "L"
DEFINE CHECKBOX &cObj
ROW nRow
COL 100
CAPTION ""
HEIGHT 30
FIELD &(cFIELD)
WIDTH 50
BACKCOLOR { 0, 0, 0 }
FONTCOLOR { 0, 220, 220 }
VISIBLE .T.
TABSTOP .T.
END CHECKBOX
ENDCASE
NEXT
END WINDOW
ON KEY ESCAPE OF Browse_Edit ACTION Browse_Edit.Release
CENTER WINDOW Browse_Edit
ACTIVATE WINDOW Browse_Edit
RETURN
Code: Select all
PROCEDURE EditForm(aStruc)
LOCAL i, iMax, cObj, cLabel
LOCAL cText, cType, nSize,nDec
iMax := LEN(aStruc)
DEFINE WINDOW Browse_Edit ;
AT 0,0 ;
WIDTH 300 ;
HEIGHT 600 ;
VIRTUAL WIDTH 999 ;
VIRTUAL HEIGHT 9999 ;
TITLE "" ;
ICON NIL ;
CURSOR NIL ;
ON INIT Nil ;
ON RELEASE Nil ;
ON INTERACTIVECLOSE Nil ;
ON MOUSECLICK Nil ;
ON MOUSEDRAG Nil ;
ON MOUSEMOVE Nil ;
ON SIZE NIL ;
ON MAXIMIZE NIL ;
ON MINIMIZE Nil ;
ON PAINT Nil ;
BACKCOLOR { 7, 7, 7 } ;
NOTIFYICON NIL ;
NOTIFYTOOLTIP NIL ;
ON NOTIFYCLICK Nil ;
ON GOTFOCUS Nil ;
ON LOSTFOCUS Nil ;
ON SCROLLUP Nil ;
ON SCROLLDOWN Nil ;
ON SCROLLLEFT Nil ;
ON SCROLLRIGHT Nil ;
ON HSCROLLBOX Nil ;
ON VSCROLLBOX Nil
FOR i := 1 TO iMax
cLabel := "LABEL"+STRZERO(i,3)
cObj := "TEXT_"+STRZERO(i,3)
nRow := 32 * (i-1)
nSize := aStruc[i][DBS_LEN]*11
cFIELD := aStruc[i][DBS_NAME]
DEFINE LABEL &cLabel
ROW nRow
COL 10
VALUE cFIELD
WIDTH 80
HEIGHT 30
BACKCOLOR { 0, 0, 0 }
FONTCOLOR { 0, 220, 220 }
END LABEL
cFIELD := "FIELD->" + aStruc[i][DBS_NAME]
DO CASE
CASE aStruc[i][DBS_TYPE] = "C"
DEFINE TEXTBOX &cObj
ROW nRow
COL 100
HEIGHT 30
FIELD &(cFIELD)
READONLY .F.
VALUE NIL
WIDTH nSize
INPUTMASK Nil
FORMAT Nil
FONTNAME "Arial"
FONTSIZE 10
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
TOOLTIP ""
BACKCOLOR { 0, 0, 0 }
FONTCOLOR { 0, 220, 220 }
DISABLEDBACKCOLOR Nil
DISABLEDFONTCOLOR Nil
DATATYPE CHARACTER
CASECONVERT NONE
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
ONENTER Nil
RIGHTALIGN .F.
VISIBLE .T.
TABSTOP .T.
HELPID Nil
END TEXTBOX
CASE aStruc[i][DBS_TYPE] = "N"
DEFINE TEXTBOX &cObj
ROW nRow
COL 100
HEIGHT 30
FIELD &(cFIELD)
READONLY .F.
VALUE NIL
WIDTH nSize
INPUTMASK Nil
FORMAT Nil
FONTNAME "Arial"
FONTSIZE 10
FONTBOLD .F.
FONTITALIC .F.
FONTUNDERLINE .F.
FONTSTRIKEOUT .F.
TOOLTIP ""
BACKCOLOR { 0, 0, 0 }
FONTCOLOR { 0, 220, 220 }
DISABLEDBACKCOLOR Nil
DISABLEDFONTCOLOR Nil
DATATYPE NUMERIC
CASECONVERT NONE
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
ONENTER Nil
RIGHTALIGN .F.
VISIBLE .T.
TABSTOP .T.
HELPID Nil
END TEXTBOX
CASE aStruc[i][DBS_TYPE] = "D"
DEFINE TEXTBOX &cObj
ROW nRow
COL 100
HEIGHT 30
FIELD &(cFIELD)
READONLY .F.
VALUE NIL
WIDTH nSize
FORMAT Nil
FONTNAME "Arial"
FONTSIZE 10
BACKCOLOR { 0, 0, 0 }
FONTCOLOR { 0, 220, 220 }
DATATYPE DATE
CASECONVERT NONE
ONCHANGE Nil
ONGOTFOCUS Nil
ONLOSTFOCUS Nil
ONENTER Nil
RIGHTALIGN .F.
VISIBLE .T.
TABSTOP .T.
HELPID Nil
END TEXTBOX
CASE aStruc[i][DBS_TYPE] = "L"
DEFINE CHECKBOX &cObj
ROW nRow
COL 100
CAPTION ""
HEIGHT 30
FIELD &(cFIELD)
WIDTH 50
BACKCOLOR { 0, 0, 0 }
FONTCOLOR { 0, 220, 220 }
VISIBLE .T.
TABSTOP .T.
END CHECKBOX
ENDCASE
NEXT
END WINDOW
ON KEY ESCAPE OF Browse_Edit ACTION Browse_Edit.Release
CENTER WINDOW Browse_Edit
ACTIVATE WINDOW Browse_Edit
RETURN


]]>
]]>Code: Select all
if rcnt > 1500
VscrollBar .F.
endif
Code: Select all
if rcnt > 1500
VscrollBar .F.
endif
Code: Select all
cDir := GetFolder( cTitle, TRIM( cInitPath ),, lNewFolderButton )
IF !EMPTY( cDir )
IF RAT( "\", cDir ) <> LEN(cDir)
cDir += "\"
ENDIF
ExportDbf.Text_Path.value := cDir //+ "\" // add "\"
ENDIF
Code: Select all
cDir := GetFolder( cTitle, TRIM( cInitPath ),, lNewFolderButton )
IF !EMPTY( cDir )
IF RAT( "\", cDir ) <> LEN(cDir)
cDir += "\"
ENDIF
ExportDbf.Text_Path.value := cDir //+ "\" // add "\"
ENDIF
Code: Select all
SET PRINTER TO LPT2
SET DEVICE TO PRINTER
SET PRINTER ON
? some codes
? 'my text'
// now how send JPG to ?
Code: Select all
SET PRINTER TO LPT2
SET DEVICE TO PRINTER
SET PRINTER ON
? some codes
? 'my text'
// now how send JPG to ?
Code: Select all
#include "hmg.ch"
#include "bostaurus.ch"
FUNCTION Main()
LOCAL CImagep := "serg.png"
LOCAL Cimagej := "serg.jpg"
IF ! FILE( cImagep ) .OR. ! FILE( cimagej)
MsgInfo( "Image not found: " + cImage )
RETURN NIL
ENDIF
SELECT HPDFDOC 'P.PDF' PAPERLENGTH 60 PAPERWIDTH 40
START HPDFDOC
START HPDFPAGE
*SET HPDFDOC ENCODING TO "WinAnsiEncoding"
@ 5, 2 HPDFPRINT 'Hello Serg' size 12
@ 15,1 HPDFPRINT IMAGE cimagep WIDTH 30 HEIGHT 30 type PNG
@ 50, 10 HPDFPRINT 'Ping Style' size 12
@ 60 ,1 HPDFPRINT IMAGE cimagej WIDTH 30 HEIGHT 30 type JPG
@ 95, 10 HPDFPRINT 'Jpg Style' size 12
@ 125,2 HPDFPRINT 'Ping Style' SIZE 12
@ 115,40 HPDFPRINT IMAGE cimagep WIDTH 20 HEIGHT 20 type PNG
@ 150,2 HPDFPRINT 'Jpg Style' size 12
@ 140,40 HPDFPRINT IMAGE cimageJ WIDTH 20 HEIGHT 20 type JPG
END HPDFPAGE
END HPDFDOC
EXECUTE FILE 'P.PDF'
RETURN NIL
Code: Select all
#include "hmg.ch"
#include "bostaurus.ch"
FUNCTION Main()
LOCAL CImagep := "serg.png"
LOCAL Cimagej := "serg.jpg"
IF ! FILE( cImagep ) .OR. ! FILE( cimagej)
MsgInfo( "Image not found: " + cImage )
RETURN NIL
ENDIF
SELECT HPDFDOC 'P.PDF' PAPERLENGTH 60 PAPERWIDTH 40
START HPDFDOC
START HPDFPAGE
*SET HPDFDOC ENCODING TO "WinAnsiEncoding"
@ 5, 2 HPDFPRINT 'Hello Serg' size 12
@ 15,1 HPDFPRINT IMAGE cimagep WIDTH 30 HEIGHT 30 type PNG
@ 50, 10 HPDFPRINT 'Ping Style' size 12
@ 60 ,1 HPDFPRINT IMAGE cimagej WIDTH 30 HEIGHT 30 type JPG
@ 95, 10 HPDFPRINT 'Jpg Style' size 12
@ 125,2 HPDFPRINT 'Ping Style' SIZE 12
@ 115,40 HPDFPRINT IMAGE cimagep WIDTH 20 HEIGHT 20 type PNG
@ 150,2 HPDFPRINT 'Jpg Style' size 12
@ 140,40 HPDFPRINT IMAGE cimageJ WIDTH 20 HEIGHT 20 type JPG
END HPDFPAGE
END HPDFDOC
EXECUTE FILE 'P.PDF'
RETURN NIL
Code: Select all
#include "hmg.ch"
#include "bostaurus.ch"
FUNCTION Main()
LOCAL cPrinter := 'default' , LSUCCESS
LOCAL CImagep := "serg.png"
LOCAL Cimagej := "serg.jpg"
IF ! FILE( cImagep ) .OR. ! FILE( cimagej)
MsgInfo( "Image not found: " + cImage )
RETURN NIL
ENDIF
SELECT HPDFDOC 'P.PDF' PAPERLENGTH 60 PAPERWIDTH 40
START HPDFDOC
START HPDFPAGE
*SET HPDFDOC ENCODING TO "WinAnsiEncoding"
@ 5, 10 HPDFPRINT 'Hello Serg' size 16
@ 15,1 HPDFPRINT IMAGE cimagep WIDTH 30 HEIGHT 30 type PNG
@ 50, 10 HPDFPRINT 'Ping Style' size 16
@ 60 ,1 HPDFPRINT IMAGE cimagej WIDTH 30 HEIGHT 30 type JPG
@ 95, 10 HPDFPRINT 'Jpg Style' size 16
END HPDFPAGE
END HPDFDOC
EXECUTE FILE 'P.PDF'
RETURN NIL
Code: Select all
#include "hmg.ch"
#include "bostaurus.ch"
FUNCTION Main()
LOCAL cPrinter := 'default' , LSUCCESS
LOCAL CImagep := "serg.png"
LOCAL Cimagej := "serg.jpg"
IF ! FILE( cImagep ) .OR. ! FILE( cimagej)
MsgInfo( "Image not found: " + cImage )
RETURN NIL
ENDIF
SELECT HPDFDOC 'P.PDF' PAPERLENGTH 60 PAPERWIDTH 40
START HPDFDOC
START HPDFPAGE
*SET HPDFDOC ENCODING TO "WinAnsiEncoding"
@ 5, 10 HPDFPRINT 'Hello Serg' size 16
@ 15,1 HPDFPRINT IMAGE cimagep WIDTH 30 HEIGHT 30 type PNG
@ 50, 10 HPDFPRINT 'Ping Style' size 16
@ 60 ,1 HPDFPRINT IMAGE cimagej WIDTH 30 HEIGHT 30 type JPG
@ 95, 10 HPDFPRINT 'Jpg Style' size 16
END HPDFPAGE
END HPDFDOC
EXECUTE FILE 'P.PDF'
RETURN NIL
Code: Select all
#include "hmg.ch"
Function Main()
SELECT HPDFDOC "sample.pdf" PAPERLENGTH 300 PAPERWIDTH 300 LOG
START HPDFDOC
START HPDFPAGE
SET HPDFDOC ENCODING TO "WinAnsiEncoding"
@ 10,20 HPDFPRINT "I want Euro sign here: "+CHR(128)
@ 20,20 HPDFPRINT "I want this STRIKEOUT (not working)" STRIKEOUT
@ 18,67 HPDFPRINT "_________" // COLOR { 51, 255, 255 }
@ 20,92 HPDFPRINT "<---- This line was drawing to simulate a baseline (made manually)" SIZE 9 COLOR { 0, 0, 255 }
@ 30,20 HPDFPRINT "I want this italic" ITALIC
@ 40,20 HPDFPRINT "I want this bold" BOLD
@ 50,20 HPDFPRINT "I want this UNDERLINE (not working)" UNDERLINE
@ 50,67 HPDFPRINT "_________" // COLOR { 255, 0, 0 }
@ 52,92 HPDFPRINT "<---- This line was drawing to simulate a baseline (made manually)" SIZE 9 COLOR { 0, 0, 255 }
@ 60,20 HPDFPRINT "I have HMG 3.2.1 (stable) in Courier-Bold" FONT "Courier-Bold"
@ 80, 10 HPDFPRINT "This is a sample Text in default font in ITALIC." ITALIC
@ 90, 10 HPDFPRINT "This is a sample Text in default font in BOLD." BOLD
@ 100, 10 HPDFPRINT "This is a sample Text in Arial or Helvetica font in ITALIC." FONT "aRIAL" SIZE 14 ITALIC
@ 110, 10 HPDFPRINT "This is a sample Text in Arial or Helvetica font in BOLD and ITALIC." FONT "aRIAL" SIZE 14 BOLD ITALIC
*@ 120, 10 hpdfprint image 'img.jpg' TYPE JPG width 40 height 40' size 10 // (((YOU CAN USE IF YOU HAVE A .JPG PICTURE.)))
* @ 120, 10 HPDFPRINT "This is a sample Text in Times-Roman font in ITALIC with size 8" font "TIMES-ROMAN" SIZE 8 ITALIC
@ 135, 200 HPDFPRINT "This is right aligned text" SIZE 14 RIGHT
@ 150, 105 HPDFPRINT "This is center aligned text" COLOR { 255, 0, 0 } CENTER
@ 170, 100 HPDFPRINT "This is text in bigger font size" SIZE 30 COLOR { 255, 0, 0 }
@ 190, 10 HPDFPRINT "The font is Tscparan.TTF" size 12
END HPDFPAGE
END HPDFDOC
Execute File 'sample.pdf'
Return Nil
Code: Select all
#include "hmg.ch"
Function Main()
SELECT HPDFDOC "sample.pdf" PAPERLENGTH 300 PAPERWIDTH 300 LOG
START HPDFDOC
START HPDFPAGE
SET HPDFDOC ENCODING TO "WinAnsiEncoding"
@ 10,20 HPDFPRINT "I want Euro sign here: "+CHR(128)
@ 20,20 HPDFPRINT "I want this STRIKEOUT (not working)" STRIKEOUT
@ 18,67 HPDFPRINT "_________" // COLOR { 51, 255, 255 }
@ 20,92 HPDFPRINT "<---- This line was drawing to simulate a baseline (made manually)" SIZE 9 COLOR { 0, 0, 255 }
@ 30,20 HPDFPRINT "I want this italic" ITALIC
@ 40,20 HPDFPRINT "I want this bold" BOLD
@ 50,20 HPDFPRINT "I want this UNDERLINE (not working)" UNDERLINE
@ 50,67 HPDFPRINT "_________" // COLOR { 255, 0, 0 }
@ 52,92 HPDFPRINT "<---- This line was drawing to simulate a baseline (made manually)" SIZE 9 COLOR { 0, 0, 255 }
@ 60,20 HPDFPRINT "I have HMG 3.2.1 (stable) in Courier-Bold" FONT "Courier-Bold"
@ 80, 10 HPDFPRINT "This is a sample Text in default font in ITALIC." ITALIC
@ 90, 10 HPDFPRINT "This is a sample Text in default font in BOLD." BOLD
@ 100, 10 HPDFPRINT "This is a sample Text in Arial or Helvetica font in ITALIC." FONT "aRIAL" SIZE 14 ITALIC
@ 110, 10 HPDFPRINT "This is a sample Text in Arial or Helvetica font in BOLD and ITALIC." FONT "aRIAL" SIZE 14 BOLD ITALIC
*@ 120, 10 hpdfprint image 'img.jpg' TYPE JPG width 40 height 40' size 10 // (((YOU CAN USE IF YOU HAVE A .JPG PICTURE.)))
* @ 120, 10 HPDFPRINT "This is a sample Text in Times-Roman font in ITALIC with size 8" font "TIMES-ROMAN" SIZE 8 ITALIC
@ 135, 200 HPDFPRINT "This is right aligned text" SIZE 14 RIGHT
@ 150, 105 HPDFPRINT "This is center aligned text" COLOR { 255, 0, 0 } CENTER
@ 170, 100 HPDFPRINT "This is text in bigger font size" SIZE 30 COLOR { 255, 0, 0 }
@ 190, 10 HPDFPRINT "The font is Tscparan.TTF" size 12
END HPDFPAGE
END HPDFDOC
Execute File 'sample.pdf'
Return Nil
Code: Select all
// whatsapp app must be installed and opened before running this code
#include "FiveWin.ch"
#define ORANGES "https://www.jesmondfruitbarn.com.au/wp-content/uploads/2016/10/Jesmond-Fruit-Barn-Oranges.jpg"
function Main()
local cPhone := ""
local cMsg := "Hello"
if EDITVARS cPhone, cMsg
SendToWhatsApp( AllTrim( cPhone ), AllTrim( cMsg ), ;
{ "tutor01.prg", "..\bitmaps\007.bmp", ORANGES, ;
"https://www.google.co.in/" } )
endif
return nil
function SendToWhatsApp( cPhone, cMsg, aAttach )
local oShell
local aFiles := {}
local aOthers := {}
if Empty( cPhone ); return .f.; endif
DEFAULT cMsg := "Hello"
if !Empty( aAttach )
if !HB_ISARRAY( aAttach ); aAttach := { aAttach }; endif
AEval( aAttach, {|c| if( HB_ISSTRING( c ) .and. File( c ), ;
AAdd( aFiles, c ), AAdd( aOthers, c ) ) } )
endif
cMsg := StrTran( cMsg, CRLF, "%0D%0A" )
oShell := CreateObject( "WScript.Shell" )
ShellExecute( 0, "Open", "whatsapp://send?phone="+cPhone+"&text="+cMsg )
SysWait( 0.5 )
if !Empty( aFiles )
if FW_CopyToClipBoard( aFiles, 15 )
SysWait( 2 ); oShell:SendKeys( "^v" ); SysWait( 1 )
endif
endif
AEval( aOthers, <|u|
if FW_CopyToClipBoard( u, 2 ) .or. FW_CopyToClipBoard( u )
SysWait( 1 ); oShell:SendKeys( "^v" ); SysWait( 1 )
endif
return nil
> )
oShell:SendKeys("~")
return nil
Code: Select all
// whatsapp app must be installed and opened before running this code
#include "FiveWin.ch"
#define ORANGES "https://www.jesmondfruitbarn.com.au/wp-content/uploads/2016/10/Jesmond-Fruit-Barn-Oranges.jpg"
function Main()
local cPhone := ""
local cMsg := "Hello"
if EDITVARS cPhone, cMsg
SendToWhatsApp( AllTrim( cPhone ), AllTrim( cMsg ), ;
{ "tutor01.prg", "..\bitmaps\007.bmp", ORANGES, ;
"https://www.google.co.in/" } )
endif
return nil
function SendToWhatsApp( cPhone, cMsg, aAttach )
local oShell
local aFiles := {}
local aOthers := {}
if Empty( cPhone ); return .f.; endif
DEFAULT cMsg := "Hello"
if !Empty( aAttach )
if !HB_ISARRAY( aAttach ); aAttach := { aAttach }; endif
AEval( aAttach, {|c| if( HB_ISSTRING( c ) .and. File( c ), ;
AAdd( aFiles, c ), AAdd( aOthers, c ) ) } )
endif
cMsg := StrTran( cMsg, CRLF, "%0D%0A" )
oShell := CreateObject( "WScript.Shell" )
ShellExecute( 0, "Open", "whatsapp://send?phone="+cPhone+"&text="+cMsg )
SysWait( 0.5 )
if !Empty( aFiles )
if FW_CopyToClipBoard( aFiles, 15 )
SysWait( 2 ); oShell:SendKeys( "^v" ); SysWait( 1 )
endif
endif
AEval( aOthers, <|u|
if FW_CopyToClipBoard( u, 2 ) .or. FW_CopyToClipBoard( u )
SysWait( 1 ); oShell:SendKeys( "^v" ); SysWait( 1 )
endif
return nil
> )
oShell:SendKeys("~")
return nil
Code: Select all
#include "hmg.ch"
// whatsapp app must be installed and opened before running this code
#define ORANGES "https://www.jesmondfruitbarn.com.au/wp-content/uploads/2016/10/Jesmond-Fruit-Barn-Oranges.jpg"
FUNCTION Main()
LOCAL cPhone := ""
LOCAL cMsg := "Hello"
cPhone := InputBox( "Telefoonnummer", "WhatsApp", "" )
IF Empty( cPhone )
RETURN NIL
ENDIF
cMsg := InputBox( "Bericht", "WhatsApp", "Hello" )
SendToWhatsApp( AllTrim( cPhone ), AllTrim( cMsg ), ;
{ "C:\bols\bols.dbf", ;
"C:\bols\confirmQR.jpg"} )
//ORANGES, ;
//"https://www.google.com/" } )
RETURN NIL
FUNCTION SendToWhatsApp( cPhone, cMsg, aAttach )
LOCAL oShell
LOCAL aFiles := {}
LOCAL aOthers := {}
LOCAL cItem
IF Empty( cPhone )
RETURN .F.
ENDIF
DEFAULT cMsg := "Hello"
IF HB_ISARRAY( aAttach )
FOR EACH cItem IN aAttach
IF HB_ISSTRING( cItem ) .AND. File( cItem )
AAdd( aFiles, cItem )
ELSE
AAdd( aOthers, cItem )
ENDIF
NEXT
ENDIF
cMsg := StrTran( cMsg, CRLF, "%0D%0A" )
// WhatsApp openen
ShellExecute( 0, "open", ;
"whatsapp://send?phone=" + cPhone + "&text=" + cMsg, ;
NIL, NIL, 1 )
hb_idleSleep( 0.5 )
oShell := CreateObject( "WScript.Shell" )
// Bestanden plakken
IF Len( aFiles ) > 0
CopyFilesToClipboard( aFiles )
hb_idleSleep( 2 )
oShell:SendKeys( "^v" )
hb_idleSleep( 1 )
ENDIF
// URL's / tekst
FOR EACH cItem IN aOthers
System.Clipboard := cItem
hb_idleSleep( 1 )
oShell:SendKeys( "^v" )
hb_idleSleep( 1 )
NEXT
// Enter = verzenden
oShell:SendKeys( "~" )
RETURN .T.
FUNCTION CopyFilesToClipboard( aFiles )
LOCAL cList := ""
AEval( aFiles, {|c| cList += '"' + c + '"' + CRLF } )
System.Clipboard := cList
RETURN NIL
Code: Select all
#include "hmg.ch"
// whatsapp app must be installed and opened before running this code
#define ORANGES "https://www.jesmondfruitbarn.com.au/wp-content/uploads/2016/10/Jesmond-Fruit-Barn-Oranges.jpg"
FUNCTION Main()
LOCAL cPhone := ""
LOCAL cMsg := "Hello"
cPhone := InputBox( "Telefoonnummer", "WhatsApp", "" )
IF Empty( cPhone )
RETURN NIL
ENDIF
cMsg := InputBox( "Bericht", "WhatsApp", "Hello" )
SendToWhatsApp( AllTrim( cPhone ), AllTrim( cMsg ), ;
{ "C:\bols\bols.dbf", ;
"C:\bols\confirmQR.jpg"} )
//ORANGES, ;
//"https://www.google.com/" } )
RETURN NIL
FUNCTION SendToWhatsApp( cPhone, cMsg, aAttach )
LOCAL oShell
LOCAL aFiles := {}
LOCAL aOthers := {}
LOCAL cItem
IF Empty( cPhone )
RETURN .F.
ENDIF
DEFAULT cMsg := "Hello"
IF HB_ISARRAY( aAttach )
FOR EACH cItem IN aAttach
IF HB_ISSTRING( cItem ) .AND. File( cItem )
AAdd( aFiles, cItem )
ELSE
AAdd( aOthers, cItem )
ENDIF
NEXT
ENDIF
cMsg := StrTran( cMsg, CRLF, "%0D%0A" )
// WhatsApp openen
ShellExecute( 0, "open", ;
"whatsapp://send?phone=" + cPhone + "&text=" + cMsg, ;
NIL, NIL, 1 )
hb_idleSleep( 0.5 )
oShell := CreateObject( "WScript.Shell" )
// Bestanden plakken
IF Len( aFiles ) > 0
CopyFilesToClipboard( aFiles )
hb_idleSleep( 2 )
oShell:SendKeys( "^v" )
hb_idleSleep( 1 )
ENDIF
// URL's / tekst
FOR EACH cItem IN aOthers
System.Clipboard := cItem
hb_idleSleep( 1 )
oShell:SendKeys( "^v" )
hb_idleSleep( 1 )
NEXT
// Enter = verzenden
oShell:SendKeys( "~" )
RETURN .T.
FUNCTION CopyFilesToClipboard( aFiles )
LOCAL cList := ""
AEval( aFiles, {|c| cList += '"' + c + '"' + CRLF } )
System.Clipboard := cList
RETURN NIL