我们知道,在设计界面中对数据库控件的ODBC数据源设置非常方便,现在需要在程序运行的时候也能达到这个效果:弹出odbc设置界面让用户设置,设好后将设置的参数取到程序变量中,用这个变量去打开数据源。

解决方案 »

  1.   

    winexec('%SystemRoot%\system32\odbcad32.exe',1)
      

  2.   


     还要吗?winexec('rundll32.exe shell32.dll, Control_RunDLL', 9);
     {辅助选项 属性-键盘}
     winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 1', 9);
     {辅助选项 属性-声音}
     winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 2', 9);
     {辅助选项 属性-显示}
     winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 3', 9);
     {辅助选项 属性-鼠标}
     winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 4', 9);
     {辅助选项 属性-常规}
     winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 5', 9);
     {添加/删除程序 属性-安装/卸载}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 1', 9);
     {添加/删除程序 属性-Windows安装程序}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 2', 9);
     {添加/删除程序 属性-启动盘}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 3', 9);
     {显示 属性-背景}
     winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 0', 9); 
     {显示 属性-屏幕保护程序}
     winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 1', 9);
     {显示 属性-外观}
     winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 2', 9);
     {显示 属性-设置}
     winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 3', 9);
     {Internet 属性-常规}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 0', 9);
     {Internet 属性-安全}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 1', 9);
     {Internet 属性-内容}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 2', 9);
     {Internet 属性-连接}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 3', 9);
     {Internet 属性-程序}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 4', 9);
     {Internet 属性-高级}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 5', 9);
     {区域设置 属性-区域设置}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 0', 9);
     {区域设置 属性-数字}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 1', 9);
     {区域设置 属性-货币}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 2', 9);
     {区域设置 属性-时间}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 3', 9);
     {区域设置 属性-日期}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 4', 9);
     {游戏控制器-一般}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Joy.cpl, 0', 9);
     {游戏控制器-高级}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Joy.cpl, 1', 9);
     {鼠标 属性}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Main.cpl', 9);
     {多媒体 属性-音频}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 0', 9);
     {多媒体 属性-视频}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 1', 9);
     {多媒体 属性-MIDI}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 2', 9);
     {多媒体 属性-CD音乐}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 3', 9);
     {多媒体 属性-设备}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 4', 9);
     {调制解调器 属性}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Modem.cpl', 9);
     {网络}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Netcpl.cpl', 9);
     {密码 属性}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Password.cpl', 9);
     {扫描仪与数字相机 属性}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Sticpl.cpl', 9);
     {系统 属性-常规}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 0', 9);
     {系统 属性-设备管理器}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 1', 9);
     {系统 属性-硬件配置文件}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 2', 9);
     {系统 属性-性能}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 3', 9);
     {日期/时间 属性}
     winexec('rundll32.exe shell32.dll, Control_RunDLL timedate.cpl', 9);
     {电源管理 属性}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Powercfg.cpl', 9);
     {拨号属性}
     winexec('rundll32.exe shell32.dll, Control_RunDLL Telephon.cpl', 9);  关于调用后的判断处理建议:  先声明一个cardinal类型的变量RtnCardinal获取返回值进行判断如:
      
      RtnCardinal := winexec('rundll32.exe shell32.dll, Control_RunDLL Telephon.cpl', 9); 返回值                              可能原因 0                                   程序超出内存   ERROR_BAD_FORMAT                    程序为一个非法的Win32.EXE程序 ERROR_FILE_NOT_FOUND                指定文件没找到
     
      ERROR_PATH_NOT_FOUND                指定路径没找到