Новые книги

Как включить ноутбук? Как его зарядить? С чего вообще начать? Зачем на клавиатуре столько кнопок? На какие нужно нажимать и в каком порядке, чтобы заработало/выключилось/включилось/открылось?..

Эти и другие вопросы возникают у человека, никогда раньше не работавшего на ноутбуке. Но окружающим кажется, что включить ноутбук и начать с ним работать – это настолько элементарно, что и говорить не о чем. А многим людям терпеливое и толковое объяснение – нужно! Без четкого понимания, казалось бы, элементарных действий им сложно начать общение с ноутбуком.

Эта книга все меняет! Потому что автор понимает тех, кто впервые начал общение с компьютерной техникой. Автор учел все вопросы, которые задают новички. Шаг за шагом, подробно, просто и очень-очень терпеливо он объясняет, как включить и выключить ноутбук, как открыть программу, как набрать и сохранить текст или посмотреть фото.

Следуя за инструкциями, вы очень скоро сможете смотреть любимые сериалы, писать письма, создавать любые документы, искать информацию в сети Интернет и бесплатно звонить по всему миру при помощи программы Skype. И все это – без сложных слов и ненужных подробностей!
Данная книга в основном посвящена программированию в среде GNU/Linux. Авторы применяют обучающий подход, последовательно излагая самые важные концепции и методики использования расширенных возможностей системы GNU/Linux в прикладных программах. Читатели научатся писать программы, к интерфейсу которых привыкли пользователи Linux; освоят такие технологии, как многозадачность, многопотоковое программирование, межзадачное взаимодействие и взаимодействие с аппаратными устройствами; смогут улучшить свои программы, сделав их быстрее, надежнее и безопаснее; поймут особенности системы GNU/Linux, ее ограничения, дополнительные возможности и специфические соглашения.

Книга предназначена для программистов, уже знакомых с языком С и имеющих базовый опыт работы в GNU/Linux.

FAQ Part 5

Visual C++ / FAQ Part 5

Как сделать какие-то действия дождавшись завершения процесса?
1. Открывать файл для записи.
2. Выяснить hWnd запушенной программы и использовать функцию IsWindow(Handle:hWnd), которая определяет, существует ли он.
3. Взять hProcess, возвращаемый CreateProcess, и возпользоваться функцией WaitForSingleObject с hProcess в качестве параметра.

Как отследить нажата ли в текущий момент кнопка мыши с помощью API?
Смотрите GetKeyState(int nVirtKeyCode).
Коды левой, правой и средней кнопок мыши соотверственно: VK_LBUTTON,VK_RBUTTON,VK_MBUTTON или
GetAsyncKeyState(VK_LBUTTON) (соответственно, VK_RBUTTON и VK_MBUTTON).

С помощью каких механизмов две программы могут обмениваться данными?
1. OLE
2. Файлы проецируемые в память
3. Секции данных, pазделяемые несколькими пpоцессами
4. WM_COPYDATA
5. Именованные (и неименованные) каналы или pipes
6. Почтовые ячейки или mailslots
7. DDE(Dynamic data exchange).

Как блокировать Alt+Tab во время выполнения программы?

CMainFrame::CMainFrame()
{
 m_nHotKeyID = 100;

 BOOL m_isKeyRegistered = RegisterHotKey(GetSafeHwnd(), m_nHotKeyID,
  MOD_ALT, VK_TAB);

 ASSERT(m_isKeyRegistered != FALSE);
}

//Убираем блокировку при выходе из приложения
CMainFrame::~CMainFrame()
{
 BOOL m_iskeyUnregistered = UnregisterHotKey(GetSafeHwnd(), m_nHotKeyID);
 ASSERT(m_isKeyUnregistered != FALSE);
}
Как опpеделить какой service pack установлен на NT ?
Смотрите функцию GetVersionEx.

Как узнать наличие юзера сервере NT ?
NET_API_STATUS x=NetUserChangePassword(LPWSTR compname,LPWSTR username,
LPWSTR oldpassword,LPWSTR newpassword) - где newpassword=oldpassword.
По возвращаемому значению делаем свои выводы.Дешево и сердито.И страшных прав не надо как,например,на LogonUser().

Как средствами API реализовать в RichEdit разноцветный текст?

CHARFORMAT cf;
cf.cbSize = sizeof(cf);
cf.dwMask = CFM_COLOR;
cf.crTextColor = ...; file://rgb
SendMessage(hwndRtf,EM_SETCHARFORMAT,SCF_SELECTION,(LPARAM)&cf);
Как пользоваться элементом управления похожим на открытие файлов, только все это для каталогов?
Используем API( SHGetPathFromIDList ):

LPITEMIDLIS lpItemDList;
char  szWorkDir[MAX_LEN];

BROWSEINFO bi = {hWnd,    NULL,   m_szWorkDir,
   "Выберите каталог",
   BIF_DONTGOBELOWDOMAIN,
   NULL,
   NULL,
   0
  };
  if(!(lpItemDList=SHBrowseForFolder(&bi))) return 0;
  SHGetPathFromIDList(lpItemDList, szWorkDir);
В szWorkDir получаешь выбранный каталог

Есть ли функции API, работающие с папками и файлами вместе? Как перемещать, переименовывать и копировать папки вместе с файлами, которые находятся внутри?
Смотрите функцию SHFileOperation.

Как с помощью API организовать запись с CD-ROM'а или микрофона?
Смотрите функции: waveInOpen waveInPrepareHeader waveInAddBuffer waveInStart.Только обязательно посмотрите примеры из MSDN.
Prev. Part Оглавление Next Part