procedure TConsole.Execute; var buffer:Pointer; bytesRead:DWORD; begin CreateConsole; while not Terminated do begin sleep(200); PeekNamedPipe(ChildStdoutRd,nil,0,nil,@bytesRead,nil);
//?eoaai if bytesRead>0 then begin GetMem(buffer,bytesRead+1); try if not ReadFile(ChildStdoutRd,buffer^,bytesRead,bytesRead,nil) then RaiseLastWin32Error; PChar(buffer)[bytesRead]:=#0; SendMessage(FWnd,FMsg,Integer(PChar(buffer)),0); finally
FreeMem(buffer); end; end;
//Ieoai FCS.Enter; &nbs
p; try while FCommandList.Count>0 do begin if not WriteFile(ChildStdinWr,PChar(FCommandList[0])^,Length(FCommandList[0]),bytesRead,nil) then RaiseLastWin32Error; FCommandList.Delete(0); end; finally FCS.Leave; end; end; end;
procedure TConsole.CreateConsole; var sa:TSecurityAttributes; si:TStartupInfo; pi:TProcessInformation; comSpec:PChar; bufLen:DWORD; ChildStdoutWr, ChildStdInRd, Tmp1, Tmp2:THandle; begin sa.nLength:=sizeof(TSecurityAttributes); sa.bInheritHandle:=true; sa.lpSecurityDescriptor:=nil;
if not CreatePipe(ChildStdoutRd,
ChildStdoutWr, @sa, 0) then RaiseLastWin32Er
ror; if not CreatePipe(ChildStdinRd, ChildStdinWr, @sa, 0) then RaiseLastWin32Error;
if not DuplicateHandle(GetCurrentProcess(), ChildStdoutRd, GetCurrentProcess(), @Tmp1, 0, False, DUPLICATE_SAME_ACCESS) then RaiseLastWin32Error; if not DuplicateHandle(GetCurrentProcess(), ChildStdinWr, GetCurrentProcess(), @Tmp2, 0, False, DUPLICATE_SAME_ACCESS) then RaiseLastWin32Error;
GetStartupInfo(si); si.cb:=sizeof(TStartupInfo); si.dwFlags:=STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW; si.hStdInput:=ChildStdInRd;
si.hStdOutput:=ChildStdOutWr; si.hStdError:=ChildStdOutWr; si.wShowWindow:=S
W_HIDE; if not CreateProcess(nil,comSpec,nil,!
nil,true
,CREATE_NEW_CONSOLE,nil,nil,si,pi) then RaiseLastWin32Error; end; end.
Пространство имён оболочки Windows
В операционных системах компании Microsoft с 1995 года используется новая оболочка, построенная на основе компонентной объектной модели. Одним из нововведений оболочки операционной системы стало понятие пространства имён оболочки. Пространство имён оболочки являет собой иерархически упорядоченный мир объектов, известных операционной системе, с их свойствами и предоставляемыми действиями. Оно во многом сходно со структурой файловой системы, но включает в себя не только файлы и каталоги. Такие понятия файловой системы, как имя файла и путь, заменены более универсальными.
Экстремальное программирование: планирование. Библиотека программиста
Эта книга харизматических лидеров экстремального программирования — о том, как планировать проекты разработки программного обеспечения по технологии XP. В основном она предназначена руководителям — тем, кто должен составлять план работ, а потом следить, чтобы он соответствовал действительности. Она будет полезна и программистам с заказчиками, поскольку это две основные роли в процессе планирования и разработки ПО.
Автор: Kent Beck, Martin Fowler
Опрос населения :)
Стоит ли устраивать встречи программистов в реале? (пирушки :)
Афоризмы
Кто знает - делает, а кто не знает - учит других....
Фраза дня
Горе ты моё аутлуковое!
Дурацкие законы (информация предоставлена сайтом kurilka.com)
В городе Дюранго в Колорадо (США) считается преступлением появиться на улице в одежде, присущей другому полу.
В городе Лехай в Небраске (США) издано блестящее по идиотизму распоряжение, официально запрещающее продавать дырки от бубликов.
И на закуску коротенький анекдот
Американский "Боинг" и российское КБ "Сухой" объявили о совместном создании самолета "Бухой 747".