Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

СообЧа (СООБщество ЧАйников). Обмен опытом, вопросы, ответы. 03.06.02


Информационный Канал Subscribe.Ru

***СООБщество ЧАйников***

Система Эксперт
Найдем ответ СообЧа!


03.06.02



Свежие FAQ на SoobCha.Ru


FAQ от системы Эксперт


Вопросы от системы Эксперт


FAQ от системы Эксперт
Тема: C++

Как на С/С++ написать программу, выводящую на экран окно (например, c традиционной надписью "Hello World!"). Каким образом определить и зарегистрировать класс окна, создать и отобразить окно этого класса, а также запустить цикл обращений к системе и обрабатывать эти сообщения.


Ответ:

Вот код. Он громоздкий, но несложный. Описание всех функий найдешь в MSDN. Тут я указал очень малую часть сообщений, за всем списком придется тоже лезть в документацию.


[Наверх]

Тема: HTML

Можно ли определить /любыми средствами/ (JavaScript,Perl,PHP,ASP) установлен ли проигрыватель Macromedia Flash у клиента, для того чтобы выдавать ему на компьютер страницы либо с Flash, либо с обычными картинками?


Ответ:

Для этого используется JavaScript (думаю, ничего другое здесь не поможет). И так, в JS есть объект navigator, у которого есть свойство plugins, представляющее из себя массив объектов Plugin. Кол-во объектов в этом массиве сидит в navigator.plugins.length (индекс начинается с 0). У объекта Plugin есть свойство name. Т.е. пробегая по массиву plugins мы ищем нужное нам имя, например Shockwave Flash с учетом того, что может
быть добавлена информация о версии: Вот пример:


Это работает, но здесь есть один ньюанс. А вдруг изменится имя. Поэтому рекомендую тебе изменить Shockwave Flash на просто Flash. Но, чтобы перестраховаться конкретно, придется искать, есть ли Plugin для определенного формата файла.
function isFlash() { var shock = false;
for (i=0; i < navigator.mimeTypes.length; i++) { if (navigator.mimeTypes[i].type == "application/x-shockwave-flash")
shock = true;
}
return shock;
}
Выбирай, что подуше, но учти, что наверно может быть и "application/shockwave-flash", поэтому можешь использовать такую проверку
navigator.mimeTypes[i].suffixes == "swf"
А можешь все это совместить. Но, я думаю, первого варианта будет достаточно.

[Наверх]

Тема: Internet

У меня такие вопросы по поводу домена 2-го уровня:
1. как я понимаю, домен 2-го уровня регистрируют у компании-хостера, на оборудовании которого и размещаются файлы сайта. Я прав? Где ещё возможно "забить" имя?
2. если я зарегистрировал доменное имя 2-го уровня у компании-хостера и хочу начать пользоваться услугами другой компании могу ли я получить "своё" доменное имя? Т.е. может ли первоначальная компания-хостер отказать отдать мне "моё" доменное имя?
3. какие вы можете посоветовать хорошие компании, предоставляющие эти услуги? Важно качество и скорость работы. Для начала планирую не использовать CGI, Perl, PHP и т.д. Желательна зона .ru. Также желательны не слишком высокие, но вполне оправданные цены.


Ответ:

1. Регистрировать имя 2 уровня лучше у провайдера. Это, по идее, можно сделать и самому, но у провайдеров налажен тесный контакт с компаниями-регистрантами, схемы оплаты и пр. Учитывая то, что обычно они на этом не "наваривают", избегаешь множества трудностей. Ради интереса, зайди на www.ripn.ru или www.networksolutions.com - это компании-регистранты, может найдешь чего-то интересное.
2. В принципе, никто препятствовать этому не может, т.к. домен регистрируется на тебя, а не на провайдера. Т.е. ты его собственник, а провайдер просто осуществляет тех. поддержку. Здесь надо обратить внимание, что домен должен быть зарегистрирован именно на тебя (обычно так оно и бывает), в противном случае может ничего не получится. Провайдер, к которому ты захочешь уйти, с радостью возьмет на себя процедуру переоформления, но от тебя будет нужно заявление в РосНИИРОС о смене тех.поддерки(провайдера) для твоего домена. Проблем никаких.
3. Сколько людей, столько и мнений. Сходи на www.providers.ru (так, по-моему, называется). Сравни цены, предложения, отзывы. У крупных провайдеров цены почти одинаковые, особенно при оплате на большой промежуток времени (в этом случае могут зарегистрировать домен на халяву).

