![]() |
|
#1
|
|||
|
|||
![]() задание: запущено два окна Exel и Word, создать прогу которая закрывает второе окно через 10 сек. если закрыли первое. Помогите реализовать
|
#2
|
|||
|
|||
![]() FindWindow, 2 таймера. Один таймер проверяет, что окна есть. Как только одно из них пропало, то первый таймер останавливается, а второй запускается и через 10 сек. убивает второе окно. Да, можно все уложить и в один таймер, но код будет непонятнее.
|
#3
|
|||
|
|||
![]() хотелось бы кодом а то не совсем ясно
|
#4
|
|||
|
|||
![]() Вот тебе маленький пример - закрываю окно "Мой компьютер":
На форме две кнопки и Edit: PHP код:
Подскажу: если окно не будет найдено переменная i будет равна 0. |
#5
|
|||
|
|||
![]() в вин айпи только все это дело надо провернуть
![]() |
#6
|
||||
|
||||
![]() В чём проблема? Вот костяк:
Код:
program Project1; uses Windows, Messages; const szAppName = 'project1'; szCaptionName = 'project1'; var Window : HWND; Msg : TMsg; WndClass : TWndClassEX; PosX, PosY : Integer; SizeX, SizeY : Integer; const cctrl = 'comctl32.dll'; procedure InitCommonControls; external cctrl name 'InitCommonControls'; //--------------------------------------------------------- procedure InitApp(Wnd : HWND); begin end; //--------------------------------------------------------- procedure DeInitApp(Wnd : HWND); begin end; //--------------------------------------------------------- function MainProc(Wnd : HWND; Msg : Integer; wParam, lParam : Longint): Integer; stdcall; begin Result := 0; case Msg of WM_CREATE : begin InitApp(Wnd); end; WM_CLOSE : begin DestroyWindow(Wnd); end; WM_DESTROY : begin DeInitApp(Wnd); PostQuitMessage(0); Exit; end; end; Result := DefWindowProc(Wnd, Msg, wParam, lParam); end; //--------------------------------------------------------- begin SizeX := 300; SizeY := 200; PosX := 0; PosY := 0; FillChar(WndClass, SizeOf(TWndClassEx), 0); WndClass.cbSize := SizeOf(TWndClassEx); WndClass.style := CS_HREDRAW or CS_VREDRAW; WndClass.lpfnWndProc := @MainProc; WndClass.cbClsExtra := 0; WndClass.cbWndExtra := 0; WndClass.hInstance := hInstance; WndClass.hCursor := LoadCursor(0, IDC_ARROW); WndClass.hbrBackGround := GetSysColorBrush(COLOR_BTNFACE); WndClass.lpszClassName := szAppName; if RegisterClassEx(WndClass) = 0 then Halt(255); Window := CreateWindowEx(0, szAppName, szCaptionName, WS_OVERLAPPEDWINDOW, PosX, PosY, SizeX, SizeY, 0, 0, hInstance, NIL); InitCommonControls; ShowWindow(Window, CmdShow); while(GetMessage(Msg, 0, 0, 0)) do begin TranslateMessage(Msg); DispatchMessage(Msg); end; Halt(Msg.wParam); end. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
|||
|
|||
![]() Код:
procedure asd (wnd:hwnd); var win:hwnd; begin win:= FindWindow(nil, 'Gamse'); PostMessage(win, WM_CLOSE, 0, 0); end; lmikle: пользуемся тегами!!! вот добавил. окно с хендлом Gamse не закрывет Последний раз редактировалось lmikle, 02.12.2011 в 23:56. |
#8
|
||||
|
||||
![]() Значит не найдено такое окно.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |