Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Delphi


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C++ Builder / Delphi

Выпуск № 298
от 04.03.2004, 02:10

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 1380
Отправлено ответов: 3050
Активность: 221.0 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Pawel
Статус: Профессиональный
Общий рейтинг: 164.25
[Подробней >>]
sir henry
Статус: Профессиональный
Общий рейтинг: 159.81
[Подробней >>]
Boriss
Статус: Профессиональный
Общий рейтинг: 152.65
URL: Программирование на Паскале
[Подробней >>]
 
Bob Johnson
Статус: Профессиональный
Общий рейтинг: 144.02
URL: Программирование
[Подробней >>]
samum2000
Статус: Опытный
Общий рейтинг: 127.65
[Подробней >>]
CJ
Статус: Опытный
Общий рейтинг: 123.61
URL: Мой персональный сайт! Зайдите и не пожалеете!
[Подробней >>]
 
Snowm@n
Статус: Доверительный
Общий рейтинг: 126.31
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 1366. Здравствуйте, уважаемые эксперты. Дополнение к вопросу 1358. Я получаю привилегии SE_TCB_NAME (вроде... (ответов: 2)
Вопрос № 1367. Как сделать СкринШот, только куска экрана? Ну типа чтобы пользователь мог сам определить этот кусок?... (ответов: 4)
Вопрос № 1368. Надо определять кусок экрана, так чтобы нажал я кнопку определилось на чало координат, нажал в то ме... (ответов: 2)
Вопрос № 1369. Добрый вечер Уважаемые эксперты! Подскажите мне пожалуйста, если можно, то с примером кода, как мне ... (ответов: 5)

Вопросов: 4, ответов: 13


 Вопрос № 1366

Здравствуйте, уважаемые эксперты.
Дополнение к вопросу 1358. Я получаю привилегии SE_TCB_NAME (вроде бы), но LogonUser по-прежнему выдает ошибку о недостаточности прав (только в win2k и NT, в XP все работает ништяк). Какие еще привилегии нужны, как их правильно получать? Есть ли альтернатива LogonUser (интересуют все функции для которых нужна аутентификация системного пользователя)?
В приложении процедура получения привелегий.


Приложение:


Вопрос отправлен: 28.02.2004, 20:21
Отправитель: Byter

[Следующий вопрос >>] [Список вопросов]

Отвечает Pawel

Добрый день, Byter!
попробуй так
var
ProcessID : DWORD;
ProcessHandle : THandle;
ThreadHandle : THandle;
begin
ProcessID := GetCurrentProcessID;
ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION,
false,ProcessID);
SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS);
ThreadHandle := GetCurrentThread;
SetThreadPriority(ThreadHandle, THREAD_PRIORITY_TIME_CRITICAL);
end;


Ответ отправлен: 01.03.2004, 15:39
Отправитель: Pawel


Отвечает sir henry

Приветствую Вас, Byter!
Попробуйте вместо функции LogonUser() использовать CreateProcessAsUser(). Она более удобна чем предыдущая, если Вам просто нужно запустить какую-то программу от имени нетекущего пользователя.

Ответ отправлен: 01.03.2004, 04:19
Отправитель: sir henry


 Вопрос № 1367

Как сделать СкринШот, только куска экрана? Ну типа чтобы пользователь мог сам определить этот кусок?!


Приложение:


Вопрос отправлен: 28.02.2004, 21:48
Отправитель: Scorp

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Доброе время суток, Scorp!
Вопрос некорректен тем, что не отмечено, в чем пишете программу. От этого и ответы будут неточные :))
Чтобы получить скриншот части экрана, используется GetDC для GetDesktopWindow. API функция BitBt используется для передачи картинки десктопа в DesktopBitmap. GetDC(GetDesktopWindow) получает дескриптор контекста устройства дисплея для указанного окна - окна возвращённого функцией GetDesktopWindow

Ответ отправлен: 02.03.2004, 13:04
Отправитель: Boriss


Отвечает Bob Johnson

Добрый день, Scorp!
> СкринШот, только куска экрана?
Открой DC десктопа и скопируй оттуда нужный прямоугольник. См. GetDC.
> NEWFF.narod.ru - это бесплатные программы, игры, утилиты, статьи.
А это к чему?

* EMan1.5: ---===*** The game we play ***===---


Ответ отправлен: 28.02.2004, 23:34
Отправитель: Bob Johnson


Отвечает Pawel

Приветствую Вас, Scorp!
См приложение.
"NEWFF.narod.ru - это бесплатные программы, игры, утилиты, статьи." - а это к чему???

Приложение:

Ответ отправлен: 01.03.2004, 15:36
Отправитель: Pawel


Отвечает samum2000