[Наверх]

Тема: Internet

Где можно скачать компилятор PHP, если можно конкретную ссылку.
И сколько он будет весить.


Ответ:

Зайдите на {!>>www.php.net<!}}, там есть два варианта РНР для виндовс (инсталлятор - 1Мб и ZIP-архив - 5Мб) и несколько вариантов для других систем

[Наверх]

Тема: Internet

Что такое BBS?


Ответ:

BBS - Bulletin Board System - Электронная доска объявлений. Как правило, ББС устанавливаются на простых домашних компьютерах и работают тогда, когда это удобно их хозяевам :))) На ББС обычно находится большое количество файлов, музыки, информации и т.п. Скачать вы все это можете совершенно бесплатно. Вам лишь надо знать телефон ББС и с помощью специальной программки позвонить туда и скачать то, что надо.. Если вы живете в Москве, то могу скинуть вам список всех московских ББС..

[Наверх]

Тема: JavaScript

В чем заключаются функции Java? Другими словами: для чего она(оно,он), вообще?


Ответ:

Для скриптов. К примеру для исполнения разных счётчиков, отображения на странице текущей даты и т.д.

[Наверх]

Тема: Local_Net

Планируется создание домашней сети. Сначала сеть будет одноранговой, на 5-10 пользователей. Позже будет организован сервер.
Где в сети можно взять информацию об организации таких сетей (практические советы, выбор harda и softa, примеры настроек)?
Каким образом можно организовать в сети TV-, радиовещание, трансляцию аудиозаписей?


Ответ:

В WinMe есть мастер построения домашней сети (Мое сетевое окружение --> Мастер домашней сети), также можно воспользоваться встроенной справкой системы. Очень много информации по настройке, обслуживанию сетей содержится на рускоязычном портале
www.win2000mag.ru. Трансляцию потоковых медиа-файлов можно будет осуществлять стандартной программой Win2000 Server - Windows Media Encoder. Эта программа позволяет выбрать нужный вам медиа-файл (аудио или видео) и транслировать его в сеть.

[Наверх]

Тема: MB

На платах построенных на КТ266А появился новый слот АСR похожий на РСI, только повернут на 180 градусов. Что это за слот и для чего он нужен?


Ответ:

http://ya.ru/yandsearch?text=ACR
http://www.techmarket.ru/support/test_070901_1.shtml
ACR (Advanced Communications Riser) - эволюция AMR
[skip]
В феврале 1999 года коалицией компаний во главе с Intel был представлен стандарт CNR (Communications and Networking Riser), спустя же несколько дней последовал ответ и от других разработчиков во главе с AMD, которые объявили о начале продвижения стандарта ACR (Advanced Communications Riser).
[skip]
Всесторонне изучив причины фиаско с продвижением технологии AMR на рынок, и учитывая надвигающуюся аналогичную технологию от Intel, группа компаний близких к корпорации AMD, в число которых входили такие гиганты, как 3COM, ALI, Asus, ESS, Lucent, Motorola, NVIDIA, PCTEL, Texas Instruments, VIA и ряд других, сфокусировались на разработке аналогичной технологии, получившей название ACR. На текущий момент на рынке присутствует первая версия этого стандарта. ACR обеспечивает обратную совместимость с почившим стандартом AMR, что означает возможность применения уже имеющихся на руках плат этого типа с новым разъемом. Также в стандарт были имплеминтированы следующие возможности:
* ACR поддерживает все функции AMR звука и модема, но также на платах имеется аппаратное ускорение работы этих функций. Такая гибкость позволяет разрабатывать ACR платы самого разного ассортимента - от дешевых программных решений до более качественных и серьезных аппаратных. Intel CNR не позволяет интегрировать в свои платы аппаратные решения.
* Согласно спецификации возможно создание на базе ACR, решений обеспечивающих функциональность таких устройств, как HomePNA и DSL. Следствие этого - сниженная цена производства таких устройств, простота инсталляции для пользователя и уменьшение стоимости технической поддержки.
* Возможность интеграции на платах ACR сетевых контроллеров. Как следствие, потенциально широкий ассортимент и возможность производства таких комбинаций, как модем + сетевая плата, DSL + модем и так далее.
* Как и в случае с CNR, добавлена поддержка USB и USB 2.0
* Легкость разработки на базе ACR решений для создания беспроводных сетей
[skip]
Хочется отметить, что в отличие от ограниченного по многим параметрам стандарта AMR с помощью ACR можно производить очень широкий ассортимент изделий - от самых дешевых до мощнейших аппаратных, причем в различных комбинациях. ГИБКОСТЬ этого стандарта является его сильной стороной. И, очевидно, что разработчики его задумывались не только о его выгоде, но и о выгодах для нас - потребителей их продукции.

[Наверх]

Тема: PGP

Подскажите пож. официальный русскоязычный сайт о PGP.


Ответ:

http://www.pgpru.com/
- староват немного (на ресурсах вроде www.rusdocs.ru можно найти
больше интересного).
Как работает PGP:
http://www.fssr.ru/icccs/kunegin/ref/pgp/3.htm
это что касается конкретно PGP...

[Наверх]

Тема: Prog

Нет ли у кого-то информации по Spell API?
Интересует привязка к другой программе проверки орфографии (русской) из Микрософтовского Офиса, например, как это реализовано в TheBat! Исходники? Примеры работы с этой API-шкой?


Ответ:

Для VB еще легче - можно вставить с минимальной доработкой макрос, записанный в Word при проверке орфографии. Ссылка на msword8(9).olb проставляется в проекте на Reference, создаются объекты приложения и документа, а затем под переменную документа подстравается работа макроса. Добавление функций проверки орфографии в разрабатываемые приложения Предположим, что в вашу задачу, как разработчика программного обеспечения,
входит создание некоторого специализированного текстового процессора. Не вдаваясь в рассуждения о необходимости создания еще одного приложения подобного рода, мы просто рассмотрим один прием, который придаст вашей разработке весьма ощутимое преимущество по сравнению с аналогами. К примеру, вам необходимо создать некий HTML-редактор. Как и в случае с любым другим приложением такого типа, ваша программа должна будет обладать функциями орфографической проверки текста. Естественно, можно потратить много времени
на создания своего собственного шедевра в данной области, но почему бы нам не воспользоваться уже готовыми решениями? В рамках данной статьи я бы хотел поговорить о технологии использования в ваших приложениях механизмов проверки орфографии, входящих в состав всем известного приложения - Microsoft Word с использованием автоматизации (OLE Automation).
OLE Automation
Идея, заложенная в автоматизацию, включает разработку приложений, функциональность которых может быть доступна и другим программам, а также создание приложений, которые "знают" как использовать функциональность, предоставляемую вам другими программными продуктами. Если говорить техническим языком, приложение, которое предоставляет некоторую повторно используемую функциональность, называется сервером автоматизации (automation server) (также часто называемым сервером COM). Приложение же, использующее
функциональность, предоставляемую сервером автоматизации, называется клиентом автоматизации (automation client), также часто называемым контроллером автоматизации. Важно подчеркнуть, что сервер автоматизации может не быть "чистым" сервером автоматизации, также как и клиент автоматизации может не быть "чистым" клиентом автоматизации. В действительности сервер автоматизации может использовать сервисы другого приложения, которое также является сервером автоматизации. Клиент автоматизации, предоставляющий свои сервисы другому клиенту, также может являться как клиентом, так и сервером автоматизации. Глубинные механизмы (сетевые и транспортные протоколы), с помощью которых клиент автоматизации взаимодействует с сервером, уже является частью собственно COM. Сервер автоматизации - это просто двоичный исполняемый модуль, который может состоять из нескольких объектов автоматизации. Объект автоматизации (также называемый объектом COM, хотя технически объект автоматизации является объектом COM особого сорта) - это отдельный, самодостаточный объект, спроектированный для выполнения специфической задачи или функции. В общем, все объекты автоматизации, собранные в одном сервере, предназначены для осуществления каких-то функциональных возможностей. Например, Microsoft Excel является сервером автоматизации, состоящим из нескольких меньших серверов автоматизации (Workbook - книга, Chart - диаграмма, Worksheet - лист, Range - диапазон и т.д.), каждый из которых определяет часть функций, предоставляемых пользователю Microsoft Excel. Идея заключается в том, что сервер автоматизации "позволяет" своим клиентам получать доступ и использовать свои объекты так же легко и просто, как будто это его внутренние объекты. Для решения задачи, поставленной перед нами в начале данной статьи, мы можем воспользоваться теми возможностями, которые предоставляет нам сервер автоматизации Microsoft Word. C помощью приложения, разработанного в Borland Delphi (программа будет выступать в качестве клиента автоматизации), мы сможем динамически создать новый документ и поместить в него некоторый текст (который и будем проверять). После этого нам останется лишь с помощью MS Word осуществить эту проверку. Если приложение Word будет минимизировано, то пользователи могут и не почувствовать, что выполнение части функций нашего приложения берет на себя другая программа. Обращаю внимание, что для полноценного использования OLE-автоматизации вам надо будет знать как можно больше о возможностях и интерфейсах того приложения, функциональностью которого вы решили воспользоваться. Кроме того, для корректного выполнения всех функций разрабатываемого приложения необходимо, чтобы на компьютере пользователя было установлено соответствующее приложение. В нашем случае -
Microsoft Word.
Основные принципы работы
Существует три основных метода использования OLE-автоматизации в Borland Delphi в зависимости от того, какую версию этой среды разработки вы используете.
Delphi 5. Закладка Servers на палитре компонентов. Если вы являетесь счастливым обладателем этой версии Delphi, то для работы с Microsoft Word можно воспользоваться компонентами, расположенными на закладке Servers (рис. 1). Такие компоненты, как TWordApplication и TWordDocument предоставляют все необходимые для работы интерфейсы.
Delphi 3, 4. Раннее связывание.
Используя термины автоматизации, для обеспечения в Delphi доступа к методам и свойствам, предоставляемым MS Word, необходимо установить соответствующую библиотеку типов. Библиотека типов предоставляет информацию обо всех свойствах и методах, которые разработчик может использовать при работе с сервером автоматизации. Для использования библиотеки типов Microsoft Word в Delphi (3 или 4 версии) необходимо произвести следующие несложные действия:
выбрать пункт меню Project|Import Type Library;
в открывшемся диалоге найти файл msword8.olb (для Microsoft Office'2000
этот файл будет иметь название msword9.olb), расположенный в подкаталоге "Office" того каталога, в который был установлен Microsoft Office.
После этого будет создан файл с именем word_TLB.pas, в котором в синтаксисе object pascal будут описаны константы, типы, свойства и методы для доступа к серверу автоматизации Microsoft Word. Файл word_TLB.pas должен быть включен в список uses всех модулей, в которых вы планируете использовать функции Microsoft Word. Такая технология работы с серверами автоматизации называется ранним связыванием. Одним из преимуществ раннего связывания является осуществление контроля вызовов и передаваемых параметров на этапе компиляции.
Delphi 2. Позднее связывание.
Для доступа к объектам MS Word без применения библиотеки типов можно использовать так называемое позднее связывание. В данном случае доступ к Word осуществляется так же, как к переменной типа Variant, следствием чего является необходимость знания вами всех предоставляемых сервером автоматизации интерфейсов. Позднего связывания следует по возможности избегать, поскольку при этом отсутствует возможность контроля корректности
вызовов процедур и функций со стороны компилятора, и если вы неправильно написали имя того или иного метода, то узнаете об этом только, когда программа "вывалится" по ошибке в процессе выполнения.
Начнем!
Итак, вернемся к теме статьи. Для демонстрации принципов работы с MS Word я буду использовать механизмы, предоставляемые пятой версией Delphi (т.е. компоненты TWordApplication, TWordDocument). Ниже я приведу код, обеспечивающий соединение и работу с MS Word в случае использования библиотеки типов и позднего связывания и больше не буду касаться этой темы. Для доступа к объектам Word при работе в Delphi 3, 4 (запуск приложения и создание нового документа) используйте следующий код:


