<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FreeSmsk@ - бесплатная отправка смс &#187; Программирование</title>
	<atom:link href="http://freesmska.ru/category/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://freesmska.ru</link>
	<description>Блог об смс с кпк и бесплатной отправке смс</description>
	<lastBuildDate>Sun, 05 Feb 2012 17:47:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>QUICK BASIC 4.5. Программирование движения фигур на экране.</title>
		<link>http://freesmska.ru/quick-basic-4-5-programmirovanie-dvizheniya-figur-na-ehkrane/</link>
		<comments>http://freesmska.ru/quick-basic-4-5-programmirovanie-dvizheniya-figur-na-ehkrane/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 16:59:30 +0000</pubDate>
		<dc:creator>Темы4</dc:creator>
				<category><![CDATA[Уроки]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://freesmska.ru/?p=1502</guid>
		<description><![CDATA[Программирование движения фигур на экране. Пусть на экране изображена некоторая фигура, границы которой по горизонтали обозначим через x1 и x2, а по вертикали &#8212; через y1 и y2. Тогда при наличии оператора WINDOW точка (x1,y1) является левой нижней вершиной ограничивающего фигуру прямоугольника, а точка (x2, y2) – его правой верхней вершиной. Имеется пара операторов GET [...]]]></description>
			<content:encoded><![CDATA[<p>Программирование движения фигур на экране.</p>
<p>Пусть на экране изображена некоторая фигура, границы которой по горизонтали обозначим через x1 и x2, а по вертикали &#8212; через y1 и y2. Тогда при наличии оператора WINDOW точка (x1,y1) является левой нижней вершиной ограничивающего фигуру прямоугольника, а точка (x2, y2) – его правой верхней вершиной. Имеется пара операторов GET и PUT, которые можно использовать для перемещения фигуры по экрану.<br />
<span id="more-1502"></span><br />
Оператор GET (взять) считывает изображение фигуры в некоторый массив. Формат оператора следующий: GET STEP (x1,y1) – (x2,y2), M. Здесь M – имя массива.</p>
<p>Оператор PUT (положить) выкладывает изображение в заданное место экрана. Формат оператора следующий: PUT STEP (x,y),M,A.</p>
<p>Здесь обозначено:</p>
<p>(x,y) – новые координаты левой нижней вершины прямоугольника, ограничивающего фигуру.<br />
A – так называемое действие, которое может иметь одно из указанных ниже значений.<br />
PSET – натуральное изображение фигуры.<br />
PRESET – негативное изображение.<br />
AND – наложение изображения на существующую картинку.<br />
OR – сохранение старого изображения.<br />
XOR – изображение без стирания фона.</p>
<p>Следует отметить, что действие PSET должно стирать старое изображение фигуры. Однако при некоторых заданных траекториях движения и формах фигуры часть изображения может не стираться.</p>
<p>Для определения размера массива M требуется определить необходимую память. В В цветовых режимах экран сделан многослойным, чтобы обеспечивать гамму цветов сложением разных цветов в одной точке.</p>
<p>Пример. Движение голубой луны.</p>
<p>Луна изображается в виде серпа и восходит из левого нижнего угла экрана. Она движется по темному небу. Внизу экрана изображен горизонт в виде части круга, который окрашен темно-фиолетовым цветом. Размер массива Moon определен по приведенной выше методике.</p>
<p>DIM Moon(62)<br />
SCREEN 1: WINDOW (0, 0)-(320, 200) &#8216;Открыто стандартное окно для SCREEN 1.<br />
PALETTE 1, 3: PALETTE 2, 5 &#8216;Установлены голубой и темно-фиолетовый цвета на атрибуты 1 и 2.<br />
CIRCLE (160, -150), 250, 1 &#8216;Нарисована линия горизонта.<br />
PAINT (160, 0), 2, 1 &#8216;Ниже её окрашена земля.<br />
pi = 3.141592<br />
CIRCLE (15, 40), 15, 1, pi / 2, 3 * pi / 2 &#8216;Внешняя окружность серпа луны.<br />
CIRCLE (45, 40), 35, 1, pi &#8212; .4, pi + .4 &#8216;Внутренняя окружность.<br />
PAINT (2, 40), 1 &#8216;Серп закрашен.<br />
GET (0, 25)-(15, 55), Moon &#8216;Образ луны взят в память.<br />
xs = 0: ys = 25<br />
FOR x = 15 TO 305 STEP 1 &#8216;Цикл изменения координаты x.<br />
LINE (xs, ys)-(xs + 15, ys + 30), 0, BF &#8216;Стирание рисунка луны в старых координатах.<br />
y = 40 + 100 * SIN((x &#8212; 15) * pi / 290) &#8216;Расчёт новой координаты y.<br />
PUT (x, y), Moon, PSET &#8216;Образ луны ложится на экран в новых координатах.<br />
xs = x: ys = y &#8216;Сохранение координат.<br />
FOR i = 1 TO 20000: NEXT i &#8216;Замедляющий цикл (пустой).<br />
NEXT x<br />
END</p>
<p>Обратите внимание на замедляющий пустой цикл. Он необходим вследствие большой рабочей частоты компьютера, результатом которой является слишком быстрое для глаза перемещение фигуры. Количество повторений в пустом цикле подбирается из условий комфортности восприятия движущегося изображения.</p>
<p>Если вы хотите так же поучить уроки по .net framework. Тогда заходите на сайт <a href="http://www.coding4.net/" title="coding4.net - коллективный блог о программировании под .Net Framework">coding4.net &#8212; коллективный блог о программировании под .Net Framework</a>. Отличные статьи и самые лучшие решения для Вашего обучения. </p>
<p  class="related_post_title">Возможно Вас заинтересует:</p><ul class="related_post"><li><a href="http://freesmska.ru/boremsya-s-rss-grabberami-v-wordpress/" title="Боремся с RSS грабберами в Wordpress">Боремся с RSS грабберами в Wordpress</a></li><li><a href="http://freesmska.ru/urok-5-klassy-c-programmirovanie-s-nulya/" title="Урок 5. Классы C# &#8212; Программирование с нуля">Урок 5. Классы C# &#8212; Программирование с нуля</a></li><li><a href="http://freesmska.ru/function/" title="Урок 4 Функции и процедуры.">Урок 4 Функции и процедуры.</a></li><li><a href="http://freesmska.ru/proverka-sajjtov-na-virusy/" title="Проверка сайтов на вирусы">Проверка сайтов на вирусы</a></li><li><a href="http://freesmska.ru/title-v-bitriks/" title="Title в битрикс">Title в битрикс</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://freesmska.ru/quick-basic-4-5-programmirovanie-dvizheniya-figur-na-ehkrane/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Как я ставил Mac OS</title>
		<link>http://freesmska.ru/kak-ya-stavil-mac-os/</link>
		<comments>http://freesmska.ru/kak-ya-stavil-mac-os/#comments</comments>
		<pubDate>Sun, 15 May 2011 09:25:56 +0000</pubDate>
		<dc:creator>Темы4</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[macos]]></category>

		<guid isPermaLink="false">http://freesmska.ru/?p=674</guid>
		<description><![CDATA[Рано или поздно всем хочется чего-то нового. Я не исключение.) Решил попробовать писать под iPhone, но для этого, как оказалось, требуется поставить Мак. Не долго думая начал палить по форумам можно ли на мой бук поставить &#8212; это дело. Оказалось что уже давно существуют какие-то сборки, для различных систем, но для моего Samsung R410 ничего [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://freesmska.ru/wp-content/uploads/2011/05/MacPC.jpg" alt="Как я ставил Mac OS" title="установка mac картинка" width="500" height="400" class="aligncenter size-full wp-image-675" /></p>
<p>Рано или поздно всем хочется чего-то нового. Я не исключение.) Решил попробовать писать под iPhone, но для этого, как оказалось, требуется поставить Мак.<br />
<span id="more-674"></span><br />
Не долго думая начал палить по форумам можно ли на мой бук поставить &#8212; это дело. Оказалось что уже давно существуют какие-то сборки, для различных систем, но для моего Samsung R410 ничего полноценного не обнаружил. </p>
<p>Отчаиваться я не привык и сразу качнул 2 сборки от:<br />
iDeneb,<br />
Kalyway.</p>
<p>Поставил сначала одну, потом другую в итоге все бы ничего, но не работает wifi. Да как говорится и хрен с ним, со временем разберусь.) </p>
<p>Вообще из чтения информации на форумах, понял одно, лучше ставить чистый мак, без сборок, но боюсь пока не готов к этому&#8230; При том, что это мое первое знакомство с ним. </p>
<p>Все сделаю со временем, а щас хочу рассказать некоторые мелочи. </p>
<p>И так установка сборки мака, все равно что установка винды. Нажал пару кнопок и жди. Сложности:</p>
<p>перед тем, как устанавливать проверьте поддерживается ли Ваше оборудование Маком, как не как Мак под PC подойдет не для каждой машинки.)</p>
<p>с помощью lspci -qq (linux) посмотрите Ваше оборудование, а так же id оборудования lspci -n, в любом случае пригодится при допиливании дров.</p>
<p>перед тем как нажать кнопку &#171;установить&#187; нажмите кнопку &#171;настроить&#187; и выберете необходимые патчи, драйвера и fix&#8217;ы.</p>
<p>дрова для мака называются kext и лежат в /system/library/extensions/</p>
<p>для установки их, лучше сразу скачать kextInstaller<br />
Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p>Дрова для моей сетевухи<br />
Marvell Technology Group Ltd. 88E8055 PCI-E Gigabit Ethernet Controller (rev 13)<br />
PCI ID: 11ab:4363<br />
под MAC 10.5.6 &#8212; 10.5.8 прилагаю<br />
Note: There is a file embedded within this post, please visit this post to download the file.</p>
<p>Остальные подробности и мелочи, как лучше поставить Мак напишу по мере собственного развития, а щас качать XCode + iOS SDK 4.3 и пару книжек по Obj-C.</p>
<p>И так список полезный сайтов по установке и настройке мака:<br />
applelife.ru<br />
torrentmac.org &#8212; со временем думаю, смогу выдавать инвайты.<br />
hackint0sh.org<br />
insanelymac.com<br />
wiki.osx86project.org</p>
<p><iframe width="425" height="349" src="http://www.youtube.com/embed/8Es1SlMnCFs" frameborder="0" allowfullscreen></iframe></p>
<p  class="related_post_title">Случайное интересное</p><ul class="related_post"><li><a href="http://freesmska.ru/proverka-sajjtov-na-virusy/" title="Проверка сайтов на вирусы">Проверка сайтов на вирусы</a></li><li><a href="http://freesmska.ru/ukhod-za-parketnym-polom/" title="Уход за паркетным полом">Уход за паркетным полом</a></li><li><a href="http://freesmska.ru/chto-takoe-programmirovanie/" title="Что такое программирование?">Что такое программирование?</a></li><li><a href="http://freesmska.ru/kak-sdelat-sajjt-samomu-izvestnye-konstruktory-sajjtov/" title="Как сделать сайт самому — известные конструкторы сайтов">Как сделать сайт самому — известные конструкторы сайтов</a></li><li><a href="http://freesmska.ru/kak-ustanovit-besplatnyjj-antivirus-eset-nod32-antivirus/" title="Как установить бесплатный антивирус ESET NOD32 Antivirus">Как установить бесплатный антивирус ESET NOD32 Antivirus</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://freesmska.ru/kak-ya-stavil-mac-os/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Урок 5. Классы C# &#8212; Программирование с нуля</title>
		<link>http://freesmska.ru/urok-5-klassy-c-programmirovanie-s-nulya/</link>
		<comments>http://freesmska.ru/urok-5-klassy-c-programmirovanie-s-nulya/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 08:45:01 +0000</pubDate>
		<dc:creator>Темы4</dc:creator>
				<category><![CDATA[Уроки]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[программирование]]></category>

		<guid isPermaLink="false">http://freesmska.ru/?p=540</guid>
		<description><![CDATA[Хотите купить современный автомобиль в кредит? Получить льготный автокредит в россии можно на самых привлекательных условиях в сбербанке Привет. Пришло время познакомить Вас с волшебным миром классов на C#, так сказать основой основ, которая поможет вам не заблудиться в своих записях и писать программы наравне со всеми.) Классы &#8212; участки кода объединяющие какую-либо логическую структуру. [...]]]></description>
			<content:encoded><![CDATA[<p>Хотите купить современный автомобиль в кредит? Получить <a href="http://finsecret.ru/expert/gde-i-kak-poluchit-avtokredit.php">льготный автокредит в россии</a> можно на самых привлекательных условиях в сбербанке<br />
<img class="aligncenter size-full wp-image-525" title="классы C#" src="http://freesmska.ru/wp-content/uploads/2010/07/277238.jpg" alt="Урок 5. Классы C#   Программирование с нуля" width="500" height="375" /></p>
<p>Привет. Пришло время познакомить Вас с волшебным миром классов на C#, так сказать основой основ, которая поможет вам не заблудиться в своих записях и писать программы наравне со всеми.)<br />
<span id="more-540"></span><br />
Классы &#8212; участки кода объединяющие какую-либо логическую структуру.<br />
Например: Класс машина, имеет в себе набор функций и процедур, позволяющих нам вкл/выкл радио, подсветку итд итп&#8230;</p>
<pre class="brush: cpp; title: ; notranslate">
//класс Машина
    class Car
    {
        //Переменные, означающие подсветку и радио
        private bool light;
        private bool radio;
        //Конструктор класса (для чего нужен, расскажу позже)
        public Car()
        {
            light = false;
            radio = false;
        }
        //Процедура класса, позволяющая вкл/выкл подсветку
        public void LightOnOff()
        {
            if (light) light = false;
            else light = true;
        }

        public void RadioOnOff()
        {
            if (radio) radio = false;
            else radio = true;
        }
    }
</pre>
<p>Вот такой не большой пример.) А теперь подробней, что в нем и зачем. Вообще считаю пример приведенный в учебнике про машины, не очень правильным, так как не понятно а зачем нам вообще это нужно, но я взял его лишь для того, чтобы разобрать структуру построения. Далее приведу пример, который будет более жизнеспособным из какой-нибудь из моих программ.</p>
<p>И так для создания класса мы пишем слово <em>class</em> и  его название.<br />
Далее мы можем задать 1 и более конструкторов класса. Например</p>
<pre class="brush: cpp; title: ; notranslate">
public Car() {}
public Car(bool l)
{
light = l;
}
</pre>
<p>В первом случае мы создаем пустой конструктор класса, во втором, конструктор со значениями.<br />
Для чего требуются конструкторы класса и можно ли обойтись без них?!</p>
<p>Конструкторы класса позволяют нам инициализировать некоторые переменные во время создания класса. Но можно их и не создавать.<br />
Например:</p>
<pre class="brush: cpp; title: ; notranslate">
class OnOff
    {
        private bool onOff;

        public OnOff() { }
        public OnOff(bool v)
        {
            onOff = v;
        }

        public void OnOffProc(bool v)
        {
            onOff = v;
        }
    }
</pre>
<p>Класс переключатель. <img src='http://freesmska.ru/wp-includes/images/smilies/icon_smile.gif' alt="Урок 5. Классы C#   Программирование с нуля" class='wp-smiley' title="Урок 5. Классы C#   Программирование с нуля" />  Может быть создан и инициализирован в начальное состояние 2-мя способами.</p>
<pre class="brush: cpp; title: ; notranslate">
//1 способ:
OnOff o = new OnOff();
o.OnOffProc(false);
//2 способ:
OnOff o = new OnOff(false);
</pre>
<p>Согласитесь второй способ занимает меньше места и на вид воспринимается удобней.<br />
Но кстати, как видно из примера с машиной, в конструкторе класса мы можем сразу задать значения, если они статические, не передавая их. А в последнем примере, удобно использовать конструктор с передающимися параметрами, если допустим изначально состояние, в котором должен находится элемент, не известно.</p>
<p>Класс, кроме конструктора, может содержать различные переменные, которые мы будем использовать, а так же функции и процедуры, с которыми вы познакомились в предыдущей статье.</p>
<p>Кстати по правилам хорошего тона) Переменные в классе должны быть все с модификатором private.<br />
А их изменение должно происходить либо с помощью функций и процедур, либо способом приведенным мной ниже (создаем свойство):</p>
<pre class="brush: cpp; title: ; notranslate">
class OnOff
    {
        private bool onOff;

        public bool GetSetOnOff
        {
            get { return onOff; }
            set { onOff = value; }
        }
     }
</pre>
<p>И используется этот код следующим образом:</p>
<pre class="brush: cpp; title: ; notranslate">
OnOff o = new OnOff();
o.GetSetOnOff = true;
bool z = o.GetSetOnOff;
</pre>
<p>В первом случае мы устанавливаем значение переменной в true, а во втором получаем это значение в переменную z.<br />
Чем удобен, такой способ:<br />
Значение set в коде GetSetOnOff писать не обязательно, тогда мы получим эффект переменной только для чтения, ее значение нельзя модифицировать на прямую.<br />
А как тогда можно модифицировать?! Допусти с помощью процедур или функций из класса в котором она находится.<br />
Пока я думаю достаточно <img src='http://freesmska.ru/wp-includes/images/smilies/icon_smile.gif' alt="Урок 5. Классы C#   Программирование с нуля" class='wp-smiley' title="Урок 5. Классы C#   Программирование с нуля" />  Остальные мелочи по мере написания, различных программ уже под кпк.</p>
<p>А вот теперь домашнее задание для 2х уроков сразу, как я долго ждал этого момента =).  </p>
<pre class="brush: cpp; title: ; notranslate">
Напишите класс смска, в котором у нас будет 4 переменные: номер отправки, текст, длина текста, язык сообщения. Язык сообщения изначально в любом случае идет английский. А вот номер и текст, мы можем задавать в любое время, как при создании класса, так и по мере работы с ним. Длина текста сообщения должна считаться автоматом, при добавление текста, и не должна иметь возможности модифицироваться, кроме как внутри класса, но доступ для просмотра ее значения мы должны иметь в любое время. Так же класс должен содержать функцию или процедуру отправки, которая печатает на консоль Номер: Текст: Длину сообщения: Язык, а так же любой текст, типо &quot;оля ля ля месяга отправлена&quot;.
</pre>
<p>Вот такое простенькое домашнее задание, для желающих немного размяться.</p>
Note: There is a file embedded within this post, please visit this post to download the file.
<p>Постовой: Я тут узнал про <a href="http://freesmska.ru/virus-v-kontakte/">вирус в контакте</a>, бывают же нигодяи&#8230;</p>
<p  class="related_post_title">Возможно Вас заинтересует:</p><ul class="related_post"><li><a href="http://freesmska.ru/function/" title="Урок 4 Функции и процедуры.">Урок 4 Функции и процедуры.</a></li><li><a href="http://freesmska.ru/urok-2-osnovy/" title="Урок 2. Основы">Урок 2. Основы</a></li><li><a href="http://freesmska.ru/uroki-programmirovaniya-dlya-nachinayushhikh/" title="Уроки программирования для начинающих">Уроки программирования для начинающих</a></li><li><a href="http://freesmska.ru/kak-napisat-programmu-dlya-kpk/" title="Как написать программу для КПК">Как написать программу для КПК</a></li><li><a href="http://freesmska.ru/quick-basic-4-5-programmirovanie-dvizheniya-figur-na-ehkrane/" title="QUICK BASIC 4.5. Программирование движения фигур на экране.">QUICK BASIC 4.5. Программирование движения фигур на экране.</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://freesmska.ru/urok-5-klassy-c-programmirovanie-s-nulya/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WinApi пример подключения GPRS</title>
		<link>http://freesmska.ru/winapi-primer-podklyucheniya-gprs/</link>
		<comments>http://freesmska.ru/winapi-primer-podklyucheniya-gprs/#comments</comments>
		<pubDate>Sun, 13 Jun 2010 20:20:36 +0000</pubDate>
		<dc:creator>Темы4</dc:creator>
				<category><![CDATA[WinApi WinMobile]]></category>
		<category><![CDATA[win]]></category>
		<category><![CDATA[WinApi]]></category>

		<guid isPermaLink="false">http://freesmska.ru/?p=522</guid>
		<description><![CDATA[Привет. Продолжаю изучать WinApi и решил поделится с Вами примером, как создавать новое соединение с GPRS. Данный код я вызываю, как при уже созданном открытом подключение жопореза, так и отсутствующем. Разница только в том, что в одном случае он начинает создавать новое соединение с интернетом, в другом просто не выполняет никаких действий. Winapi я использую [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-525" title="winapi примеры" src="http://freesmska.ru/wp-content/uploads/2010/06/0_e736_d9316b64_L.jpg" alt="WinApi пример подключения GPRS" width="500" height="375" /><br />
Привет.<br />
Продолжаю изучать WinApi и решил поделится с Вами примером, как создавать новое соединение с GPRS.<br />
Данный код я вызываю, как при уже созданном открытом подключение жопореза, так и отсутствующем.<br />
Разница только в том, что в одном случае он начинает создавать новое соединение с интернетом, в другом просто не выполняет никаких действий.</p>
<p>Winapi я использую для написания программ для коммуникаторов на платформе Windows Mobile 5,6. Хотя многие из них будут пахать и на более ранних.</p>
<p>Зная как тяжело мне по началу даются winapi, сам щас часто над каждой функцией сижу по часу, а то и дольше, решил сделать сборник готовых примеров для начинающих, да и просто для тех, кто не хочет парится, а готов использовать готовый код.</p>
<p><span id="more-522"></span><br />
Пример соединения с интернетом на ВинМобайле.</p>
<pre class="brush: cpp; title: ; notranslate">
#include &quot;windows.h&quot;
#include &quot;commctrl.h&quot;
#include &quot;connmgr.h&quot;
#pragma comment(lib,&quot;cellcore.lib&quot;) 

GUID GetNetworkForURL (LPCTSTR url)
{
DWORD dwIndex = 0;
GUID rv;
if (!SUCCEEDED (ConnMgrMapURL (url, &amp;amp;rv, &amp;amp;dwIndex)))
rv = GUID_NULL;

return rv;
}

HRESULT EstablishConnection (LPCTSTR url, DWORD retries, DWORD timeout, DWORD* dwStatus, HANDLE hConnection)
{
CONNMGR_CONNECTIONINFO ConnectionInfo;
ZeroMemory (&amp;amp;ConnectionInfo, sizeof (ConnectionInfo));
ConnectionInfo.cbSize = sizeof (ConnectionInfo);

ConnectionInfo.dwParams = CONNMGR_PARAM_GUIDDESTNET;
ConnectionInfo.dwFlags = CONNMGR_FLAG_PROXY_HTTP;
ConnectionInfo.dwPriority = CONNMGR_PRIORITY_USERINTERACTIVE;
ConnectionInfo.guidDestNet = GetNetworkForURL (url);

return ConnMgrEstablishConnectionSync (&amp;amp;ConnectionInfo, &amp;amp;hConnection, timeout, dwStatus);

}

DWORD dwStatus = 0;
HANDLE hConnection = NULL;

DWORD doConnect(LPVOID lpvoid)
{
LPCTSTR url = L&quot;http://4pda.ru&quot;;
HRESULT hr = EstablishConnection (url, 10, 25000, &amp;amp;dwStatus, hConnection);
return 0;
}
</pre>
<p>Далее в мейне или там, где вам нужно осуществить соединение пишем</p>
<pre class="brush: cpp; title: ; notranslate">
HANDLE hReadThread = NULL;
DWORD dwThreadID;
if (hReadThread = CreateThread (NULL, 0, doConnect, 0, 0, &amp;amp;dwThreadID))
{
CloseHandle (hReadThread);
}
</pre>
<p>Данный код позволяет создавать подключение к GPRS в отдельном потоке, что позволяет не блокировать основной поток на время подключения.</p>
<p>Теперь немного обсудим, что в нашем примере написано:<br />
CreateThread &#8212; запуск функции в отдельном потоке.<br />
doConnect &#8212; вызов функции осуществляющей подключение к GPRS.<br />
EstablishConnection &#8212; функция осуществляющая подготовку всего необходимого для подключения.<br />
ConnMgrEstablishConnectionSync &#8212; WinApi осуществляющая подключения интернета.<br />
GetNetworkForURL &#8212; функция определяющая какую подсеть использовать для работы (в нашем случае интеренет).</p>
<p>Подробнее о ConnMgrEstablishConnectionSync и GetNetworkForURL Вы можете почитать на msdn&#8217;е.<br />
А я свою задачу показать Вам пример работы с GPRS выполнил.</p>
<p  class="related_post_title">Возможно Вас заинтересует:</p><ul class="related_post"><li><a href="http://freesmska.ru/pokazat-ubrat-klaviaturu-sip/" title="Показать/ убрать клавиатуру (sip)">Показать/ убрать клавиатуру (sip)</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://freesmska.ru/winapi-primer-podklyucheniya-gprs/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Показать/ убрать клавиатуру (sip)</title>
		<link>http://freesmska.ru/pokazat-ubrat-klaviaturu-sip/</link>
		<comments>http://freesmska.ru/pokazat-ubrat-klaviaturu-sip/#comments</comments>
		<pubDate>Mon, 24 May 2010 17:06:45 +0000</pubDate>
		<dc:creator>Темы4</dc:creator>
				<category><![CDATA[WinApi WinMobile]]></category>
		<category><![CDATA[WinApi]]></category>

		<guid isPermaLink="false">http://freesmska.ru/?p=509</guid>
		<description><![CDATA[Привет, дорогие читатели. Решил открыть новый раздел осваиваемых мной winapi функций. Поделится с вами, что я откопал и как этим пользоваться. Начнем с того, что WinApi &#8212; это набор базовых функций, позволяющий наиболее близко работать с операционными семействами Windows, что делает ваши программы более гибкими и удобными. Так как последнее время я отошел от C#, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-510" title="winapi примеры" src="http://freesmska.ru/wp-content/uploads/2010/05/bebe.jpg" alt="Показать/ убрать клавиатуру (sip)" width="250" height="266" /></p>
<p>Привет, дорогие читатели. Решил открыть новый раздел осваиваемых мной winapi функций. Поделится с вами, что я откопал и как этим пользоваться.</p>
<p>Начнем с того, что WinApi &#8212; это набор базовых функций, позволяющий наиболее близко работать с операционными семействами Windows, что делает ваши программы более гибкими и удобными.<br />
<span id="more-509"></span><br />
Так как последнее время я отошел от C#, то здесь буду выкладывать только WinApi для С++ (Qt).</p>
<p>Почему я стал интересоваться WinApi функциями?! Все очень просто, скорость выполнения программы написанной на данных функциях превышает скорость C#, Qt в несколько раз. А так же не один язык программирования не дает такую гибкость написания программ, как WinApi.</p>
<p>Приведу пример, в котором без WinApi просто не обойтись, допустим у Вас есть клавиатура (sip) у кпк и она располагается не в нижнем углу экрана, а чуть повыше, используя WinApi sip Вы легко сможете подвинуть клавиатуру в любую точку экрана.</p>
<p>Теперь перейдем не посредственно к тем функциям, что я сегодня приготовил:</p>
<p>Проблема, с которой я столкнулся: Qt удобный кросс платформенный комплекс, позволяющий Вам писать легко программы и портировать их на другие  платформы. Пишу я программу для кпк на нем, сделал данную программу во весь экран и добрался до того момента, когда мне потребовалось вводить текст в поле ввода. Так как прога полноэкранная, то разумеется к кнопочке вызова клавиатуры у меня доступа нет и функций, позволяющих вызвать клавиатуру я тоже не нашел.</p>
<p>После недолгих размышлений пришел к выводу: либо используем winapi, либо пишем свою клавиатуру.</p>
<p>Решил пока не мудрить и использовать winapi для sip клавиатуры. Далее привожу полный код sip keyboard api.</p>
<pre class="brush: cpp; title: ; notranslate">
#include &quot;sip.h&quot;
#include &quot;sipapi.h&quot;

HWND sip = FindWindow(TEXT(&quot;SipWndClass&quot;),NULL);
RECT oldSize;
GetWindowRect(sip,&amp;amp;oldSize);
LONG x =0;
LONG y =195;
LONG w =oldSize.right-oldSize.left;
LONG h = oldSize.bottom-oldSize.top;
SetWindowPos(sip,HWND_BOTTOM, x, y,w,h,SWP_NOZORDER);
//показать клаву
ShowWindow(sip, SW_SHOW);
//скрыть клаву
ShowWindow(sip, SW_HIDE);
</pre>
<p>Данный код позволяет вам отображать клавиатуру в любой точке экрана вашего кпк изменяя положение точек x и y. Вот и первые sip api, которые могут пригодится в хозяйстве.</p>
<p  class="related_post_title">Возможно Вас заинтересует:</p><ul class="related_post"><li><a href="http://freesmska.ru/winapi-primer-podklyucheniya-gprs/" title="WinApi пример подключения GPRS">WinApi пример подключения GPRS</a></li></ul>]]></content:encoded>
			<wfw:commentRss>http://freesmska.ru/pokazat-ubrat-klaviaturu-sip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