Доброе время суток, Scorp!
Исползуй
function BitBlt(
hdcDest: HDC; // дескриптор конечного контекста устройства
nXDest, // коорд. x верхнего левого угла конечного прямоугольника
nYDest, // коорд. y верхнего левого угла конечного прямоугольника
nWidth, // ширина конечного прямоугольника
nHeight: Integer; // высота конечного прямоугольника
hdcSrc: HDC; // дескриптор исходного контекста устройства
nXSrc, // коорд. x верхнего левого угла исходного прямоугольника
nYSrc: Integer; // коорд. y верхнего левого угла исходного прямоугольника
dwRop: DWORD // код растровой операции
): Boolean;
Например, так:
Var
MyBitmap: TBitmap;
Begin
...
MyBitmap:=TBitmap.Create;
MyBitmap.Width:=20;
MyBitmap.Height:=20;
BitBlt(MyBitmap.Canvas.Handle,
0,0,20,20,
GetDC(GetDesktopWindow),100,100,SrcCopy);
...
end.

Ответ отправлен: 01.03.2004, 12:06
Отправитель: samum2000


 Вопрос № 1368

Надо определять кусок экрана, так чтобы нажал я кнопку определилось на чало координат, нажал в то место где надо остановиться и определился прямоугольник, мне код нужен!!!


Приложение:


Вопрос отправлен: 29.02.2004, 08:17
Отправитель: Scorp

[Следующий вопрос >>] [Список вопросов]

Отвечает Boriss

Приветствую Вас, Scorp!
Типа так:
DC:=GetDC(0);
BitBlt(ScrImage.Canvas.Handle,0,0,ScrImage.Width,ScrImage.Height,DC,0,0,SrcCopy);
ReleaseDC(0,DC);


Ответ отправлен: 02.03.2004, 13:13
Отправитель: Boriss


Отвечает Pawel

Приветствую Вас, Scorp!
Что есть " кусок экрана"?
Имеется в виду десктоп? или форма?
Начато координат - это точка 0,0.
Позиция мыши на момент клика - это и есть вторая точка.
Метд опредиления позиции мыши зависит от п.1

Ответ отправлен: 01.03.2004, 15:34
Отправитель: Pawel


 Вопрос № 1369

Добрый вечер Уважаемые эксперты! Подскажите мне пожалуйста, если можно, то с примером кода, как мне программно создать и разместить ярлык на рабочем столе?
За ранее благодарен за любую информацию.
С Ув. Дмитрий.



Вопрос отправлен: 29.02.2004, 18:21
Отправитель: Дмитрий (mrdimon@skif.net)

[Следующий вопрос >>] [Список вопросов]

Отвечает CJ

Здравствуйте, Дмитрий!
Смотри приложение!

Приложение:

Ответ отправлен: 29.02.2004, 18:56
Отправитель: CJ


Отвечает Snowm@n

Добрый день, Дмитрий!
Создание ярлыков на рабочем столе, меню "пуск", панели быстрого запуска (гляди в приложение).


Приложение:

Ответ отправлен: 01.03.2004, 19:47
Отправитель: Snowm@n


Отвечает samum2000

Добрый день, Дмитрий!
uses
ShlObj, ComObj, ActiveX;
procedure CreateLink(const PathObj, PathLink, Desc, Param: string);
var
IObject: IUnknown;
SLink: IShellLink;
PFile: IPersistFile;
begin
IObject := CreateComObject(CLSID_ShellLink);
SLink := IObject as IShellLink;
PFile := IObject as IPersistFile;
with SLink do
begin
SetArguments(PChar(Param));
SetDescription(PChar(Desc));
SetPath(PChar(PathObj));
end;
PFile.Save(PWChar(WideString(PathLink)), FALSE);
end;



Ответ отправлен: 01.03.2004, 12:09
Отправитель: samum2000


Отвечает Pawel

Добрый день, Дмитрий!
Полнофункциональная функция для создания ярлыка с определенными параметрами.
uses
Windows, ShlObj, OLE2;
function CreateLink(SrcFile,LnkFile,Descr:string):HRESULT;
var hres:HRESULT; psl:IShellLinkA; ppf:IPersistFile;
wsz:array[0..MAX_PATH-1] of word;
begin
hres:=CoCreateInstance(CLSID_ShellLink, nil,CLSCTX_INPROC_SERVER, IID_IShellLinkA, psl);
if (SUCCEEDED(hres)) then
begin
psl.SetPath(PChar(SrcFile));
psl.SetDescription(PChar(Descr));
hres:=psl.QueryInterface(IID_IPersistFile, ppf);
if (SUCCEEDED(hres)) then
begin
MultiByteToWideChar(CP_ACP, 0, PChar(LnkFile), -1, @wsz, MAX_PATH);
hres:=ppf.Save(@wsz, TRUE);
ppf.Release;
end;
end;
CreateLink:=hres;
end;

Ответ отправлен: 01.03.2004, 15:30
Отправитель: Pawel


Отвечает Boriss

Доброе время суток, Дмитрий!


Приложение:

Ответ отправлен: 02.03.2004, 13:53
Отправитель: Boriss



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (28)
C / C++ (20)
Perl (1)
Builder / Delphi (17)
Pascal (20)
Basic / VBA (9)
Java / JavaScript (3)
PHP (11)
Криптография (7)
WinAPI (15)
Радиоэлектроника (9)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (57)
"Железо" (31)
Поиск информации (15)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (11)
Юристу
Гражданское право (15)
Семейное право (12)
Трудовое право (12)
КоАП (10)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное