BCX Console Demonstration Program s71.bas

 ' -------------------------------------------------------- 
 '              Clip by Kevin Diggins (C) 2000 
 '        Copies a text file to the Windows clipboard 
 ' -------------------------------------------------------- 
 
 DIM OrigCodePage%
 OrigCodePage% = GetConsoleOutputCP()
 SetConsoleOutputCP(437)
 
 DIM Fsize AS LONGLONG      'Size of file in bytes 
 DIM Test                   'Test if the filename EXIST's 
 DIM FilName$
 CLS
 
 IF COMMAND$ = "" THEN
   PRINT "�����������������������������������������������������Ŀ"
   PRINT "� Clip!   A Win32 command line clipboard utility      �"
   PRINT "� Usage:  Clip!  Filename  ( LongFileNames Allowed)   �"
   PRINT "� Copy any text file to the Windows clipboard FAST!   �"
   PRINT "� Freeware by Kevin Diggins -- created using BCX!     �"
   PRINT "�             BCX - The free BASIC to C               �"
   PRINT "�������������������������������������������������������"
   END
 END IF
 
 FilName$ = COMMAND$
 Test = EXIST(FilName$)           ' Does it exist? 
 IF Test = 0 THEN                  ' Nope ... 
   PRINT "File Not Found"
   END                             ' Exit stage left 
 END IF
 Fsize = LOF(FilName$)            'How big is the file? 
 
 DIM Buffer$ * Fsize + 10         'Create a buffer at least that big 
 
 Buffer$ = ""                     'initialize it 
 GetFile(FilName$, Buffer$, Fsize)
 SetClipBoard(Buffer$)            'Place it on the clipboard 
 FREE Buffer$                      'release allocated memory back to Windows 
 
 PRINT "�����������������������������������������������������Ŀ"
 PRINT "� Clip!   A Win32 command line clipboard utility      �"
 PRINT "� Usage:  Clip!  Filename  ( LongFileNames Allowed)   �"
 PRINT "� Copy any text file to the Windows clipboard FAST!   �"
 PRINT "� Freeware by Kevin Diggins -- created using BCX!     �"
 PRINT "�             BCX - The free BASIC to C               �"
 PRINT "�������������������������������������������������������"
 COLOR 4, 0
 PRINT "        ", Fsize, " bytes sent to the clipboard!"
 COLOR 7, 0
 
 PAUSE
 SetConsoleOutputCP(OrigCodePage)
 '--------------------------------------------------------------------------- 
 
 SUB SetClipBoard (Text$)
   LOCAL nd  AS HANDLE
   LOCAL ns$ AS LPSTR
   nd  = GlobalAlloc(GHND, LEN(Text$) + 1)
   ns  = (LPSTR)GlobalLock(nd)
   ns$ = Text$
   GlobalUnlock(nd)
   OpenClipboard(0)
   EmptyClipboard()
   SetClipboardData(CF_TEXT, nd)
   CloseClipboard()
 END SUB
 
 SUB GetFile(Fname$, Buffer$, Count)
   ' ------------------------------------------------------ 
   '   Assumes a valid Filename to a file that exists 
   '   and a Buffer large enough to hold Count bytes 
   ' ------------------------------------------------------- 
   DIM dwRead AS DWORD
   DIM H    AS HANDLE
   H = CreateFile(Fname, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, 0);
   ReadFile(H, Buffer$, Count, &dwRead, NULL)
   CloseHandle(H)
 END SUB

Result:


 Result not displayed for this example.