想在应用程序中调用系统自带的计算器和日期程序
想到用shell调用
但是在不同的操作系统下如何获得系统目录啊?
计算器的可执行程序文件名称是calc.exe
显示日期的是哪个可执行程序啊?
多谢!

解决方案 »

  1.   

    如果程序在系统目录下直接shell "文件名",1就可以了,你要想得到系统目录吗?用:
    得到System目录:
    VB声明 
    Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long 
    说明 
    这个函数能取得Windows系统目录(System目录)的完整路径名。在这个目录中,包含了所有必要的系统文件。根据微软的标准,其他定制控件和一些共享组件也可放到这个目录。通常应避免在这个目录里创建文件。在网络环境中,往往需要管理员权限才可对这个目录进行写操作 
    返回值 
    Long,装载到lpBuffer缓冲区的字符数量。如lpBuffer不够大,不能容下文件名,则返回要求的缓冲区长度 
    参数表 
    参数 类型及说明 
    lpBuffer String,用于装载系统目录路径名的一个字串缓冲区。它应事先初始化成nSize+1个字符的长度。通常至少要为这个缓冲区分配MAX_PATH个字符的长度 
    nSize Long,lpBuffer字串的最大长度 得到Windows目录:
    Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long 
    说明 
    这个函数能获取Windows目录的完整路径名。在这个目录里,保存了大多数windows应用程序文件及初始化文件 
    返回值 
    Long,复制到lpBuffer的一个字串的长度。如lpBuffer不够大,不能容下整个字串,就会返回lpBuffer要求的长度。零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    lpBuffer String,指定一个字串缓冲区,用于装载Windows目录名。除非是根目录,否则目录中不会有一个中止用的“\”字符 
    nSize Long,lpBuffer字串的最大长度 得到临时文件目录:
    Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 
    说明 
    获取为临时文件指定的路径 
    返回值 
    Long,装载到lpBuffer的字符数。如当前缓冲区的长度不够,不能容下整个路径,则返回lpBuffer需要的长度。零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    nBufferLength Long,lpBuffer字串的长度 
    lpBuffer String,用于装载临时文件路径的一个预初始化字串 
    注解 
    临时路径是由TMP环境变量指定的一个路径。如TMP不存在,则是由TEMP环境变量指定的路径。如果这两个环境变量都不存在,就是当前目录
     
      

  2.   

    或者用API函数
    例如:
    Public Declare Function WinExec Lib "kernel32" (ByVal lpCmdLine As String, ByVal nCmdShow As Long) As Longregstr = "c:\windows\notepad.exe"
    value = WinExec(regstr, SW_SHOWMAXMIZED)
      

  3.   

    系统目录下的东西直接用 shell "calc.exe"
      

  4.   

    先在程序中加入如下的声明后,就能引用这个API函数:
      Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long  其中各个参数的意义如下表所示:参数  意义  
    hwnd Long,指定一个窗口的句柄,有时windows程序要在创建自己的主窗口前显示一个消息框 
    lpOperation String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它 
    lpFile String,想用关联程序打印或打开一个程序名或文件名 
    lpParameters String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数 
    lpDirectory String,想使用的完整路径 
    nShowCmd Long,定义了如何显示启动程序的常数值 Call ShellExecute(Form1.hwnd, "open", "c:\windows\calc.exe", vbNullString, vbNullString, &H0)