如何找到程序的位置

发布于 2024-07-20 19:34:09 字数 45 浏览 3 评论 0原文

我正在使用Delphi2006,我想使用Delphi代码找到特定程序的位置。

I am using Delphi2006 and I want to find the location of a particular program using Delphi code.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

唐婉 2024-07-27 19:34:09

下面是一个 Delphi 程序,它可以查找所有名为 aFileName 的文件,并将结果放入 aDestFiles 字符串列表中。

 function findFilesCalled(aFileName : String; aDestFiles : TStringList) : boolean;
 var
   subDirs : TStringList;
   dir : Char;
   sRec : TSearchRec;
   toSearch : string;
 begin
   subdirs := TStringList.Create;
   for dir := 'A' to 'Z' do
     if DirectoryExists(dir + ':\') then
       subdirs.add(dir + ':');
   try
     while (subdirs.count > 0) do begin
       toSearch := subdirs[subdirs.count - 1];
       subdirs.Delete(subdirs.Count - 1);
       if FindFirst(toSearch + '\*.*', faDirectory, sRec) = 0 then begin
         repeat
           if (sRec.Attr and faDirectory) <> faDirectory then
             Continue;
           if (sRec.Name = '.') or (sRec.Name = '..') then
             Continue;
           subdirs.Add(toSearch + '\' + sRec.Name);
         until FindNext(sRec) <> 0;
       end;
       FindClose(sRec);
       if FindFirst(toSearch + '\' + aFileName, faAnyFile, sRec) = 0 then begin
         repeat
           aDestFiles.Add(toSearch + '\' + sRec.Name);
         until FindNext(sRec) <> 0;
       end;
       FindClose(sRec);
     end;
   finally
     FreeAndNil(subdirs);
   end;
   Result := aDestFiles.Count > 0;
 end;

Here's a Delphi program that can find all files called aFileName, and puts the results into the aDestFiles stringlist.

 function findFilesCalled(aFileName : String; aDestFiles : TStringList) : boolean;
 var
   subDirs : TStringList;
   dir : Char;
   sRec : TSearchRec;
   toSearch : string;
 begin
   subdirs := TStringList.Create;
   for dir := 'A' to 'Z' do
     if DirectoryExists(dir + ':\') then
       subdirs.add(dir + ':');
   try
     while (subdirs.count > 0) do begin
       toSearch := subdirs[subdirs.count - 1];
       subdirs.Delete(subdirs.Count - 1);
       if FindFirst(toSearch + '\*.*', faDirectory, sRec) = 0 then begin
         repeat
           if (sRec.Attr and faDirectory) <> faDirectory then
             Continue;
           if (sRec.Name = '.') or (sRec.Name = '..') then
             Continue;
           subdirs.Add(toSearch + '\' + sRec.Name);
         until FindNext(sRec) <> 0;
       end;
       FindClose(sRec);
       if FindFirst(toSearch + '\' + aFileName, faAnyFile, sRec) = 0 then begin
         repeat
           aDestFiles.Add(toSearch + '\' + sRec.Name);
         until FindNext(sRec) <> 0;
       end;
       FindClose(sRec);
     end;
   finally
     FreeAndNil(subdirs);
   end;
   Result := aDestFiles.Count > 0;
 end;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文