function CheckIddleTime: DWord;
var
LastInput: TLastInputInfo;
begin
LastInput.cbSize := SizeOf(TLastInputInfo);
GetLastInputInfo(LastInput);
Result := GetTickCount - LastInput.dwTime;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption:= 'Время простоя: ' + vartostr(CheckIddleTime/1000)+' секунд(ы)';
end;
Есть идея по созданию интересной программы?
пятница, 19 ноября 2010 г.
четверг, 18 ноября 2010 г.
среда, 17 ноября 2010 г.
Файлы, проецируемые в память
Ярлыки:
Иститут
Технология файлов, проецируемых в память, является изящным средством для разделения ресурсов файловой системы между процессами.
При проецировании файла на адресное пространство процесса процесс может обращаться к содержимому файла так, как если бы файл был загружен в оперативную память.
Если несколько процессов выполняют проецирование одного и того же файла, то содержимое файла будет доступно для всех процессов, то есть позволит избежать загрузки множества экземпляров файла в оперативную память.
Для проецируемых файлов применяется 64-битная адресация, что позволяет использовать данную технологию для обработки сверхбольших (до 18 экзабайт) файлов, преодолевая, тем самым, ограничение на размер файла в 2 гигабайта.
При проецировании файла на адресное пространство процесса процесс может обращаться к содержимому файла так, как если бы файл был загружен в оперативную память.
Если несколько процессов выполняют проецирование одного и того же файла, то содержимое файла будет доступно для всех процессов, то есть позволит избежать загрузки множества экземпляров файла в оперативную память.
Для проецируемых файлов применяется 64-битная адресация, что позволяет использовать данную технологию для обработки сверхбольших (до 18 экзабайт) файлов, преодолевая, тем самым, ограничение на размер файла в 2 гигабайта.
пятница, 12 ноября 2010 г.
Программа для информирования пользователя о смене языка ввода 2 (Написана на Delphi)
Ярлыки:
Полезное
Немного изменил интерфейс, добавил то, что просили
Если нужен дополнительный функционал пишите.
Скачать программу под Windows XP SP3 можно отсюда Download
Скачать программу под Windows XP SP3 и Windows 7 64 можно отсюда Download
Как и просили исходник Windows 7 64
Так как нет возможности создания 64-х разрядной DLL сделал по таймеру))
Если нужен дополнительный функционал пишите.
Скачать программу под Windows XP SP3 можно отсюда Download
Скачать программу под Windows XP SP3 и Windows 7 64 можно отсюда Download
Как и просили исходник Windows 7 64
Так как нет возможности создания 64-х разрядной DLL сделал по таймеру))
пятница, 5 ноября 2010 г.
Программа для информирования пользователя о смене языка ввода (Написана на Delphi)
Ярлыки:
Полезное
Программа информирует вас о смене языка ввода так, как это не всегда происходит при нажатии комбинации клавиш которые, как раз отвечают за это дело, но эта программа известит вас об этом звуковым сигналом или сменой указателя мыши и гудком все это дело настраивается без проблем в программе.
Программа работает в ОС Windows XP SP3
Скриншот программы
Программа бесплатная так, что вы ее используете на свой страх и риск!
Я не несу ответственности за вред который вы причините используя эту программу!
ВИРУСОВ НЕТ!
Скачать программу под Windows XP SP3 можно отсюда Download
Скачать программу под Windows 7 64 можно отсюда Download
В дополнение ко все хочу сказать, что я не пытался сделать PuntoSwithcher, слишком много автоматизации иногда мешает им ни когда не пользовался и не собираюсь, каждому своё!
Программа работает в ОС Windows XP SP3
Скриншот программы
Программа бесплатная так, что вы ее используете на свой страх и риск!
Я не несу ответственности за вред который вы причините используя эту программу!
ВИРУСОВ НЕТ!
Скачать программу под Windows XP SP3 можно отсюда Download
Скачать программу под Windows 7 64 можно отсюда Download
В дополнение ко все хочу сказать, что я не пытался сделать PuntoSwithcher, слишком много автоматизации иногда мешает им ни когда не пользовался и не собираюсь, каждому своё!
понедельник, 1 ноября 2010 г.
Google Chrome Frame for Delphi 2010
Ярлыки:
Компоненты
Компонент для использования функций Google Chrome в своих приложениях или же написания своего браузера на основе Google Chrome в Delphi.
Скриншот примера идущего в комплекте с компонентом.
ActiveX из npchrome_frame.dll не импортируется полностью и один хороший человек написал компонент на радость пользователям Delphi сайт
Компонент Google Chrome Frame для Delphi 2010 можно скачать отсюда Download
Скриншот примера идущего в комплекте с компонентом.
ActiveX из npchrome_frame.dll не импортируется полностью и один хороший человек написал компонент на радость пользователям Delphi сайт
Компонент Google Chrome Frame для Delphi 2010 можно скачать отсюда Download
суббота, 23 октября 2010 г.
Организация межзадачного обмена
Ярлыки:
Иститут
Задание. Организовать работу программы-сервера и нескольких программ клиентов следующим образом:
Сервер предоставляет клиентам кокой-либо из своих ресурсов (например, собственное окно)
Клиенты подключаются к серверу и начинают запись в окно, причем первый клиент пишет только «1», второй – только «2», и т.д. Клиентов может быть произвольное количество, но не менее пяти.
Если клиент подключается к серверу в монопольном режиме, он получает исключительные права на использование ресурса сервера. Все остальные клиенты, пытающиеся подключиться в данный момент, не должны получить доступ к ресурсу сервера и должны оказаться в очереди на обслуживание.
воскресенье, 17 октября 2010 г.
MEMORY_BASIC_INFORMATION структура
Ярлыки:
Windows
Содержит сведения о диапазоне страниц в виртуальном адресном пространстве процесса. Функции VirtualQuery и VirtualQueryEx использовать эту структуру.
Синтаксис Delphi
type
PMemoryBasicInformation = ^TMemoryBasicInformation;
_MEMORY_BASIC_INFORMATION = record
BaseAddress : Pointer;
AllocationBase : Pointer;
AllocationProtect : DWORD;
RegionSize : DWORD;
State : DWORD;
Protect : DWORD;
Type_9 : DWORD;
end;
{$EXTERNALSYM _MEMORY_BASIC_INFORMATION}
TMemoryBasicInformation = _MEMORY_BASIC_INFORMATION;
MEMORY_BASIC_INFORMATION = _MEMORY_BASIC_INFORMATION;
{$EXTERNALSYM MEMORY_BASIC_INFORMATION}
Члены
Требования
Синтаксис Delphi
type
PMemoryBasicInformation = ^TMemoryBasicInformation;
_MEMORY_BASIC_INFORMATION = record
BaseAddress : Pointer;
AllocationBase : Pointer;
AllocationProtect : DWORD;
RegionSize : DWORD;
State : DWORD;
Protect : DWORD;
Type_9 : DWORD;
end;
{$EXTERNALSYM _MEMORY_BASIC_INFORMATION}
TMemoryBasicInformation = _MEMORY_BASIC_INFORMATION;
MEMORY_BASIC_INFORMATION = _MEMORY_BASIC_INFORMATION;
{$EXTERNALSYM MEMORY_BASIC_INFORMATION}
Члены
- BaseAddress
- Указатель на базовый адрес региона страниц.
- AllocationBase
- Указатель на базовый адрес диапазона страниц ассигнован функцией VirtualAlloc. Страница, на которую указывает член BaseAddress, содержится в пределах этого диапазона распределения.
- AllocationProtect
- Выбор защиты памяти, когда область была первоначально ассигнована. Этот участник может быть одной из констант защиты памяти или 0, если у гостя нет доступа.
- RegionSize
- Размер в регионе, начиная с базового адреса, в которой все страницы имеют идентичные атрибуты, в байтах.
- State
- Состояние страницы в регионе. Этот член может быть одним из следующих значений.
Состояние Смысл
- MEM_COMMIT
- 0x1000
Указывает на фиксированные страницы, для которых физическое хранение было выделено, или в памяти или в страничном файле на диске.
- MEM_FREE
- 0x10000
Указывает свободных страниц, не доступных для вызывающего процесса и которые будут выделены. Для свободных страниц информация в AllocationBase, AllocationProtect, Protect, тип и элементы не определены.
- MEM_RESERVE
- 0x2000
Указывает на зарезервированные страницы, где диапазон виртуального адресного пространства процесса зарезервирован без любого физического выделяемого хранения. Для зарезервированных страниц информация в элементе защита не определена.
- Protect
- Защита доступа страницы в регионе. Этот член является одним из значений, перечисленных для элемента AllocationProtect.
- Type
- Тип страниц в регионе. Определены следующие типы.
Тип Смысл
- MEM_IMAGE
- 0x1000000
Указывает, что страницы памяти в пределах региона сопоставляются в представление изображения раздела.
- MEM_MAPPED
- 0x40000
Указывает, что страницы памяти в пределах региона сопоставляются в представление раздела.
- MEM_PRIVATE
- 0x20000
Указывает на страницах памяти в пределах частного региона (что не разделяется другими процессами).
Чтобы позволить отладчику отладить цель, которая используется на различной архитектуре (32-битовый против 64-битового), используйте одну из явных форм этой структуры.
Копия
typedef struct _MEMORY_BASIC_INFORMATION32 {
DWORD BaseAddress;
DWORD AllocationBase;
DWORD AllocationProtect;
DWORD RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
} MEMORY_BASIC_INFORMATION32, *PMEMORY_BASIC_INFORMATION32;
typedef struct DECLSPEC_ALIGN(16) _MEMORY_BASIC_INFORMATION64 {
ULONGLONG BaseAddress;
ULONGLONG AllocationBase;
DWORD AllocationProtect;
DWORD __alignment1;
ULONGLONG RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
DWORD __alignment2;
} MEMORY_BASIC_INFORMATION64, *PMEMORY_BASIC_INFORMATION64;
Требования
Минимальная поддерживаемая клиента | Windows 2000 Professional |
|---|---|
Минимальный поддерживаемый сервер | Windows 2000 Server |
Заголовок | Windows.pas |
VirtualQuery Delphi
Ярлыки:
Windows
Извлекает сведения о диапазоне страниц в виртуальном адресном пространстве вызывающего процесса.
Чтобы извлечь сведения о диапазоне страниц в адресное пространство другого процесса, используйте функцию VirtualQueryEx.
Синтаксис Delphi
function VirtualQuery(lpAddress: Pointer;
var lpBuffer: TMemoryBasicInformation; dwLength: DWORD): DWORD; stdcall;
Замечания
Если изменить общую страницу copy-on-write, становится частным процессу изменения страницы. Однако функции VirtualQuery продолжит представлять такие страницы как MEM_MAPPED (для представления данных) или MEM_IMAGE (для исполняемого образа просмотров), а не MEM_PRIVATE. Чтобы определить, произошла ли copy-on-write для конкретной страницы, либо доступ к странице или блокировки его с помощью функции VirtualLock убедитесь, что страница находится в памяти, а затем используйте функцию QueryWorkingSetEx, чтобы проверить Общие бит в расширенная информация о рабочем множестве для страницы. Если бит Shared ясно, страница является частным.
Чтобы извлечь сведения о диапазоне страниц в адресное пространство другого процесса, используйте функцию VirtualQueryEx.
Синтаксис Delphi
function VirtualQuery(lpAddress: Pointer;
var lpBuffer: TMemoryBasicInformation; dwLength: DWORD): DWORD; stdcall;
- lpAddress [in, необязательно]
- Указатель на базовый адрес региона страниц для запрашиваться. Это значение округляется до следующей границу страницы. Чтобы определить размер страницы на главном компьютере, используйте функцию GetSystemInfo.
Если lpAddress указывает адрес выше наивысший адрес памяти, доступной для процесса, функция завершается с ERROR_INVALID_PARAMETER.
- lpBuffer [out]
- Указатель на структуру MEMORY_BASIC_INFORMATION, в которых информация указанная страница возвращается диапазон.
- dwLength [in]
- Размер буфера указывает параметр lpBuffer, в байтах.
Возвращаемое значение является фактическим количество байтов, возвращенных в буфере сведений.
Если вызов функции был неуспешен, возвращаемое значение равно нулю. Чтобы получить расширенные сведения об ошибке, вызовите функцию GetLastError. Значения возможной ошибки включают ERROR_INVALID_PARAMETER.Замечания
VirtualQuery предоставляет информацию о регионе последовательных страниц, начиная с указанного адреса, которые разделяют следующие атрибуты:
- Состояние всех страниц равно же (MEM_COMMIT, MEM_RESERVE, MEM_FREE, MEM_PRIVATE, MEM_MAPPED или MEM_IMAGE).
- Если начальная страница не свободна, все страницы в регионе являются частью же первоначальное распределение страниц созданных один вызов VirtualAlloc, MapViewOfFile или один из следующих расширенных версий этих функций: VirtualAllocEx, VirtualAllocExNuma, MapViewOfFileEx, MapViewOfFileExNuma.
- Права доступа, предоставляемые всех страниц это же (PAGE_READONLY, PAGE_READWRITE, PAGE_NOACCESS, PAGE_WRITECOPY, PAGE_EXECUTE, PAGE_EXECUTE_READ, PAGE_EXECUTE_READWRITE, PAGE_EXECUTE_WRITECOPY, PAGE_GUARD или PAGE_NOCACHE).
Если изменить общую страницу copy-on-write, становится частным процессу изменения страницы. Однако функции VirtualQuery продолжит представлять такие страницы как MEM_MAPPED (для представления данных) или MEM_IMAGE (для исполняемого образа просмотров), а не MEM_PRIVATE. Чтобы определить, произошла ли copy-on-write для конкретной страницы, либо доступ к странице или блокировки его с помощью функции VirtualLock убедитесь, что страница находится в памяти, а затем используйте функцию QueryWorkingSetEx, чтобы проверить Общие бит в расширенная информация о рабочем множестве для страницы. Если бит Shared ясно, страница является частным.
Эта функция доклады на регионе страниц в памяти вызывающего процесса, и функцию VirtualQueryEx доклады о регионе страниц в памяти указанным процессом.
Требования
Требования
Минимальная поддерживаемая клиента | Windows 2000 Professional |
|---|---|
Минимальный поддерживаемый сервер | Windows 2000 Server |
Заголовок | Windows.pas |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |
SYSTEM_INFO Delphi
Ярлыки:
Windows
PSystemInfo = ^TSystemInfo;
_SYSTEM_INFO = record
case Integer of
0: ( dwOemId: DWORD);
1: (wProcessorArchitecture: Word;
wReserved: Word;
dwPageSize: DWORD;
lpMinimumApplicationAddress: Pointer;
lpMaximumApplicationAddress: Pointer;
dwActiveProcessorMask: DWORD;
dwNumberOfProcessors: DWORD;
dwProcessorType: DWORD;
dwAllocationGranularity: DWORD;
wProcessorLevel: Word;
wProcessorRevision: Word);
end;
{$EXTERNALSYM _SYSTEM_INFO}
TSystemInfo = _SYSTEM_INFO;
SYSTEM_INFO = _SYSTEM_INFO;
{$EXTERNALSYM SYSTEM_INFO}
Эта структура содержит сведения о текущей системе компьютера. Она включает в себя тип процессора, размер страницы, адреса памяти и идентификатор OEM.
_SYSTEM_INFO = record
case Integer of
0: ( dwOemId: DWORD);
1: (wProcessorArchitecture: Word;
wReserved: Word;
dwPageSize: DWORD;
lpMinimumApplicationAddress: Pointer;
lpMaximumApplicationAddress: Pointer;
dwActiveProcessorMask: DWORD;
dwNumberOfProcessors: DWORD;
dwProcessorType: DWORD;
dwAllocationGranularity: DWORD;
wProcessorLevel: Word;
wProcessorRevision: Word);
end;
{$EXTERNALSYM _SYSTEM_INFO}
TSystemInfo = _SYSTEM_INFO;
SYSTEM_INFO = _SYSTEM_INFO;
{$EXTERNALSYM SYSTEM_INFO}
Эта структура содержит сведения о текущей системе компьютера. Она включает в себя тип процессора, размер страницы, адреса памяти и идентификатор OEM.
Подписаться на:
Сообщения (Atom)
