Using Win32 functions in Visual FoxPro Image Gallery
Code examples:
Retrieving the state of your Internet connection
Simple printer queue monitor: deletes, pauses, resumes print jobs for local printer
Starting a dialog box for connecting to network resources (mapping network drive)
Testing Clipboard functions: emptying the clipboard
Using the DrawText function
Adding printer to the list of supported printers for the specified server
Bitmap Class for Visual FoxPro application
Converting a hexadecimal string to an integer
Creating irregularly shaped FoxPro form using transparency color key
Creating the Open dialog box to specify the drive, directory, and name of a file to open
Creating two-byte hashes for a list of URLs
Dynamic strings implemented through VFP Custom class
How to adjust monitor brightness (Vista, monitor with DDC support)
How to display a dialog box with which the user can add a data source (DSN)
How to display a user-defined icon in the MessageBox dialog
How to enumerate sessions and processes on a specified terminal server
Reading parameters of streams in AVI file
Saving local machine ODBC Registry Entries to XML file
Using EnumPrinters function to enumerate locally installed printers
Winsock: connecting to a news server (NNTP, port 119)
Configuring DEVMODE structure for a printer
Drawing cursors for the classes defined by the system (preregistered): BUTTON, EDIT, LISTBOX etc.
Enumerating printer drivers installed
Enumerating Processes -- WinNT
Using Shell for performing operations on files

User rating: 10/10 (1 votes)
Rate this code sample:
  • ~
More code examples    Listed functions    Add comment     W32 Constants      Translate this page Printer friendly version of this code sample
click to open
Before you begin:
Select valid file and directory names before testing this code.

Other code samples you might be interested in:
  • Running external applications from VFP using WinExec
  • Running external applications from VFP using CreateProcess
  • Running an external program from FoxPro and waiting for its termination
  • How to Start a Process as Another User (NT/XP/2K)

        DECLARE INTEGER GetSystemDirectory IN kernel32;
            STRING @lpBuffer, INTEGER nSize
        DECLARE INTEGER ShellExecute IN shell32;
            INTEGER hWindow, STRING lpOperation,;
            STRING lpFile, STRING lpParameters,;
            STRING lpDirectory, INTEGER nShowCmd
        * opens data files with their associated applications
    *    = ShellExecute(0, "open", "c:\aa\index.mdb", "", "", SW_SHOWMAXIMIZED)
    *    = ShellExecute(0, "open", "c:\aa\aa.bmp", "", "", SW_SHOWMAXIMIZED)
    *    = ShellExecute(0, "open", "c:\aa\lacrymosa.mp3", "", "", SW_SHOWMAXIMIZED)
    *    = ShellExecute(0, "open", "c:\aa\mkart.doc", "", "", SW_SHOWMAXIMIZED)
    *    = ShellExecute(0, "open", "c:\aa\aa.txt", "", "", SW_SHOWMAXIMIZED)
        * opens a folder
    *    = ShellExecute(0, "explore", "c:\Temp", "", "", SW_SHOWMAXIMIZED)
        * open Search window starting from the specified directory
    *    = ShellExecute(0, "find", "", "", getSysDir(), SW_SHOWMAXIMIZED)
        * prints the text file using the associated application
    *    = ShellExecute(0, "print", "c:\aa\index.txt", "", "", SW_SHOWMAXIMIZED)
        * accessing a site on the Internet
    *    = ShellExecute(0, "open", "",;
    *        "", "", SW_SHOWMAXIMIZED)
        * sending an email: 
        * Mike Lewis,
        LOCAL lcMail
        lcMail = "" +;
            "? for lunch" +;
            "&Body=Please join me for a sandwich at noon."
        = ShellExecute(0, "open", lcMail, "", "", SW_SHOWNORMAL)
    FUNCTION GetSysDir
        lpBuffer = SPACE(250) 
        nSizeRet = GetSystemDirectory(@lpBuffer, Len(lpBuffer)) 
    RETURN SUBSTR(lpBuffer, 1, nSizeRet) 

    User rating: 10/10 (1 votes)
    Rate this code sample:
    • ~
    1708 bytes  
    Created: 2001-08-06 12:00:00  
    Modified: 2008-10-03 15:25:57  
    Visits in 7 days: 18  
    Listed functions:
    Printer friendly API declarations
    My comment:
    There is one more action type -- EDIT.

    For some actions failed, GetLastError returns() value 1155, that means ERROR_NO_ASSOCIATION | No application is associated with the specified file for this operation..

    HOWTO: Use ShellExecute to Launch Associated File (32-bit) (Q170918).

    Tip 168: Using the ShellExecute Function to Print Files.

    An easy way sending emails from a Visual FoxPro application -- an article of Mike Lewis.

    VBNet: Sending Large Emails via ShellExecute.

    #kwd: sln_sendemail.
    Word Index links for this example:
    Translate this page:
      Spanish    Portuguese    German    French    Italian offers instant, free translations of text or web pages.
    User Contributed Notes:
    A.M. | 2007-01-24 09:06:50
    Include "printto" verb:
    lretval=ShellExecute(0, "Printto", (lfilename), ["]+SET('PRINTER',3)+["], 0,1),15,1188377

    Copyright 2001-2015 News2News, Inc. Before reproducing or distributing any data from this site please ask for an approval from its owner. Unless otherwise specified, this page is for your personal and non-commercial use. The information on this page is presented AS IS, meaning that you may use it at your own risk. Microsoft Visual FoxPro and Windows are trade marks of Microsoft Corp. All other trademarks are the property of their respective owners. 

    Privacy policy
    Credits: PHP (4.4.9), an HTML-embedded scripting language, MySQL (5.5.46), the Open Source standard SQL database, AceHTML Freeware Version 4, freeware HTML Editor of choice.   Hosted by Korax Online Inc.
    Last Topics Visited (
    13 sec.Function: 'NetUserGetGroups'
    Function group: 'Network Management'
    35 sec.Function: 'GetOpenFileName'
    Advertise here!