Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 9 из 116<  1 ... 6  7  8  9  10  11  12 ... 116  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 03.01.2004
Откуда: Питер
Skyggedans
Цитата:
Из Windows.pas:

function GetRValue(rgb: DWORD): Byte;
function GetGValue(rgb: DWORD): Byte;
function GetBValue(rgb: DWORD): Byte;


СПАСИБО! :beer:
Наконец-то у меня все заработало как надо!!!



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Можно и без функций обойтись
r=rgb and $FF0000 shr 16;
g=rgb and $FF00 shr 8;
b=rgb and $FF;


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Ray Adams еще пара глупых вопросов, по раннее приведенному коду подгрузки драйвера:
Код:
m_hDriver := CreateFile('\\.\rvbedit', GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);

Что нужно объявить для использования m_hDriver?
И
Код:
ShowMessage(frmMain.GetString(3055));

Тоже самое о GetString.

_________________
Ку ку


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Цитата:
ShowMessage(frmMain.GetString(3055));

Про это забудь, GetString у меня система для работы с multilingual интерфейс.

Цитата:
Что нужно объявить для использования m_hDriver?

Переменную типа m_hDriver:THandle;


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Что-то не выходит, делаю так:
Код:
function TMainFormONS.LoadIODriver: boolean;
var s:String;
    hManager,hService:SC_HANDLE;
    b:PChar;
    TR:TResourceStream;
    tmpsdir:array[0..255] of char;
    m_hDriver:THandle;
begin
     if Win32Platform<>VER_PLATFORM_WIN32_NT   then
        begin
             result:=true;
             exit;
        end;
     s:=ExtractFilePath(ParamStr(0))+'giveio.sys';

     hManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
     if (hManager=0) then
     begin
          //ShowMessage(frmMain.GetString(3055));
          result:=false;
          exit;
     end;
