Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> определение имя пользвателя shellapi, папка с профилем пользователя 
:(
    Опции темы
snakaebaka
Дата 20.2.2013, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.2.2013

Репутация: нет
Всего: нет



Добрый день!

Совсем недавно начал изучать Delphi 7 , работаю админом в одной компании  имею права админа сети , поставлена задача расшарить рабочий стол определенных сотрудников , Ос на компах ХР и Win 7 на компьютере работает много пользователей под своими учетными записями ,  использую  ShellApi

код 

Код

shellexecute (0,nil, 'net' , ' 'share 123="c:\users\%Username%\Desktop\"--\\где юзер наме профиль пользователя  запустившего программу',nil,SW_HIDE);


тестировал на двух компах с разными ОС ХР и Win 7  ни в первом ни во втором случае рабочий стол пользователя запустившего программу не расшаривается  , если исправляю код где указываю вместо username логин то все работает , подскажите в чем может быть ошибка или помогите   каким способом указать программе расшарить рабочий стол именного того пользователя который запустил прогу 

p.s  За ранние огромное спасибо 
  


Это сообщение отредактировал(а) snakaebaka - 20.2.2013, 16:36
PM MAIL   Вверх
kami
Дата 20.2.2013, 17:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1806
Регистрация: 25.8.2007
Где: Санкт-Петербург

Репутация: 22
Всего: 72



Лучше получать папку рабочего стола средствами Винды:
SHGetFolderPath + CSIDL = CSIDL_DESKTOPDIRECTORY

И подставлять в shellexecute. Иначе можно "нарваться" на множество разных интересных штук, начиная с того, что винда может быть не на диске C.

Добавлено @ 17:54
например, так
(смотреть функцию GetSpecialFolderPath в Implementation)

Это сообщение отредактировал(а) kami - 20.2.2013, 17:54
PM MAIL WWW   Вверх
snakaebaka
Дата 21.2.2013, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.2.2013

Репутация: нет
Всего: нет



kami

Спасибо огромное !!!!!  Такой метод действительно удобней , а по поводу метки диска С или Д в компании все компы устанавливаются с меткой С т.к я сам это делаю=) , еще раз огромное Вам спасибо !

Это сообщение отредактировал(а) snakaebaka - 21.2.2013, 08:03
PM MAIL   Вверх
snakaebaka
Дата 21.2.2013, 11:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.2.2013

Репутация: нет
Всего: нет



kami

подскажи еще один момент если н есложно , т.к в делфи не очень силен , сокрее всего даже не силен очень +) 
Нашел я путь до рабочего стола с верным логином как мне в shellexecute передать  путь ?

Код

implementation

{$R *.dfm}
 function GetMyDesktop : string;
 var  SpecialDir: PItemIdList;
begin
 SetLength(result, MAX_PATH);
 SHGetSpecialFolderLocation(Form1.Handle, CSIDL_DESKTOP, SpecialDir);
 SHGetPathFromIDList(SpecialDir, PChar(Result));
 SetLength(result, lStrLen(PChar(Result)));
      end;

  procedure TForm1.Button1Click(Sender: TObject);
 begin
Shellexecute(0,nil,'net','share 666= GetMyDesktop 'nil,SW_HIDE);  \\ не могу понять как передать результат в шел экзекут ?
 end;

PM MAIL   Вверх
Чучмек
Дата 21.2.2013, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Код

Shellexecute(0,nil,'net','share 666= "'+GetMyDesktop+'"',nil,SW_HIDE)



--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
snakaebaka
Дата 21.2.2013, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.2.2013

Репутация: нет
Всего: нет



Чучмек

ругается 

incompatible types : 'String' and 'PAnsiChar'
PM MAIL   Вверх
Чучмек
Дата 21.2.2013, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Код

    
Shellexecute(0,nil,'net',PChar('share 666= "'+GetMyDesktop+'"'),nil,SW_HIDE);



--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
snakaebaka
Дата 21.2.2013, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.2.2013

Репутация: нет
Всего: нет



Цитата(Чучмек @ 21.2.2013,  12:16)
Код

    
Shellexecute(0,nil,'net',PChar('share 666= "'+GetMyDesktop+'"'),nil,SW_HIDE);

Спасибо Огромное !!! все работает
PM MAIL   Вверх
snakaebaka
Дата 21.2.2013, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.2.2013

Репутация: нет
Всего: нет



Цитата(Чучмек @ 21.2.2013,  12:16)
Код

    
Shellexecute(0,nil,'net',PChar('share 666= "'+GetMyDesktop+'"'),nil,SW_HIDE);
   добавить к полученой папке рабочий стол папку test ?

Чучмек выручай )

у меня теперь еще одна проблема последняя буду очень очень признателен если подскажешь как мне теперь добавитьк полученой папке рабочего стола папку тест , чтобы расширивался не весь рабочий стол а только папка test ?  +GetMyDesktop+test'??? папку test я создал на всех компах на которых тестирую что бы получился путь C:\users\+GetMyDesktop+\test

Это сообщение отредактировал(а) snakaebaka - 21.2.2013, 14:39
PM MAIL   Вверх
Чучмек
Дата 21.2.2013, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 7
Всего: 41



Также.
Код

PChar('share 666= "'+GetMyDesktop+'\test"')
 


Это сообщение отредактировал(а) Чучмек - 21.2.2013, 15:49


--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
snakaebaka
Дата 21.2.2013, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.2.2013

Репутация: нет
Всего: нет



Цитата(Чучмек @ 21.2.2013,  15:46)
Также.
Код

PChar('share 666= "'+GetMyDesktop+'\test"')

СПАСИБО ОГРОМНОЕ!!! спасибо спасибо спасибо , все заработало +)
PM MAIL   Вверх
snakaebaka
Дата 22.2.2013, 10:30 (ссылка)  | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 20.2.2013

Репутация: нет
Всего: нет



Чучмек, 

Добрый день!

Прошу прощение за мою наглость , мне просто для себя  нужно понять , понимаю что много мануалов и есть гугл и подобные ресурсы , но меня интересует как передавать параметры в свой код
Код

PChar('share 666= "'+GetMyDesktop+'\test"')
   если мне нужно из той же папки скопировать файл test.txt  как мне передать этот путь да и вообще не только копировать , это я как пример привел , просто не могу понять как передать путь после  +GetMyDesktop+  , \test\test.txt , для копирования  к примеру я пишу 

Код


copyFile ('c:\1.txt','d:\1.txt',true);

  с этим все понятно у меня с диска С копируется файл в диск Д , как мне таким же способом скопировать файл из директории которую я получил в предыдущем коде  +GetMyDesktop+'\test  в корень диска С ? 


ВСЕМ ОГРОМНОЕ СПАСИБО , разобрался +)
Код

copyFile (PChar ('GetMyDesktop+'\test\test.txt'),'d:\test.txt',true);



P.s какой же я тупой ) сразу не мог догодатся , спасибо большое Чучмек

Это сообщение отредактировал(а) snakaebaka - 22.2.2013, 15:29
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0496 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.