Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Открыть новую тему     Написать ответ в эту тему

Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
master20
Рихтер лежит у меня, см. мой профиль, раздел "программы" (ссылка с сайта naumen ведёт на мой сайт).
Там же я положил последнего Петцольда(10-ое изд.) на английском и с примерами.

Всего записей: 2736 | Зарегистр. 16-10-2003 | Отправлено: 23:50 20-04-2008
master20

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Garrett
Все в порядке, просто DownloadMaster не хотел качат, пишет:
Фaйл Richter__2008_02_16.rar являeтcя тeкcтoвoй html cтpaницeй. Xoтитe
coxpaнить этoт фaйл c pacшиpeниeм ".htm" (Richter__2008_02_16.rar.htm)?
 
А BitComet качает...
Чудеса, не пойму в чем дело, пойду спрошу у кого-нибудь.

Всего записей: 31 | Зарегистр. 05-01-2008 | Отправлено: 00:50 21-04-2008
Cyril Konst



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть сложная задача.  
При подключении через терминал автоматом создаётся клиентский принтер. При отключении от терминала, он автоматом удаляется. Нужно программку, которая отслеживает создание принтера и назначает права доступа к нему.  
Нашёл, что для первой части нужно использовать FindFirstPrinterChangeNotification (FindNextPrinterChangeNotification) с параметром pdwChange == PRINTER_CHANGE_ADD_PRINTER  
А по второй части задачи даже чо-то не знаю...

Всего записей: 634 | Зарегистр. 12-08-2003 | Отправлено: 09:03 07-05-2008 | Исправлено: Cyril Konst, 09:04 07-05-2008
koderr



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Здравствуйте.
Проблема такая - нужно научиться делать ReportEvent в custom event log (Event log - это "Приложение", "Безопасность", "Система" в "Просмотре событий"; так вот, нужно создать отдельный журнал). И как минимум, научиться создавать этот custom event log. В MSDN нашел статью How to: Create and Remove Custom Event Logs, но примеры кода, к сожалению, только для VB, C# и J#.
Никто не реализовывал подобное на C? Не поделитесь опытом?
 
Добавлено:
Попробовал создать вручную соответствующие ветви в реестре - получилось, все пишется, даже не пришлось менять код. Интересно, есть ли какое-то стандартное решение?

----------
The truth is out there...

Всего записей: 353 | Зарегистр. 22-06-2005 | Отправлено: 05:21 08-05-2008
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koderr
Посмотри в SDK раздел Debugging and Error Handling\Event loging\Event Logging Reference
Функции

Код:
 
BackupEventLog Saves the specified event log to a backup file.  
ClearEventLog Clears the specified event log, and optionally saves the current copy of the log to a backup file.  
CloseEventLog Closes a read handle to the specified event log.  
DeregisterEventSource Closes a write handle to the specified event log.  
GetEventLogInformation Retrieves information about the specified event log.  
GetNumberOfEventLogRecords Retrieves the number of records in the specified event log.  
GetOldestEventLogRecord Retrieves the absolute record number of the oldest record in the specified event log.  
NotifyChangeEventLog Enables an application to receive notification when an event is written to the specified event log.  
OpenBackupEventLog Opens a handle to a backup event log.  
OpenEventLog Opens a handle to the specified event log.  
ReadEventLog Reads a whole number of entries from the specified event log.  
RegisterEventSource Retrieves a registered handle to the specified event log.
ReportEvent Writes an entry at the end of the specified event log.  
 

 
Там есть пример как создать Adding a Source to the Registry
 
Добавлено:
Cyril Konst
Можно посмотреть здесь есть неплохой пример Printer ACLs

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 10:50 08-05-2008 | Исправлено: RedPromo, 11:05 08-05-2008
Cyril Konst



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RedPromo
Спасибо, а по FindFirstPrinterChangeNotification/FindNextPrinterChangeNotification вам пример не попадался?

Всего записей: 634 | Зарегистр. 12-08-2003 | Отправлено: 09:52 12-05-2008
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cyril Konst
Как всегда поиск рулит, а вобще я бы с MSDN начал.

Цитата:
Программа, следящая за состоянием очереди принтера. Была написана исключительно для того, что бы понять, как работает функция FindFirstPrinterChangeNotification и еЈ друзья. Может быть полезной для этой же цели. Для простоты использует функцию GetDefaultPrinter, доступную только в Windows 2000 и Windows XP. Избавиться от этой функции не проблема, просто мне это было не нужно да и лень.. Здесь. Весит 10 Кб.

Взято с Ссылка

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 13:30 12-05-2008 | Исправлено: RedPromo, 13:31 12-05-2008
Cyril Konst



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RedPromo
К сожалению, пример не подходит. Т.к. там работа с очередью с существующими принтерами. А мне нужно перехватывать создание нового принтера. И ещё там на С++, а мне нужно на Си и желательно попроще.