hService := CreateService (hManager     // SCManager database
               , 'giveio'    // name of service
            , 'giveio'    // name to display
         , SERVICE_ALL_ACCESS  // desired access
      , SERVICE_KERNEL_DRIVER  // service type
      , SERVICE_DEMAND_START  // start type
      , SERVICE_ERROR_NORMAL  // error control type
      , pchar(s)    // service's binary
      , nil      // no load ordering group
      , nil      // no tag identifier
      , nil      // no dependencies
      , nil      // LocalSystem account
      , nil      // no password
      );
 if (hService=0) then
 begin
      //RaiseLastOSError;
      result:=false;
      exit;

 end;
 if (hService<>0) then CloseServiceHandle(hService);
 hService := OpenService(hManager, 'giveio', SERVICE_ALL_ACCESS);
 if (hService<>0) then
 begin
  b:=nil;
  if StartService(hService, 0, b) then
  CloseServiceHandle(hService)
  else ;//RaiseLastOSError;
 end;

 m_hDriver := CreateFile('\.giveio', GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 if (m_hDriver = INVALID_HANDLE_VALUE) then
 begin
  CloseServiceHandle(hManager);
  result:=FALSE;
  exit;
 end;
 CloseServiceHandle(hManager);
 result:=true;
end;


Добавлено спустя 17 минут, 4 секунды:
Первый раз при инсталле драйвера все ОК. Затем при последующих запусках функция выдает false. Покдключаюсь к драйверу через m_hDriver := CreateFile('\\.\giveio', GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
Всеравно не пашет, но если запускаю драйвер через панель диспетчер устройств, функция выдает false, но при подключении через CreateFile все работает нормально, может тип запуска драйвера поменять, например, что бы грузился при старте винды?

_________________
Ку ку


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Ну тот код малость устарел, вот тебе кусок из ATT
Цитата:
hService := CreateService (hManager // SCManager database
, PChar(s_rvxedit) // name of service
, PChar(s_rvxedit) // name to display
, SERVICE_ALL_ACCESS // desired access
, SERVICE_KERNEL_DRIVER // service type
, SERVICE_DEMAND_START // start type
, SERVICE_ERROR_NORMAL // error control type
, pchar(s) // service's binary
, nil // no load ordering group
, nil // no tag identifier
, nil // no dependencies
, nil // LocalSystem account
, nil // no password
);

{$IFDEF debug_ver}
SaveToLog('CreateService result:'+inttostr(hService)+' : LastOSError '+inttostr(GetLastError()));
{$ENDIF}
err:=GetlastError();
if (hService=0) and (err<>ERROR_DUP_NAME)and (err<>ERROR_SERVICE_EXISTS) then
begin
// RaiseLastOSError;
m_hDriver:=INVALID_HANDLE_VALUE;
result:=false;
exit;

end;

Как видиш если вернулось ERROR_DUP_NAME или ERROR_SERVICE_EXISTS то ничего страшного, значить он уже проинсталлирован и можно дальше идти.


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Сенкс еще раз :wink:

Добавлено спустя 11 часов, 27 минут, 40 секунд:
Занялся данной байдой, перелопатил старый код, покоцал, влепил новый и теперь работает безотказно. Рекомпайленный IOaccess тоже работает отлично. Спасибо который раз.
PS Может знает кто, какой драйвер дает возможность под виндой выполнять rdmsr и wrmsr?

Добавлено спустя 10 часов, 31 минуту, 10 секунд:
А может кто подскажет как выгрузить драйвер или стопорнуть его работу, а то после завершения программы он остаеться работать.

_________________
Ку ку


 

Предупреждение на неделю за обсуждение взлома ПО. vor


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Daemon
Код:
procedure TRVX.UnloadDriver;
var hManager,hService :SC_HANDLE;
    i_serviceStatus:SERVICE_STATUS;

begin
if not isLoaded then exit;
if Win32Platform<>VER_PLATFORM_WIN32_NT then exit;
CloseHandle(m_hDriver);

hManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
 if (hManager=0) then exit;

 hService := OpenService(hManager, PChar(s_rvxedit), SERVICE_ALL_ACCESS);
 if (hService=0) then exit;
 ControlService(hService, SERVICE_CONTROL_STOP, i_serviceStatus );

// DeleteService(hService) ;
 CloseServiceHandle(hService);
 CloseServiceHandle(hManager);

end;

Код опять же из ATT


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Ray Adams сенкс :-)

Вопрос следующего плана, помещаю программу в автозагрузку, так при старте Винды, прога неправильно читает конфигурационные файлы и данные из реестра. Или вообще не читает :-( В чем может быть лажа?

Да, и глупый вопрос, как увеличить количество столбцов в компоненте ValueListEditor?

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 07.04.2004
Откуда: Планета Земля
Daemon
Цитата:
Да, и глупый вопрос, как увеличить количество столбцов в компоненте ValueListEditor?

используй ListView

_________________
Keyboard not found, press F1 to continue...
Press any key to continue, or another to exit...


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
web-dav ListView не подходит. Ну никогда не поверю, что кто-то из вас не сталкивался с подобными проблемами

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 07.04.2004
Откуда: Планета Земля
Daemon
а если тип просмотра поставить как Report???

_________________
Keyboard not found, press F1 to continue...
Press any key to continue, or another to exit...


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
web-dav где такое свойство? Вообщем мне надо выводить данные СМАРТ, допустим как в Спидфане.

_________________
Ку ку


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
Daemon
List.ViewStyle := vsReport;

_________________
Цель жизни - d20 по жизни...


 

Member
Статус: Не в сети
Регистрация: 14.01.2004
Откуда: Киев, Украина
Упс, а я в TreeView смотрю, спасибо, подходит. А вот тогда ValueListEditor - совершенно бесполезная штука.

Добавлено спустя 1 час, 13 минут, 33 секунды:
Кто подскажет как добавлять подитемы. Добавить строку можно и так
Код:
ListView.Items.Add.Caption:='Test';

Но как добавить подитемы, типа такого:

Test1 test1a test1b

При этом столбцы созданы, а то делаю ListView.Items.Add.SubItems.Add('test1a'), а он мне на новую строку.

_________________
Ку ку


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
вот так
Код:
with ListView1.Items.Add do
begin
        Caption:='Item';
        SubItems.Add('SubItem');
        SubItems.Add('SubItem');
end;


 

Member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: [Omsk Team]
Всем ХЕЛП ME! РГР задали, а инфы нигде нет. Задание заключается в "распозновании" всяких кружков и линий сохраненных из AutoCAD'а в формате .DXF. Проблема - отсутствие подробного описания этого формата!!!
Всем спасибо за внимание.

_________________
3D Mark 2001-&gt;13946
3D Mark 2003-&gt;4010 PC Mark-&gt;4100 AquaMark3-&gt;31781


 

Member
Статус: Не в сети
Регистрация: 15.04.2004
Откуда: Москва
VaXoID
http://myfileformats.com/download.php?u ... 0&name=DXF
P.S. В гугле идет 3-ей ссылкой.

_________________
Цель жизни - d20 по жизни...


 

Заблокирован
Заблокирован
Статус: Не в сети
Регистрация: 02.11.2003
Откуда: Россия,Москва
Люди плиз объясните.Я только 1 раз за Delphi и ни как не могу понять что ж у меня в этой проге все время загарается строка красным
procedure TForm1.Button1Click(Sender: TObject);- вот эта??Просто что то догнать не могу.Прога для пересчета фунтов в килограммы.



unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}


begin
procedure TForm1.Button1Click(Sender: TObject);
var
f:real; //âåñ â ôóíòàõ
k:real; //âåñ â êèëîãðàììàõ


begin
f:=StrToFloat(Edit1.Text); //ïåðåâåëè ñîäåðæèìîå Edit1 â ÷èñëî
k:=f*0.4059;
label2.Caption:=Edit1.text+' ôóíò(à/îâ) ýòî '+
FloatToStr(k)+' êèëîãðàìì';
end;


[an error occurred while processing this directive]

end;

end.

_________________
Ego potissimus. Если кто не понял - его проблемы... Правда - и я не допёр... Хотя догадываюсь.Типа на Латыне что то.....


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2317 • Страница 9 из 116<  1 ... 6  7  8  9  10  11  12 ... 116  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan