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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с Create process 
:(
    Опции темы
Sponger
Дата 23.6.2006, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Как задать процессу запускаемому через Create process права такие как у основной программы.

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


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



права в окнах задаются не на уровне программ а на уровне пользователей.
поэтому программа, запущенная программой (если не имеет место CreateProcessAsUser), имеет те же права что и запустившая ее программа 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Sponger
Дата 23.6.2006, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Я это понимаю, но у меня как раз такой случай.

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


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



А ты секьюрить аттрибуты указываешь, или просто nil вместо них даёшь? 
PM MAIL   Вверх
Sponger
Дата 23.6.2006, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



nil

Я не знаю что туда писать. 
PM MAIL   Вверх
_hunter
Дата 23.6.2006, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

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



покажи код.
+ посмотри выполняются ли какие-то действия с хендлом процесса (если код в наследство остался) 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Snowy
Дата 23.6.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

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



Цитата(Sponger @  23.6.2006,  15:58 Найти цитируемый пост)
Я не знаю что туда писать. 
Пиши туда размер структуры, nil и false; 
PM MAIL   Вверх
Sunvas
Дата 23.6.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


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

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



Попробуй Shellexecute и winexec вместо createprocess использовать. 


--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Sponger
Дата 24.6.2006, 05:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Код

function imageReSize(sourceName, targetName, sPathName : string; DOTPicture : integer; GrayColor : boolean) : boolean; // GrayColor = TRUE - grayscale
var fileNameExecute, sParameters : string;
    pi : TProcessInformation;
    si : TStartupInfo;
begin
  fileNameExecute := fmain.sPathName[0] + '\nconvert.exe';

  if GrayColor then sParameters := '-out jpeg -grey 256 -q 80 -ratio -resize 1024 0 -o "' + sPathName + '\' + targetName + '" "' + sourceName + '"'
    else sParameters := '-out jpeg -q 70 -ratio -resize 1024 0 -o "' + sPathName + '\' + targetName + '" "' + sourceName + '"';

  ZeroMemory(@si, sizeof(si));
  si.cb := SizeOf(si);
  si.dwFlags := STARTF_USESHOWWINDOW;
  si.wShowWindow := SW_HIDE;
  if CreateProcess(nil, PChar(fileNameExecute + ' ' + sParameters), nil, nil, false, 0, nil, nil, si, pi) then begin
    WaitForSingleObject(pi.hProcess, INFINITE);
    CloseHandle(pi.hProcess);
    CloseHandle(pi.hThread);
    result := TRUE;
  end  else result := FALSE; 
end;


ShellExecute тоже не работает.

Т.е. все это работает, но только у определенных пользователей.
У остальных пользователей, права на доступ идентичные, но не работает. Мистика.

В принципе нашел причину, но не пойму почему не работает.

sourceName - этот параметр это существующий файл.
В процедуре которая вызывает эту функцию берутся все файлы соответствующие маске *.jpg и по одному передаются в sourceName.
т.к. вот. Список файлов которые мне нужны находятся в TJvFileListBox. Вот этот компонент и блокирует файл. Причем блокирует работу и по сети и локально тоже.
Если использую FindFirst,  FindNext все работает нормально. 

Я вот и не понимаю почему у пользователей у которых абсолютно идентичные права, так получается.

А я, блин, с нашим сисадмином весь сервак перелопатил, думали где-то права доступа не правильно указаны.   

Это сообщение отредактировал(а) Sponger - 24.6.2006, 05:04
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

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

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

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

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


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

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


 




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


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

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