Всего записей: 634 | Зарегистр. 12-08-2003 | Отправлено: 14:28 12-05-2008 | Исправлено: Cyril Konst, 14:47 12-05-2008
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cyril Konst
Тогда извини больше примеров не знаю, тем более на чтобы все на чистом Си.  
Но еще раз повторю смотрел MSDN там вроде все нормально описано как и куда.
 
Как я понял там всеголиш нужно  
OpenPrinter(
LPTSTR pPrinterName,         // printer or server name
Windows NT/2000/XP: If NULL, it indicates the local printer server.  
И потом для  локального компа отлавливать установку новых драйверов.
И потом уже както handle принтера получать после установки в системе.
 

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 17:34 12-05-2008 | Исправлено: RedPromo, 17:38 12-05-2008
Cyril Konst



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RedPromo

Цитата:
Как я понял там всеголиш нужно  
OpenPrinter(  
LPTSTR pPrinterName,         // printer or server name  
Windows NT/2000/XP: If NULL, it indicates the local printer server.  
И потом для  локального компа отлавливать установку новых драйверов.  
И потом уже както handle принтера получать после установки в системе.

Принтер создаётся автоматически при логоне терминального юзера. Поэтому у нас в системе, как я понимаю, должна висеть прога с FindFirstPrinterChangeNotification/FindNextPrinterChangeNotification. Она должна отлавливать новый принтер и передавать его имя следующей процедуре SetPrinter для установки прав.
Кстати, когда создаётся новый принтер, соответсвующее предупреждение (с кодом ID : 2) появляется в системном журнале.

Всего записей: 634 | Зарегистр. 12-08-2003 | Отправлено: 09:18 13-05-2008 | Исправлено: Cyril Konst, 12:20 13-05-2008
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cyril Konst
Дело в том что мне кажется нужно прогу подгружать именно как сервис с правами админа чтобы он стартовал в логон сесии нового юзвера и назначал права кому нужно и как нужно.

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 13:58 13-05-2008
Cyril Konst



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RedPromo
Да, Вы правы. Это должен быть сервис, постоянно работающий и ловящий моменты создания принтера. Ибо юзер может логиниться в разное время. А право доступа нужно давать для групппы "Пользователи удалённого рабочего стола" уже после того как принтер будет создан системой.

Всего записей: 634 | Зарегистр. 12-08-2003 | Отправлено: 14:31 13-05-2008 | Исправлено: Cyril Konst, 14:34 13-05-2008
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cyril Konst
Вобще и мне интересна тема сервиса под терминальник нужно самому раздавать некоторые ограничения но не на принтер.

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 16:14 13-05-2008
Cyril Konst



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RedPromo
Есть такая штука - SetACL с исходниками http://setacl.sourceforge.net/. Она как раз позволяет раздавать права на всё, что угодно

Всего записей: 634 | Зарегистр. 12-08-2003 | Отправлено: 18:47 13-05-2008
RedPromo



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cyril Konst
Интересный ocx только жаль что без исходников.

Всего записей: 558 | Зарегистр. 05-04-2006 | Отправлено: 21:01 13-05-2008
f_serg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
RedPromo

Цитата:
жаль что без исходников.

На SourceForge без исходников? Издеваешься?
http://sourceforge.net/project/showfiles.php?group_id=69165&package_id=275197

----------
Serg

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 10:25 15-05-2008
Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
После вызова функции DragAcceptFiles определенная форма/элемент начинает обрабатывать перетягиваемые файлы. При "отпускании" файла генерируется сообщение WM_DROPFILES. Мне нужно определить, что курсор с файлом находится над моим элементом, то есть до того как кнопка мыши отпущена. Знаю, что это возможно, но незнаю как реализовано. Возможно, нужно обрабатывать WM_MOUSEMOVE. Но тогда как узнать что курсор не простой, а перетягивающий файл? Кто-нибудь знает как это делается?

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 19:15 17-05-2008
Blind

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не сочтите за оффтоп
Залейте, пожалуйста, куда-нибудь (кроме рапиды) файлик shobjidl.h
 
--
 
снято

Всего записей: 592 | Зарегистр. 06-10-2003 | Отправлено: 10:52 29-05-2008 | Исправлено: Blind, 09:51 30-05-2008
AnGo



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет, о всезнающие!
Необходимо реализовать диалог выбора каталога с отображением, в том числе, и ярлыков, указывающих на каталоги.
Стандартные действия с использованием функций типа:
SHGetSpecialFolderLocation(Handle, CSIDL_DRIVES, &PIDL);
к успеху не привели.
Можно отобразить все, но ярлычки для каталогов не отображаются.
Как бы это реализовать?

Всего записей: 1078 | Зарегистр. 07-07-2002 | Отправлено: 09:35 30-05-2008 | Исправлено: AnGo, 09:36 30-05-2008
Blind

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AnGo
Думается, что ярлык - это файл. Если использовать функцию SHBrowseForFolder, с флагом BIF_BROWSEINCLUDEFILES, то ярлыки отображаются. В мсдн'е есть пример как получить путь из ярлыка.

Всего записей: 592 | Зарегистр. 06-10-2003 | Отправлено: 10:45 30-05-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Программирование с использованием WinAPI


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru