![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Как можно узнать пусть к папке Application Data текущего пользователя (для хранения там конфигурации программы)? 
		
	
		
		
		
		
		
	
		
		
	
	
	Использовал следующий код: Код: 
	uses ShlObj; function GetSpecialPath(CSIDL: word): string; var s: string; begin SetLength(s, MAX_PATH); if not SHGetSpecialFolderPath(0, PChar(s), CSIDL, true) then s := ''; result := PChar(s); end; Но он выдает такую фигню: ![]() Из-за чего так может быть? Какие еще могут быть способы (не требующие прав администратора) на том же WinApi? ОСь Windows 7, Delphi 2010.  | 
| 
		 
			 
			#2  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Советую посетить ресурс google с вопросом: Delphi Unicode 
		
	
		
		
		
		
		
		
			Или узнать константу AppData на языке WinApi у того же google А это в наши ворота даже вписывается: Поиск по форуму: дал ответ Последний раз редактировалось Uniq!, 07.10.2010 в 21:39.  | 
| 
		 
			 
			#3  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
  | 
| 
		 
			 
			#4  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 %appdata% так в самой винде 
		
	
		
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#5  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 это CMD шная константа) 
		
	
		
		
		
		
		
	
		
		
	
	
	здесь речь идёт о программном коде её. я думаю в той теме автор найдёт ответы на все свои вопросы, там очень много полезного ![]()  | 
| 
		 
			 
			#6  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 %AppData% - Указывает путь до папки Application Data текущего пользователя, в которой хранятся настройки некоторых программ. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	function GetWin(Comand: string): string; var buff: array [0 .. $FF] of char; begin ExpandEnvironmentStrings(PChar(Comand), buff, SizeOf(buff)); Result := buff; end; Edit1.Text := GetWin('%AppData%');  | 
| 
		 
			 
			#7  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Про Null-terminated string никогда не слышали? 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	Код: 
	SetLength(s, MAX_PATH); ShlObj.SHGetSpecialFolderPath(0, @s[1], CSIDL, false); SetLength(s, Pos(#0, s)-1);  |