Обращаю внимание, что в методах MS Word множество параметров описаны как необязательные (optional). При использовании интерфейсов (библиотек типов), Delphi не позволит вам опускать те или иные параметры, даже если в контексте разрабатываемого вами кода они не нужны. В четвертой версии Delphi в модуле system.pas описана переменная EmptyParam, которую можно использовать в качестве "заглушки" для неиспользуемых переменных в вызываемом методе. Для автоматизации MS Word с использованием переменной Variant (позднее связывание) используйте следующий код:


При использовании позднего связывания компилятор Delphi позволяет вам опускать те или иные параметры при вызове методов сервера автоматизации. Как уже упоминалось, Delphi 5 упрощает программисту использование функциональности MS Word в своих приложениях путем предоставления его методов и свойств в виде компонентов. Так как множество параметров,
определенных в методах Word'а, описаны как необязательные, то в Delphi данные процедуры и функции переопределены и представляют собой набор из нескольких методов с различным количеством параметров. Таким образом, разработчику предоставляется возможность при вызове метода не указывать последние n параметров, необходимость в которых отсутствует.
Шаг за шагом
Для создания своего редактора с возможностью проверки орфографии в минимальном варианте нам понадобится две формы: одна будет использоваться для редактирования текста, а вторая - для отображения диалога правки найденных ошибок. Однако, предлагаю начать с самого начала. Если у вас не запущен Delphi - запустите его. Создайте новый проект (если он не был создан при открытии приложения). По умолчанию проект будет содержать
одну форму. Данная форма будет главной в нашем проекте. Поместите на форму один компонент типа TMemo и две кнопки (TButton). Заполните свойство Lines компонента Memo1 каким-нибудь текстом (содержащим ошибки). Заголовок одной кнопки определите как "Орфография", а второй - "Тезаурус". Затем перейдите на закладку Servers палитры компонентов и поместите на форму по одному компоненту типа TWordApplication и TWordDocument (рис. 2). Установите значения свойства Name первого компонента в WordApp, а второго - WordDoc.
TWordApplication, TWordDocument
При автоматизации MS Word для управления приложением, отображения его рабочего окна, получения доступа к атрибутам и объектной модели MS Word мы используем объект Application. Для того чтобы указать приложению, запускать ли новую копию процесса Word или использовать уже запущенный, применяется свойство Application.ConnectKind. В нашем случае мы устанавливаем данное свойство в значение ckRunningInstance. Другие возможные значения этого свойства вы сможете узнать, воспользовавшись справочной системой Delphi.
Когда мы открываем в MS Word существующий файл или создаем новый, мы тем самым создаем объект Document. Типичной задачей при использовании автоматизации Word является работа с некоторой областью документа: добавление текста, выделение некоторой области, проверка орфографии и т.д. Объект, определяющий некоторую область в документе, называется Range. Естественно, в рамках статьи я не смогу подробно рассказать обо всех нюансах работы с компонентами, расположенными на закладке Servers палитры компонентов (кстати, с любой другой закладкой ситуация состоит ни чуть не лучше). Для более детального их изучения предлагаю воспользоваться справочной системой Borland Delphi. В нашем же сегодняшнем разговоре я буду упоминать только те свойства и методы, которые будут необходимы.
Как это все будет работать
Алгоритм работы нашего приложения будет достаточно прост. Каждое слово, входящее в состав проверяемого нами текста будет передаваться в MS Word для проверки. Сервер автоматизации Word содержит метод SpellingErrors, который позволяет вам осуществлять проверку текста, входящего в состав некоторой области Range. Мы же будем каждый раз определять эту область таким образом, чтобы она содержала только переданное нами в Word слово. Метод SpellingErrors в качестве результата своей работы возвращает коллекцию слов, написание которых признано ошибочным. Если эта коллекция пуста, то мы переходим к рассмотрению следующего слова. Иначе - переходим к процедуре замены неправильно напечатанного слова. Путем вызова метода GetSpellingSuggestions можно получить список слов, предлагаемых в качестве замены. Эти слова помещаются в коллекцию SpellingSuggestions. Данную коллекцию мы помещаем в качестве списка (компонент типа TListBox), расположенного во второй форме нашего проекта. Думаю, самое время немного
поговорить о ней.
Для того чтобы добавить новую форму в проект, следует выбрать пункт меню File|New Form. Назовем эту форму frSpellCheck. На форму поместим три кнопки типа TBitBtn, два элемента редактирования (TEdit) и один список (TListBox). На форму также следует поместить три метки (см. рис. 3). Компонент edNID (editNotInDictionary) служит для отображения заменяемого слова. edReplaceWith содержит выделенный в данный момент вариант для замены, а список lbSuggestions - список предлагаемых вариантов (заполняемый на основании данных, содержащихся в коллекции SpellingSuggestions). Три кнопки выполняют именно те функции, которым соответствуют их заголовки - не больше и не меньше. Каждой из кнопок соответствует свое значение, возвращаемое функцией frSpellCheck.ModalResult. В зависимости от этого значения в основной обрабатывающей процедуре осуществляется то или иное действие - игнорирование, замена или отмена дальнейшей проверки. Форма frSpellCheck содержит одно общедоступное свойство:
sReplacedWord :String
Оно служит для передачи в основную форму слова для замены в случае нажатия пользователем кнопки "Заменить".
Пишем код!
Ниже приводится код основной процедуры приложения.


Обработчики событий нажатий на кнопки формы frSpellCheck и список слов, предлагаемых для замены:


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


Тестирование
В тексте, помещенном в компонент Memo, мною было сознательно сделано несколько ошибок, которые вы сможете увидеть, приглядевшись к изображению, представленному на рис.1. В частности, вместо слова "своих" я написал "свиох", вместо "путем" - "пуетм", а вместо "виде" - "виед". Как же повела себя программа? На следующих рисунках (рис. 4-6) можно видеть, что проверка текста действительно работает. Надеюсь, вы понимаете, что в рамках одной статьи невозможно описать все те возможности, которые открываются перед разработчиком программного обеспечения в случае использования серверов автоматизации. И речь идет не только о Microsoft Word, но и о других приложениях (к примеру, широко распространено применение MS Excel в качестве базы для построения отчетов). Все разнообразие данного направления программирования можно познать, на мой взгляд, только через собственный опыт. Так что удачного вам кода!

[Наверх]

Тема: VB

Есть текстовый файл, содержищий повторяющиеся записи вида:
---
строка1
строка2
строка3
строка4
---
строка1
строка2
строка3
строка4
Необходимо создать программу, переносящую данные из этого файла в файл формата MS Excel 7.0, в виде: (представьте, что это фрагмент уже созданного файла *.xls из вышеприведенного текстового)
-----------------------------------------
| строка1 | строка2 | строка3 | строка4 |
-----------------------------------------
| строка1 | строка2 | строка3 | строка4 |
-----------------------------------------
т.е. каждую последовательность
строка1
строка2
строка3
строка4
программпа должна записать в строку в файл MS Excel.
Символ "---" выступает как разделитель записей в текстовом файле.
Ах, да, забыл сказать- файл экселя уже уже сужествует и при импорте в него данных файл должен
дополняться, а не переписываться. Вот, пожалуй и все. Заранее спасибо.


