Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2011, 19:55   #1
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию Не могу открыть мой компьютер CSIDL_DRIVES

Пишу CSIDL_DRIVES и открывается не мой компьютер а папка с моей прогой
gufon вне форума Ответить с цитированием
Старый 08.05.2011, 20:19   #2
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Пиши не на бумажке, а на картонке.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 08.05.2011, 20:24   #3
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию

а извините
Код:
вот код
function GetSpecialFolderPath(folder : integer) : string;
const
SHGFP_TYPE_CURRENT = 0;
var
path: array [0..MAX_PATH] of char;
begin
if SUCCEEDED(SHGetFolderPath(0,folder,0,SHGFP_TYPE_CURRENT,@path[0])) then
Result := path
else
Result := 'Извините. произошла ошибка!';
end;

procedure TForm1.Image1Click(Sender: TObject);
var m: string;
begin

label1.caption:= GetSpecialFolderPath(CSIDL_DRIVES);
ShellExecute(0, 'open', PChar(label1.caption), nil, nil, SW_SHOW)
end;
end.


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Shellapi, SHFolder, jpeg, ShlObj;
gufon вне форума Ответить с цитированием
Старый 08.05.2011, 20:31   #4
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Ну, а что же вы ждали?

Вы используете GetSpecialFolderPath, чтобы получить путь на диске к папке. Надо ли говорить, что папка "Мой компьютер" - виртуальная? Она не существует на диске.

Открывать виртуальную папку надо по PIDL. Конечно, ShellExecute для этих целей не очень подходит, а вот ShellExecuteEx - вполне.

В fMask добавляем SEE_MASK_IDLIST, а PIDL записываем в lpIDList.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 08.05.2011, 20:34   #5
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию

ага. верняк. эт что разные функции делать под. виртуальные папки и обычные???
gufon вне форума Ответить с цитированием
Старый 08.05.2011, 20:38   #6
gufon
Форумчанин
 
Регистрация: 21.12.2010
Сообщений: 224
По умолчанию

или можно вот так
procedure TForm1.Image2Click(Sender: TObject);
var
PIDL: PItemIDList;
Info: TShellExecuteInfo;
pInfo:PShellExecuteInfo;
begin
SHGetSpecialFolderLocation(0,$0005, PIDL);
pInfo:=@Info;
With Info do
begin
cbSize:=SizeOf(Info);
fMask:=SEE_MASK_NOCLOSEPROCESS+SEE_ MASK_IDLIST;
wnd:=0;
lpVerb:=nil;
lpFile:=nil;
lpParameters:=nil;
lpDirectory:=nil;
nShow:=SW_ShowNormal;
hInstApp:=0;
lpIDList:=PIDL;
end;
ShellExecuteEx(pInfo);
на все на вируал и на обычные
gufon вне форума Ответить с цитированием
Старый 08.05.2011, 21:31   #7
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от gufon Посмотреть сообщение
ага. верняк. эт что разные функции делать под. виртуальные папки и обычные???
Конечно нет. Если что-то работает для виртуальной папки, то для физической - тем более. Первое включает в себя второе, но не наоборот.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить свойство Мой Компьютер Rebel123 Общие вопросы Delphi 5 06.02.2010 19:20
Закрыть доступ в Мой компьютер Syltan Операционные системы общие вопросы 6 27.10.2009 18:04
как с помощию нажатия кнопки можно открыть мой компьютер? wulf17 Общие вопросы Delphi 4 23.06.2009 18:34
Мой компьютер не может себя найти Voda Свободное общение 6 24.09.2008 22:43
Мой новогодний компьютер meg33 Свободное общение 2 27.12.2007 16:16