完全可行。你可以用 Windows API 获取系统的临时目录,然后在程序中指定工作目录为系统临时目录。或者在你的安装程序中直接把你的程序拷贝到一硬盘目录中,运行硬盘上的程序。

解决方案 »

  1.   

    有很多光盘都是可以自动运行的,加上个Autorun.inf不就可以了吗。
    另外启动程序也可以用这.inf来控制。至于临时目录就更简单,随便把数据库拷到什么地方都可以吗。
    --又怎么样来控制临时文件就产生在该安装目录中呢?
    在目标机器的注册表里或者创建一.ini文件,每次运行前都看看不就可以了吗~~
      

  2.   

    在Autorun.inf中加上[autorun]
    open=setup.exe
    icon=setup.ico
      

  3.   

    回复:liubingqian(乾乾) 
    //完全可行。你可以用 Windows API 获取系统的临时目录,然后在程序中
    //指定工作目录为系统临时目录。或者在你的安装程序中直接把你的程序拷
    //贝到一硬盘目录中,运行硬盘上的程序。有没有相关技术文档怎么利用API来获得临时目录,然后又制定其为工作目录呢?我是个菜鸟啊,能不能说得详细一点?
      

  4.   

    还是不懂啊,能不能写个例子在上边啊?或者发到[email protected]中,很急,先谢谢了!
      

  5.   

    系统临时目录我可以用GetTempPath来获得,但怎么让Delphi的临时文件产生到系统临时目录中去呢?
      

  6.   

    明白你的意思!你说的是像用ADO打开access数据库时产生的临时文件?RIGHT?
    那只能把数据库拷到临时目录运行了!
      

  7.   

    我是将数据库跟编译后的程序放在同一目录下,这样就可以不用BDE的安装和配置了,如果将数据库放在临时目录中运行那岂不是每台机器上运行光盘都得配置BDE了??
      

  8.   

    不用这样。如果你的数据是只读不写(改)的话,那么对于BDE,只要在FormCreate事件中加上一句
    Session.NetFileDir:='c:\';
    就可以了。
      

  9.   

    说得确定点儿,你是用的BDE还是ODBC还是ADO?数据库是什么(Access,Paradox,Foxpro,db...)?
      

  10.   

    你用 SetCurrentDir() 试一下,这就是工作目录。
      

  11.   

    回复: li_zhifu(东北人)
        十分感谢你的提示,你说得命令应该是改变网络目录之类的。但是如果改成:
        session.PrivateDir:='C:\';的话,就解决问题了!
    完整的代码应该是这样的(它就可以将临时文件放在“系统盘:\Temp”下了):
    procedure TMain.FormCreate(Sender: TObject);
    var
       TempDir:Array[0..255] of Char;
       TempPath:String;
    begin
         GetTempPath(255,@TempDir);
         TempPath:=StrPas(TempDir);
         session.PrivateDir:=TempPath;
    end;回复: li_zhifu(东北人)
      我用的是Paradox表 ,由于将编译过后的程序和数据表放在同一目录下,所以不需要BDE也不需要ADO!回复:大家
      感谢所有参加讨论的朋友!另外,怎么给分啊??
      

  12.   

    很简单啊,这个我做过
    就是在autorun.inf中加上
    [autorun]
    open=setup.exe
    icon=setup.ico
    第一行表示可以自动运行
    第二行是你要自动运行的程序
    第三行是你光盘在我的电脑或者资源管理器中所显示出来的图标
    不只是针对Delphi程序,对所有执行文件都是这样的。