|
Как сделать какие-то действия дождавшись завершения
процесса? 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.
|
|