:怎样通过程序实现将网址收藏夹Favorites中的指定网址分离出它的“网址名称”和“网址”??高手请进!(200分)

  • 主题发起人 主题发起人 bcbird
  • 开始时间 开始时间
url文件只是一个文本文件而已,你用StringList Load进来分析一下。
 
收藏是一个INI文件,用记事本打开看看就明白了。
 
用 GetProfileString()
 
//大家不要怪我抢分了:) 自动识别WINDOWS版本<br>//**************************<br>function TForm1.GetFavoritesPath:String;<br>var<br>reg:TRegistry;<br>begin<br>Result:='';<br>reg:=TRegistry.Create;<br>with reg do<br>begin<br>RootKey:=HKEY_USERS;<br>if OpenKey('.DEFAULT/Software/Microsoft/Windows/CurrentVersion/Explorer/User Shell Folders',false)=true then<br>Result:=ReadString('Favorites')+'/';<br>CloseKey;<br>Free;<br>end;<br>end;<br><br>{function TForm1.GetFavoritesUrl(FavoritesFile: String): String;<br>begin<br>with TIniFile.Create(FavoritesFile)do<br>begin<br>Result:=ReadString('InternetShortcut','URL','');<br>Free;<br>end;<br>end;}<br><br>function TForm1.GetFavoritesUrl(FavoritesFile: String): String;<br>var<br>i:integer;<br>begin<br>Result:='';<br>with TStringList.Create do<br>begin<br>LoadFromFile(FavoritesFile);<br>i:=IndexOf('[InternetShortcut]');<br>if i=-1 then<br>exit;<br>Result:=Strings[i+1];<br>System.Delete(Result,1,4);<br>Free;<br>end;<br>end;<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>label Write;<br>var<br>Favorites:String;<br>Search:TSearchRec;<br>begin<br>{9X}<br>Favorites:=GetFavoritesPath;<br>{NT/2K}<br>if copy(Favorites,1,1)='%' then Favorites:=GetFav2KDir;<br><br>if Favorites='' then<br>begin<br>MessageBox(Handle,'访问收藏夹主键错误!','提示信息',MB_OK);<br>exit;<br>end;<br>Memo1.Clear;<br>with Search,Memo1.Lines do<br>begin<br>if FindFirst(Favorites+'*.url',0,Search)=0 then<br>begin<br>Write:<br>Add(GetFavoritesUrl(Favorites+Name));<br>SetLength(Name,Length(Name)-4);<br>Add(Name);<br>if FindNext(Search)=0 then<br>goto Write;<br>end;<br>end;<br>end;<br><br>function TForm1.GetFav2KDir: string;<br>var<br>&nbsp; sysDir: array[0..250] of char;<br>&nbsp; pszLoginid: array[0 .. 199] of char;<br>&nbsp; nSize: Cardinal;<br>begin<br>&nbsp; nSize := 200;<br>&nbsp; if WNetGetUser(nil, pszLoginid, nSize) = NO_ERROR then<br>&nbsp; begin<br>&nbsp; GetSystemDirectory(sysDir, 250);<br>&nbsp; result:=Copy(StrPas(sysDir),1,3)+'Documents and Settings/'+StrPas(pszLoginid)+'/Favorites/';<br>&nbsp; end;<br>end;
 
:房客:<br>不是和你抢分数,而是你的程序不够完美!要知道,我的收藏夹和桌面等等Shell Folder就从来<br>不是在你所想象的地方!<br>其实根本没有必要分什么9x,2K,只要用一个函数就够了!<br>有ShGetSpecialFolderLocation()啊!干吗那么麻烦?
 
还是楼上兄弟!
 
:Kingron<br>谢谢老兄提醒 又学到一招
 
Kingron 好久没有看到你了。你的猛料 sp3 呢?怎么没有在 Delphi共享联盟 发表呀?
 
To DragonPC_???:<br>我现在都在DFW啊,新闻组没有了,:(,其他的不想去。SP3的推出可能没有了,因为我已经<br>把所有的资料全部合并了,已经发布到主页上面,最新的是到8.25日,你可以去看看。
 
收到,这就去你主页瞧瞧,唉,DFW倒是不错,就是太慢了,不如看看你的猛料 [^]<br><br>
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
757
import
I
后退
顶部