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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2015, 19:36   #21
kta87
Форумчанин
 
Аватар для kta87
 
Регистрация: 22.02.2010
Сообщений: 912
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Сам-то понял, что ты предложил ссылкой?
Дико извиняюсь, скопировал не из той вкладки
kta87 вне форума Ответить с цитированием
Старый 24.01.2015, 19:52   #22
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Ок, отпишись если что получится?
в #19 уже отписался, копаться в коде нет ни какого желания

ADD подправил NextPIDL, заработало
Код:
  function NextPIDL(IDList: PItemIDList): PItemIDList;
   begin
     Result := IDList;
//     Inc(PChar(Result), IDList^.mkid.cb);
     Inc(PAnsiChar(Result), IDList^.mkid.cb);
   end;
Да, и та функция StrRetToString вообще не нужна, её можно смело удалить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 24.01.2015 в 20:49.
Аватар вне форума Ответить с цитированием
Старый 25.01.2015, 12:20   #23
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
в #19 уже отписался, копаться в коде нет ни какого желания

ADD подправил NextPIDL, заработало
Код:
  function NextPIDL(IDList: PItemIDList): PItemIDList;
   begin
     Result := IDList;
//     Inc(PChar(Result), IDList^.mkid.cb);
     Inc(PAnsiChar(Result), IDList^.mkid.cb);
   end;
Да, и та функция StrRetToString вообще не нужна, её можно смело удалить
Аватар, спасибо за помощь, вроде бы как работает, но только немного не понятно для меня как. Эта функция будет срабатывать в случае если сам диск имеет общий доступ и папка, у которой я проверяю общий доступ, будет с открытым доступом настроена? Просто получается, что сейчас у меня сам диск имеет общий доступ, а у папки, что настроено в свойствах общий доступ, что нет, выдается сообщение, что папка not shared.
---
add
Я попробую упростить задачу. Что если через try...except обработать момент открытия. Ведь если к папке есть доступ по сети, то я смогу ее открыть в проводнике через ShellExecute из программы указав \\имя или адрес сервера\папка, а если к папке нет общего доступа, то попробовав открыть папку в проводнике по формату \\имя или адрес сервера\папка, то я получу ошибку с текстом, что Windows не может получить доступ.
Как отловить вот эту ошибку через try...except? Я пробовал делать так:
Код:
procedure TForm_Main.sButton2Click(Sender: TObject);
begin
 try
  ShellExecute(Handle,'open',PWideChar(Form_Main.sEdit1.Text),nil,nil,SW_SHOWNORMAL);
 except
  on E: Exception do
  begin
   ShowMessage('ошибка открытия!');
  end;
 end;
end;
но, сообщение не появляется, а если доступ по сети к папке есть, то она открывается из программы в проводнике.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как проверить доступ к удаленному компьютеру? Dux Работа с сетью в Delphi 8 24.02.2013 17:22
как проверить наличие папки на удаленном сервере? xxxsas PHP 4 18.01.2011 16:16
Как отключить ''простой общий доступ к файлам''? DomiNick Операционные системы общие вопросы 2 26.10.2009 23:34
Как проверить, есть ли файл? Dux Общие вопросы Delphi 3 02.04.2008 23:18
Администрирование\управление компьютером\Общие папки\Общие ресурсы\прекратить общий доступ lm_strj Безопасность, Шифрование 2 13.10.2007 21:28