| Автор
| Сообщение |
|
|
|
Цитата |
|
CreateFile харошо открывает порты , драйвера , файлы а как посылать и пренимать даные кто знает если можно дайте пожалуста на исходник посмотреть желатильно с каментариями.
ReadFile неполучяется чёто делою нетак |
|
| В начало |
|
 |
|
|
 |
 Ktf
Администратор

Возраст: 32
Знак зодиака: 
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
|
|
|
Цитата |
|
Вниманию всех новичков!
Изучайте русский язык!
Кривляться будете в зоопарке.
Топик закрыт. |
|
| В начало |
|
 |
 13-ый
Администратор

Возраст: 35
Знак зодиака: 
Зарегистрирован: 28.04.2002
Сообщения: 3551
Откуда: Москва
|
|
|
Цитата |
|
to ДОБ
to Ktf
замечание обоим...
to Ktf
не хочешь отвечать, не отвечай, ну не над в крайности кидаться...
to ДОБ
согласен с Ktf, русский язык надо уважать, не забывай, это тебе так прикольно писать, а другим может быть не приятно это читать...
и по существу, если говоришь что, что-то не выходит, то нужен код что ты делал и что не вышло, а то у тебе только общие слова... и в ответ ты услышешь тоже самое вместо конкретной помощи.
и относится это ко всем.
PS: to ДОБ за хамство буду удалять с форума... тем более к модератору, если не нравится, обратись к админам, они поставят, если надо, модератора на место. _________________
http://fotki.yandex.ru/users/vladimir13
С уважением, 13-ый  |
|
| В начало |
|
 |
|
|
|
Цитата |
|
13ый 1:спосиба это справедливо
2: вот код он непашит я могу таких ещё 2 показать этот код взят из книги Программирование в Delphi 7 Пётр Дарахвелидзе - Евгений марков возможно он написан с синтаксическими ошибками он взят из электронной книги там текст хроница как рисунок и при переводе обратно в текст программа не все символы правильно пишет если нетрудно отридоктируй но лутше покажи кокойнебуть свой код в котором в ком порт посылаетца и принимаеца информация или хатябы в файл
| Код: |
//Чтение сектора с дискеты при помощи функции CreateFile
type
pDIOCRegs = ^TDIOCRegs;
TDIOCRegs = packed record
rEBX,rEDX,rECX,rEAX,rEDI, rESI, rFlags : DWORD;
end;
const VWIN32_DIOC_DOS_IOCTL = 1;
VWIN32_DIOC_DOS_INT13 = 4 ; // Прерьшание 13
SectorSize = 512;
function ReadSector(Head, Track, Sector: Integer; buffer : pointer;
Floppy: char):Boolean;
var hDevice : THandle;
Regs : TDIOCRegs;
DevName : string;
nb : Integer;
begin
if WIN32PLATFORM = VER_PLATFORM_WIN32_NT then
begin //(win95/98}
hDevice := CreateFile('\\.\vwin32', GENERIC_READ, 0, nil, 0,
FILE_FLAG_DELETE_ON_CLOSE, 0);
if (hDevice = INVALID_HANDLE_VALUE) then
begin
Result := FALSE;
Exit;
end;
regs.rEDX := Head * $100 + Ord(Floppy in ['b', 'B']);
regs.rEAX := $201; // код операции read sector
regs.rEBX := DWORD(buffer); // buffer
regs.rECX := Track * $100 + Sector;
regs.rFlags := $0;
Result := DeviceioControl(hDevice,VWIN32_DIOC_DOS_INT13,
@regs, sizeof(regs), @regs, sizeof(regs),nb, nil)
and ((regs.rFlags and $1)=0);
CloseHandle(hDevice) ;
end {win95/98}
else
begin // Windows NT/2000
DevName :='\\.\A:';
if Floppy in ['b', 'B'] then DevName[5] := Floppy;
hDevice := CreateFile(pChar(Devname), GENERIC_READ, FILE_SHARE_READ
or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if (hDevice = INVALID_HANDLE_VALUE) then
begin
Result := FALSE;
Exit;
end;
SetFilePointer(hDevice, (Sector-1)*SectorSize, nil, FILE_BEGIN);
// нумерация с 1
Result := ReadFile(hDevice, buffer^, SectorSize, nb, nil) and
(nb=SectorSize);
CloseHandle(hDevice);
end; // Windows NT/2000
|
|
|
| В начало |
|
 |
|
|
|
Цитата |
|
| Ktf В чём смысл твоей фразы ? |
|
| В начало |
|
 |
 Ktf
Администратор

Возраст: 32
Знак зодиака: 
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
|
|
|
Цитата |
|
| Вот видишь, ты можешь и не кривляясь. |
|
| В начало |
|
 |
|
|
| В начало |
|
 |
|
|
|
Цитата |
|
| Ktf так ты знаеш как решить мою проблему или просто ради смеха остонавил обсуждение если знаеш помоги пожалусто |
|
| В начало |
|
 |
 Ktf
Администратор

Возраст: 32
Знак зодиака: 
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
|
|
|
Цитата |
|
на днях выложу примерчик с комментариями, если не забуду.
а ты пока хелп поизучай, может к тому времени и сам разберешься.
кстати - глянул я на приведенный тобой код и обнаружил вот такую штуку
| Код: | if WIN32PLATFORM = VER_PLATFORM_WIN32_NT then
begin //(win95/98}
и далее код для платформы 9х |
здесь явно ошибка.
правильно так
| Код: | if WIN32PLATFORM <> VER_PLATFORM_WIN32_NT then
begin //(win95/98}
и далее код для платформы 9х |
|
|
| В начало |
|
 |
|
|
 |
|
|
|
Цитата |
|
Ktf пажалусто выложи код Xelp для меня бесполезен я английскова незнаю а переводчик мой (x-Translator PLATINUM) такие словосочитания выдаёт что и в укуреном сне неприсница например
оригинал
| Цитата: |
WH_CBT
Installs a hook procedure that receives notifications useful to a computer-based training (CBT) application. For more information, see the CBTProc hook procedure.
|
перивод
| Цитата: |
WH_CBT
Устанавливает процедуру крюка, которая получает уведомления, полезные для машинного обучения (CBT) заявление(применение). За дополнительной информацией, см. процедуру крюка CBTProc.
|
Ты понел что тут говарица о том что если устонавить эту ловушку с сестеме она будет ловить сообщения
HCBT_ACTIVATE — приложение активизировалось;
HCBT_CREATEWND — создано новое окно;
HCBT_DESTROYWND — уничтожено существующее окно;
HCBT_MINMAX — окно свернули или развернули на весь экран;
HCBT_MOVESIZE — окно переместили или изменили размер.
Сколько я хелп нечитал ничего так и непонял из него только парамитры можно узнать и то такие действие которых можно
проверить методом научного тыка createfile не тот случай. |
|
| В начало |
|
 |
 dogma
aka Достоевский

Возраст: 27
Знак зодиака: 
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
|
|
|
Цитата |
|
| Цитата: | | PS: to ДОБ за хамство буду удалять с форума... тем более к модератору, если не нравится, обратись к админам, они поставят, если надо, модератора на место. |
С местной мафией лучше не спорить
to ДОБ
Смотри процедуру крюка  _________________ Bonum initium est dimidium facti
SQL-задачи (on-line) |
|
| В начало |
|
 |
|
|
|
Цитата |
|
| Цитата: |
Смотри процедуру крюка
|
Да там моразм нелутше  |
|
| В начало |
|
 |
|
|
|
Цитата |
|
| Ktf так где пример обещиный |
|
| В начало |
|
 |
 Ktf
Администратор

Возраст: 32
Знак зодиака: 
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
|
|
|
Цитата |
|
| delphi: | procedure TForm1.Button1Click(Sender: TObject); var f: THandle; // хендл порта WriteData: string; // буфер для передаваемых в порт данные ReadData: array[0..MAXSHORT] of char; // буфер для полученных данных ActSize: cardinal; // число фактически переданных байт begin // допустим, что модем подключен к третьему COM-порту f := CreateFile('\\.\COM3', // lpFileName <- имя открываемого порта GENERIC_READ or GENERIC_WRITE, // dwDesiredAccess <- режим доступа к порту (чтение и запись) 0, // dwShareMode <- не используется nil, // lpSecurityAttributes <- не используется OPEN_EXISTING, // dwCreationDisposition <- открыть существующий 0, // dwFlagsAndAttributes <- не используется 0); // hTemplateFile <- не используется if f = INVALID_HANDLE_VALUE then // не удалось открыть begin ShowMessage('Не удается открыть порт.'); end; try WriteData := 'ATI3'#13#10; // команда для определения модели модема // передаем данные в порт if WriteFile(f, // hFile <- хендл порта, полученный с помощью createFile PChar(WriteData)^, // Buffer <- передаваемые в порт данные Length(WriteData), // nNumberOfBytesToWrite <- число байт для передачи ActSize, // lpNumberOfBytesWritten <- указатель для получения числа фактически переданных байт nil) // lpOverlapped <- не используется then begin // получаем ответ ReadFile(f, // hFile <- хендл порта, полученный с помощью createFile ReadData, // Buffer <- буфер для полученных данных MAXSHORT, // nNumberOfBytesToRead <- размер буфера ActSize, // lpNumberOfBytesRead <- указатель для получения числа фактически полученных байт nil); // lpOverlapped <- не используется ShowMessage(ReadData); end else ShowMessage('Не удается отправить команду.'); finally CloseHandle(f); // закрываем хэндл порта end end;
|
такой пойдет?  |
|
| В начало |
|
 |
|
|
|
Цитата |
|
| Ktf спосибо топик можно закрыть |
|
| В начало |
|
 |
|