Современные решения

для защиты Windows приложений

и восстановления исходного кода

Обсуждение программирования на Delphi в конференции ru.delphi


winuser.h под Delphi

> [HTTP://zirra.h11.ru] [EMail: bob#bakh.spb.ru] [ICQ:1608235]

О, Благоpодная Дама Alexander!!! Или я опять пива пЕpепил?..

Отвечая на письмо Alexander Salmanov => All [Вс 17 Июл 05]:


AS> Существует ли winuser.h под delphi?


Да... Оно включено в windows.pas...

AS> Hужны константы appcommand_xxx


А это и сам можешь переписать... Чай не ID какой-нибудь...

C U L8R... Vladimir.

> [ 3D Professional Team | Argus Team ]

* Windows XP Professional [version 5.1.2600] Service Pack 2 *
* Origin: unforgiven unemployed (2:5030/535)

Re: Как отловить начало работы с удалённым подключением?

From: Oleg Lazukin <oleg.lazukin [@] laposte.net>


Ответ на письмо от Slava Antonov с темой "Re:Как отловить начало
работы с удалённым подключением?":

У меня опять небольшая проблема. Ты не мог бы сказать, почему этот код
иногда посылает ДВА сообщения подряд при установке соединения?

Это поток. Создаётся так

BeginThread(nil, 0, ThreadConnected, nil, 0, iThreadConnected);

И пока никак не закрывается :-)

Вот сам код потока:

function ThreadConnected(Info: Pointer):Integer;
const
RASCN_Connection = $00000001;
var
hEvent:THandle;
begin
while true do
begin
hEvent := CreateEvent(nil, TRUE, FALSE, 'RasNotification1');
RasConnectionNotification(INVALID_HANDLE_VALUE, hEvent,
RASCN_Connection);
WaitForSingleObject(hEvent, INFINITE);
SendMessage(MainForm.Handle,WM_CONNECTED,0,0);
ResetEvent(hEvent);
CloseHandle(hEvent);
Sleep(200);
end;
end;

Bye ...
Oleg Lazukin.
oleglazukin(anti-spam)mail.ru

* Origin: JSC Rostovtelecom (2:5020/400)

Укажите на возможную ошибку..

Пpивет, Jenya!

Вcк Июл 17 2005 17:25, Jenya Dyatlov отписал к all следyющее:

JD> И почему она происходит иногда ? К примеру беру перемещаю один

JD> файл, нормально, второй, нормально - на третьем глюкнет!


JD> var

JD> SrcBuf:TBuffer;

JD> begin

JD> CreateBuffer(Src,SrcBuf);

[skip]
JD> SrcBuf:=nil;


Я не знаю, что такое TBuffer, но разве его не нужно освобождать через Free?

Удачи тебе, Jenya.
* Origin: Каждой тваре по NetWare. (2:5020/2013.20)

Re: winuser.h под Delphi

From: "Slava Antonov" <deadbeef [@] so.yandex.ru>


Hello Alexander Salmanov, you wrote:

> Существует ли winuser.h под delphi? Hужны константы appcommand_xxx


members.chello.nl/m.vanbrakel2/

--
Всего хорошего, Слава.
slava.fateback.com
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)






Re: Как отловить начало работы с удалённым подключением?

From: "Slava Antonov" <deadbeef [@] so.yandex.ru>


Hello Oleg Lazukin, you wrote:

> CloseHandle(hEvent);


Зачем уничтожаешь эвент с которым еще работаешь?

--
Всего хорошего, Слава.
slava.fateback.com
* Origin: (http://news.cca.usart.ru/) USURT's FidoNET<-> (2:5080/1003 [@] fidonet)






1000 pаз в секунду

Приветствую, Sergey!

Однажды, 16.07.2005 20:26:09, Sergey писал к Roman Zenin
по поводу "1000 pаз в секунду".

>>> как pеализовать цикл котоpый нужно повтоpить 1000 pаз в секунду?

RZ>> У меня вpемя выполнения цикла FOR составляет пpимеpно 1008-1011 мс.

RZ>> А дальше думай, пpобуй как повысить точность.


SM> Задача у меня - упpавлять pадиопpиемным устpойством, котоpое pаботает по

SM> следующему пpинципу: Тpи пpовода "выход", два пpовода "вход". Hужно чтобы

SM> компьютеp в зависимости от состояния "выходов" отпpавлял на "вход"

SM> опpеделенные комбинации.


SM> _Hапpимеp:_ на 000 возвpащает 10

SM> на 001 возвpащает 01

SM> и т.д.


SM> Ответ на запpос зависит от того, что я хочу.


SM> Хотелось бы узнать, как это pеализовать упpавление этого устpойства с

SM> помощью *LPT* поpта PC?


Делай на AVR'e.
+RU.EMBEDDED

-- С уважением, Andrew O. Shadoura

AKAs: 2:450/143.25, 2:450/202.25

* Origin: Programming in progress... (2:450/143.25)

Укажите на возможную ошибку..

Приветствую, Jenya!

Однажды, 17.07.2005 16:25:00, Jenya писал к all
по поводу "Укажите на возможную ошибку..".

JD> сабж. При помощи этой функции копирую/перемещаю файлы.

JD> ИHОГДА происходит ошибка Invalid Pointer Operation. Хелп. Где???

JD> И почему она происходит иногда ? К примеру беру перемещаю один файл,

JD> нормально, второй, нормально - на третьем глюкнет!


JD> CreateBuffer(Src,SrcBuf);


Исходники CreateBuffer в студию!

-- С уважением, Andrew O. Shadoura

AKAs: 2:450/143.25, 2:450/202.25

* Origin: Formatting C: ... (2:450/143.25)

Укажите на возможную ошибку..

Доподлинно известно, что многие философы высказывались на тему "Укажите на возможную ошибку..". Hедавно (17 июля 05) гpуппа аpхеологов отыскала письмо, отпpавленноё дpевнегpеческим учёным (all ) своему pимскому коллеге (Jenya Dyatlov).

А когда пpоисходит ошибка, когда копиpуешь или когда пеpемещаешь? Если когда
пеpемещаешь, то, мож быть, файл занят дpегим пpиложением.

Пишите письма: helex [@] infocentr.ru!!!
* Origin: Майкл Дудикофф в фильме "Он и микpобы убивает!" (2:5012/2.447)

dBase и ADO

* Originally in RU.DELPHI
Приятного тебе дня и незабываемой ночи, Ilya!

Monday July 11 2005, Ilya Chesnokov writes to Andrey Ryazanov:
>>> написать пpогpамму, создающую таблицу, котоpая использует "dBase

>>> фоpмат со стандаpтным подключением чеpез ADO" :)

AR>> Куpсовая pабота что-ли? =) гы...


IC> Типа) И вообще, какие по этой теме основные понятия?..


IC> 2All: Кста, если не жалко, кинул бы хоть кто-нить пpимеpчик-дpугой,

IC> как это всё использовать, а то вот инета пока нету(((


книгу какую-нибудь по delphi современную возьми, ориентированную на работу с БД с использованием ADO. или читай встроенные хелпы по adoconnection/adoquery/datasource и всей их иерархии: "Developing database applications", "Using ADO datasets"

поищи среди examples, поставляемых с delphi

Bulat, mailto:bulat_z-AT-mail.ru

* Origin: Пикап - лучший способ познакомиться с удовольствием ; (2:5093/4.126)

Re: Отладка

From: "Max Rusov" <rusov [@] tbsoft.ru>


Sat Jul 16 2005 08:50, Andrew V Fionik wrote to All:

AVF> Тонкий, то тонкий. А вот действительно интересно. Допустим у меня есть

AVF> handle на именованный канал (pipe). Допустим этот пайп инкапсулирован в

AVF> какой-то объект. При освобождении объекта пайпу как минимум нужно

AVF> сделать DisconnectPipe и CloseHandle. Любая из этих функций может

AVF> вернуть ошибку. Т.е. получается то ошибка возникает в деструкторе. Что

AVF> делать? Генерить эксцепшн? Hекошерно. Просто "забыть" про хэндл? Тоже

AVF> не кошерно. И в том и в другом случае получается фигня.


Так далеко ходить не обязательно. Возьмем обычный TFileStream. Весьма велика
вероятность того, что ошибка записи проявиться только в момент FileClose (в
Destructor'е), когда сбрасываются буфера. В стандартной реализации TFileStream
эта ошибка будет молча проигнорирована, т.е. у тебя ничего не записалось, а
тебе об этом даже не сказали :(.

Поэтому я никогда не пользуюсь TFileStream. Чтобы задача решалась корректно
достаточно сделать небольшую модификацию. Типа такой:

procedure TExFileStream.Flush;
begin
if FHandle >= 0 then begin

Win32Check( CloseHandle(FHandle) );
FHandle := -1;
end;
end;

И, соответственно:

vStream.WriteBuffer(...);
vStream.Flush;
finally
vStream.Free;
end;

Если какойто код в деструкторе _потенциально_ может породить исключение,
приходится делать что-то типа:

destructor TExFileStream.Destroy;
begin
if FHandle >= 0 then begin

try
CloseHandle(FHandle);
except
end;
end;
end;

С pipe'ом аналогично.

Всяческих благ,
McSim.

* Origin: FidoNet Online - www.fido-online.com (2:5020/400)