Ответ:

Примерный код программы. подправьте на свое усмотрение.


[Наверх]

Тема: VB

Есть иконка в systemtray и есть меню которое можно вызвать щелкнув по иконке. Так вот если в этом меню ничего не выбрать, то оно почему-то не хочет нормально исчезать когда переключаешься на другие приложения. Видел я и другие подобные вопросы, а вот ответа пока не нашел:(. Наверняка кто-то должен знать про.


Ответ:

Это как вопрос - программистский или юзерский?
1. Юзерский - это никак не исправить, это недоделки Билла, программистов разрабатывающих эту программу, и иже с ними...
2. Программистский - это если ты хочешь спрограммить всё это...
Цитирю из туториалов Iczelion'а. Ты говоришь НЕ ЗНАЕШЬ его??!!
Внимание: остерегайтесь следующих проблем, часто возникающих при
работе со всплывающими меню.
Когда меню отображено на экране, щелчок вне меню не приводит к его немедленному исчезновению. Это происходит потому, что окно, которое будет получать уведомления от меню, ДОЛЖНО быть на переднем плане. Просто вызовите SetForegroundWindow, чтобы исправить эту проблему. После вызова SetForegroundWindow вы обнаружите, что в первый раз всплывающее меню сработает нормально, но при последующем появлении оно
будет отображаться, а затем тут же исчезать. Как написано в MSDN, это сделано "намеренно". Необходимо переключить задачу на программу, являющуюся владельцем иконки в system tray. Этого можно добиться, отправив любое сообщение окну вашей программы. Но только используйте PostMessage, а не SendMessage!
PS : на всякий случай скажу. SetForegroundWindow, SendMessage, PostMessage - это функции Windows API.

[Наверх]

Тема: VB

1. как программно выполнить HTTP запрос (POST)
2. как проверить существует ли определенная страница в интернете.


Ответ:

Для этого нужно использовать компонент WinSock. Объясняю на примере работу метода POST. Нужно просто подключится к серверу к 80-му порту.
POST /index.html HTTP/1.0
Accept: */*
User-Agent: My User-Agent
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
action=text&dbdata=sample
Запрос завершается пустой строкой, тоесть после ...data=sample нужно передать 2 пустых строки. После этого сервер выдаст такое:
HTTP/1.0 200 OK
Server: Microsoft-IIS/4.0
Date: Thu, 30 May 2002 12:32:15 GMT
Content-Type: text/html
*** данные сервера ***
Да вот собственно и все. Если страница будет не найдена то он выведет вместо HTTP/1.0 200 OK выведет HTTP/1.0 404 Object Not Found. Лучше всего попрактикаваться на программе Telnet. Подключаетесь, например, к www.microsoft.com, порт 80 и печатаете все что нужно. Но вааще Telnet по-умолчанию не отобращает того что вы ввели. Для этого нужно в меню Terminal (Терминал) выбрать Свойства (Properties). Там пометить птичкой Local Echo (Локальное эхо).

[Наверх]

Тема: hard

Марка материнской платы: Tomato BX98
Процессор: celeron 400
При установке WinXP перестал работать Direct 3D (виснет в приложениях и при диагностике directa). Установка дров Nvidia v.362 помогает избежать зависания, но директ пишет что поддержка Agp отключена (и затенена)


Ответ:

Тот факт, что сообщается о некорректной работе AGP говорит о том, что не всё в порядке с материнской платой, т.е. с драйверами к ней. Вам следует попробовать скачать последние драйверы к своей материниской плате с сайта производителя или ещё откуда-нибудь, которые предназначены именно для ХР. Если не найдёте, то попробуйте хотя бы для 2000-й Windows. Также посмотрите на диске к материнской плате, если есть; хотя там могут быть, по-моему, максимум для NT4, но если будут для 2000, то попробуйте.

[Наверх]

Тема: monitor

Иногда, когда компьютер перезагружаю и прихожу через 15 минут и более на мониторе какой-то полосатый видеосигнал. Клавиатурой по память ввожу комп в спящий режим и пробуждаю. Возвращается нормальная картинка. Часто бывает, что комп на ATX-е загружается утром и дозванивается в Интернет, я просыпаюсь по будильнику, подхожу к компу и если его усыпляю, то соединение, естественно, разрывается. Может что-то можно сделать, что такого не было - что это? Видеокарта или монитор запылился?


Ответ:

80% что неисправность видеокарты. Попробуй в свойствах экрана (Дополнительно) изменить аппаратное ускорение в меньшую сторону.
Попробуй поменять дрова, наконец, видеокарту.

[Наверх]

Тема: scan

Собираюсь купить сканер, что вы можете порекомендовать? На что обратить первое внимание? Стоит ли выбирать модель посовременнее? (мне хочется что-то качественное, но не очень дорогое). В общем с чего мне начать?


Ответ:

Когда последний раз заходил в мой любимый сервис-центр, задал именно сей вопрос. Мне посоветовали Canon, Agfa, как ни странно - Epson. А вот HP не рекомендовали ни в коем случае - говорят фиговенько они пашут. Опроси знакомых, если таковые есть. Смотри на возможности подсоединения - LTP, USB. Наличие дров к разным системам. Разрешение, битность цвета и самое главное - скорость. Именно последний параметр будет определять комфортность работы со сканером. У нас контора как-то купила Mustek ScanExpress 1200 CP. О нём что-то сказать не ругнувшись не могу.
Что до цен... Umax может и не потянешь, а вот начальную или среднюю модель Canon себе за 100$ позволить думаю сможешь.

[Наверх]

Вопросы от системы Эксперт
Тема: BD

Падают индексы, исчезает бесследно .mdx , а без него не открывается таблица.
В заголовке .dbf в 28 байте(считаем от 0) если есть индексный файл -стоит 1,
если нет - 0(это хорошо видно в 16-ричном формате). Написала такой код - смотрю, если индексный файл умер, т.е. нет .mdx , то иду в 28 байт и исправляю 1 на 0 (убираю все следы индекса-это я так думаю), и создаю их програмно.
Работать то оно работает, и я вижу что меняет 1 на 0 ,но как только хочу открыть таблицу то от винта. Но если я это делаю не програмно а в ручную, то работает.
var al,al_mdx,al_dbf:string;
MyFile:File;
zapis:byte;
begin
//
// тут что-то делаю с Table1
//
if FileExists(al_mdx) then // если есть .mdx
begin
Table1.Open;
fDbiRegenIndexes(Table1);
end
else begin
AssignFile(MyFile,al_dbf);
Reset(MyFile,1); // открываю с длиной блока=1
Seek(MyFile,28);
zapis:=0;
BlockWrite(MyFile, zapis, 1);
CloseFile(MyFile);
{ тут создаю индексы}
end;
Table1.Close;
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIO3OJ89B
[Наверх]

Тема: C++

Проблема вот в чём: я умею пользоваться классами и ценю их приемущества но не хочу программировать в оболочках MFC или OWL (хотя и умею). Итак я программирую под Windows в стиле C используя классы и прочие приемущества С++, но когда я пытаюсь встроить функцию обработки сообщений окна в класс а потом передать адрес этой функции параметром (к примеру) CreateDialog компилятор выдаёт ошибку (мол не могу преобразовать одно в другое) - пытался добавлять явное преобразование но не помогло. Напишите мне как это сделать, а то раз десять приходилось обламываться на этом моменте.
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIN5AWWN8
[Наверх]

Тема: Delphi

Уважаемые Господа-программисты, обращаюсь к Вам с такой проблемой: мне "в наследство" достались многолетние архивы БД СУБД FoxPro (2.0, 2.6) с индексами (*.CDX). Разумеется, мне бы хотелось обращаться к этим БД (*.DBF) напрямую, но я "нарываюсь" на сообщение "Invalid Descriptor" при попытке подключения некоторых индексов. Как я понимаю, "загвоздка" в том, что Delphi не может "опознать" некоторые функции FoxPro, которые использованы в этих индексах.Подскажите, как решить эту задачу. Как "научить" Delphi опознавать не только "свои стандартные" (например, trim) функции в индексах, но и те, которые написал я?
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIP3TSIRC
[Наверх]

Тема: HTML

Пытаюсь сделать хмл файл.
<a>
<b>
<f value="Б"/>
<f/>
<f/>
</b>
</a>
В ИЕ пишет такое:
An invalid character was found in text content. Error processing resource 'file:///C:/test.xml'. Line 3, Position 11
Как можно вставлять в xml русские буквы?
в таком формате -%E0 не получается... Выводятся прямо так -%E0
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIO3OJ8BI
[Наверх]

Тема: ICQ

Интеграция ICQ с другими интернет пейджерами
Господа, у меня появилась насущная необходимость связать ICQ с Odigo. Непосредственно в Odigo такая возможность есть - необходимо просто скачать и установить плагин. Есть ли такая возможность в ICQ? Уточнения: ICQ 2001b , Odigo 3.1 , сообщения отправляемые мной через ICQ должны быть получены пользователями Odigo и наоборот.
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIO3OJ841
[Наверх]

Тема: Local_Net

Подскажите где можно скачать программу "Smart Club Keeper v1.2" и выше только полную версию и бесплатно.
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIP2A5WNM
[Наверх]

Тема: Perl

Я на свой сайт решил добавить "гостевую книгу", скачал исходники, установил. Все вроде работает, но сообщения добавляются на страничку до бесконечности. Что надо исправить, чтобы оставалось например 10-15 последних сообщений, остальные удалялись.
P.S.Я конечно понимаю, что не видя исходников на этот вопрос трудно ответить. Эксперту, который согласится мне помочь, я их отпралю.
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIO2L99116

Расскажите пожалуйста про паттерны в функциях ereg_replace() языка PHP, а то в документации от производителя практически ничего об этом нет. А функция довольно-таки мощная и без нее в PHP как без рук.
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIK3DMPDF
[Наверх]

Тема: hard

После установке winXP, при проигрывании mp3 (не важно чем winamp или Micros Media Player) при открытии окон, скроллинге появляются помехи, шум и тормоза. При Win98 такого нет. Звук - Crystal Sound Fusion CS4281 (замена дров со стандартных XP на родные от win2000 ничего не дают)
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIN4SMEJ23

У меня mb ACorp 6A815E ver 1.0 (bios 6a815ep 1.2 01/20/2001)
Ставится ли в нее Celeron tualatin?
На сколько я понял, нужно минимум 2.0
Можно ли просто обновить Биос до 2.0?
Если нет, то какой тогда максимальный проц в нее можно вставить? (Celeron\PIII)
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIK4F3GS9

Сменил видеокарту с AGP S3 Savage4 Pro 16 Mb на AGP GeForce 2 MX 400 32 Mb после чего в некоторых фильмах Mpeg4 нарушилась цветопередача. Показывает какими-то однотонными квадратиками. Версия драйверов Detonator 28.32. Savage показывал все фильмы хорошо.
В чем проблема?
Ответить: mailto:expert@soobcha.ru?subject=Rass_UIH1XQYK2E
[Наверх]

Автоответчики.
Информация о системе Эксперт СообЧа (пустое сообщение):
mailto:reply.infoexpert@soobcha.ru

Информация о порядке регистрации в качестве эксперта (пустое сообщение):
mailto:reply.regexpert@soobcha.ru

Список тем для задания вопросов (пустое сообщение):
mailto:reply.subjexpert@soobcha.ru
Администратор системы:
mailto:expert@soobcha.ru?subject=admin
Копирование материалов рассылки допускается только по согласованию с администратором системы.
Рассылка создана программой Expert Page Generator.
(С) 2000-2002 СообЧа!


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное