如何[定位]DOS命令的路径为[我的文档]的路径
我用DELPHI中编程实现了,直接调用"DOS命令提示符",但是运行后打开了DOS
提示符,路径为当前程序所在的路径,我想将这个[路径]改成[我的文档]的[路径]

解决方案 »

  1.   

    读取注册表获取[我的文档]路径
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
      

  2.   

    我是这在DELPHI中编程的代码
    winexec('cmd.exe ', sw_shownormal);//调用DOS
    如何修改成在打开"DOS命令提示符"时就将“路径”直接指向这里
    》》》》》》》》》》》》》》》》》》》》》》》》》》》》》
      

  3.   

    操作注册表,网上很多,找到路径后
    winexec('cmd.exe /k 我的文档的路径',sw_shownormal)
      

  4.   

    假如 
       我的文档在不知道的情况下,如何得到这个路径呀,是从[注册表]中得到
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders下得到路径(比如:d:\my)
    将这个参数传给变量a:='d:\my';
    DELPHI代码写成如下:
    cmdmy:='cmd.exe /k '+a;
    wnexec(cmdmy,sw_shownormal);
    是这样吗》》》》》》》》》》》》》》》》》》》》》
      

  5.   

    。。当然有了
    例如//自己写入注册表的信息,PrintMode可能不存在,如果直接读取就出错了
          if reg.KeyExists('PrintMode') then
            g_PrintMode:=reg.ReadString('PrintMode');
      

  6.   

    可以调用 CMD打开默认路径
    打开后向命令行窗口发送案件消息 通过消息 一步一步定位到你的目录,最后再[CLS]清屏一下.
      

  7.   

    m617105
    (押宝新人)  
      你好:
    我在程序中得到了“我的文档”位置为:D:\My Documents
    执行语句为:winexec('cmd.exe /k D:\My Documents',sw_shownormal);
    可是出错了呀,如图所示:
      

  8.   

    估计是程序的bug,winexec对于空格处理不是很好,my documents他只会读my这两个,你不加空格试试
      

  9.   

    可以在命令中使用如下的形式转到特定的目录:
    cmd.exe /k string
    string是一串命令,可以在 string 中使用由 && 分隔的多个命令,不过这些命令必须置于引号之中(例如,"command&&command&&command")。如你要转到特定的目录 D:\My Documents,可用如下形式的命令:
    cmd.exe /k D:&&CD "My documents"
    在Delphi中:
    Winexec('cmd.exe /k D:&&cd "\My Documents"',sw_shownormal);
      

  10.   

    uses ShlObj;
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Path: array [0 .. MAX_PATH] of Char;
      idList: PItemIDList;
      sPath: string;
    begin
      SHGetSpecialFolderLocation(0, 5, idList);
      SHGetPathFromIDListA(idList, @Path);
      sPath := 'cmd.exe /k cd /d "' + strPas(Path) + '"';
      Edit1.Text := sPath;
      WinExec(PChar(sPath), SW_SHOWNORMAL);
    end;
      

  11.   

    不好意思,写的时候把Edit1带进去了,你把哪一行去掉就行了
      

  12.   

    测试出错了呀》》》》》》》》》》》》》》》》》》》》》》》》》》
    [错误] Unit1.pas(29): Undeclared identifier: 'PItemIDList'
    [错误] Unit1.pas(32): Undeclared identifier: 'SHGetSpecialFolderLocation'
    [错误] Unit1.pas(33): Undeclared identifier: 'SHGetPathFromIDListA'
    [致命错误] DOS_MDocuments.dpr(5): Could not compile used unit 'Unit1.pas'
      

  13.   

    你没看我上面写了让你引用ShlObj单元啊,郁闷。
      

  14.   

    噢,看到,我写成了ShlObjj
    所以呀就出错了,谢谢》》》》》》》》》》》》》》》》》》》》
    给分》》》》》》》》