Страница 2 из 10
Как заставить CHttpFile принудительно передавать файлы в бинарном виде? По умолчанию незвестным типам файлов MFC присваивает тип text/plain. Чтобы принудительно установить бинарный режим передачи, укажите тип как application/x-ofc. Как сграбить экран? 1. Клавиша Alt+Print Screen (не забывайте, что эффект распространяется только на текущее окно) 2. С помощью MFC это делается командами GetDC(GetDesktopWindow), затем BitBlt куда надо. RTFM: BitBlt, CreateCompatibleDC, CreateCompatibleBitmap: hDc = GetDC(hWndScr); hMemDc = CreateCompatibleDC(hDc); hBmpNew = CreateCompatibleBitmap(hDc, 500, 500); hBmpOld = SelectObject(hMemDc, hBmpNew); BitBlt(hMemDc, 0, 0, 500, 500, hDc, 0, 0, SRCCOPY);
Как сделать надпись перевернутую на 90 градусов? Все как обычно, только в структуре LOGFONT установить (только TrueType шрифты): lfOrientation = lfEscapement =900 - угол, в десятых долях град. Кстати, Escapement приводит в повороту строки на 90 градусов, а Orientation - каждой буквы. lfClipPrecision = CLIP_LH_ANGLES; - не забудьте установить этот флаг (под NT можно без него, а под 95/98 - никак)
Как, например, сетевую карту "отключить в данной конфигурации" через Win32 API? Мой компьютеp->Свойства->Устpойства->NetCard->Отключено в данной конфигypации можно сделать программно: Если в Win95 DiChangeState(lpdi, DICS_DISABLE, DICS_FLAG_CONFIGSPECIFIC); - только yчтите, что setupx.dll 16-битовая Если в 98 или nt SetupDiChangeState
Как сделать так, чтобы _ресурсы_ dll были видны в пользующей его программе?
HGLOBAL LoadResource( HMODULE hModule, // хэндл модуля, откуда гpузишь pесуpс HRSRC hResInfo // идентификатоp pесуpса. );
То есть для того, чтобы загpузить pесуpсы из DLL, тебе надо загpузить DLL, а полученный хэндл использовать в LoadRecource
Как запустить текущего e-mail клиента?
::ShellExecute(NULL,NULL,"mailto:
Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
?subject=how",NULL,NULL,SW_SHOWNORMAL);
Как сделать, чтобы некотоpое пpиложение не показывалось в Task Bar, System Tray и в списке по Ctrl+Alt+Del?
/*apphider.cpp*/ /* Alexey Chubar & Paul Ishenin*/ #pragma hdrstop #include <condefs.h> #include <windows.h> #include <tlhelp32.h> #include <string.h> #include <stdlib.h> USELIB("KERNEL32.lib"); #pragma argsused extern "C" __stdcall DWORD RegisterServiceProcess(DWORD dwProcessID, DWORD dwType); char * ExtractFilePath(const char *Name) { int i = strlen(Name), l = strlen(Name); char *res="\0"; while ((i > 0)&&(Name[i] != '\\')) i--; if (i) { res = (char *)malloc(l - i); strcpy(res, Name + i + 1); res[l-i-1] = '\0'; } return res; } void HideApp(DWORD dwProcessID) { HWND MyHandle = GetTopWindow(0); DWORD WindowProcess; while (MyHandle != NULL) { if ((GetWindowThreadProcessId(MyHandle, &WindowProcess) != 0) && (WindowProcess == dwProcessID)) { ShowWindow(MyHandle, SW_HIDE); } MyHandle = GetNextWindow(MyHandle, GW_HWNDNEXT); } RegisterServiceProcess(dwProcessID, 1); } DWORD __fastcall FindID(const char *FName) { HANDLE h; PROCESSENTRY32 p; h=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0); p.dwSize=sizeof(p); if(!Process32First(h,&p)) return -1; if(strcmp(strlwr((char *)FName), strlwr(ExtractFilePath(p.szExeFile)))==0) { CloseHandle(h); return p.th32ProcessID; } while(Process32Next(h,&p)) if(strcmp(strlwr((char *)FName), strlwr(ExtractFilePath(p.szExeFile)))==0) { CloseHandle(h); return p.th32ProcessID; } CloseHandle(h); return -1; } int main(int argc, char* argv[]) { if (argc > 1) { DWORD ProgID=FindID(argv[1]); if(ProgID != (DWORD)-1) HideApp(ProgID); } return 0; }
или _asm{ mov eax,1 push eax dec eax push eax call dword ptr[pRegisterServiceProcess] }
А теперь более подробно. Невидимость по Alt-Tab: var WnHnd : Integer; WnHnd := GetWindowLong(Application.Handle, GWL_EXSTYLE); WnHnd := WnHnd or WS_EX_TOOLWINDOW; {Типа Tools-окно} SetWindowLong(Application.Handle, GWL_EXSTYLE, WnHnd);
Невидимость в Панели Задач: ShowWindow[Async](Application.Handle,SW_HIDE) |