Ранее была написана программа, которая имела окно во весь экран — было у неё свойство по верх всех окон и не давало оно переключаться на другие приложение по альт таб. Таже таск мэнеджер нельзя включить было. Задача вот какая, надо написать программу, которая бы обманывала эту подставляя ей не верные значения размера экрана. Как это сделать? Хорошо если бы можно было бы убрать свойствол её — что бы оно не находилось по верх всех окон!
Здравствуйте Chien Mechant, Вы писали:
CM>Ранее была написана программа, которая имела окно во весь экран — было у неё свойство по верх всех окон и не давало оно переключаться на другие приложение по альт таб. Таже таск мэнеджер нельзя включить было. Задача вот какая, надо написать программу, которая бы обманывала эту подставляя ей не верные значения размера экрана. Как это сделать? Хорошо если бы можно было бы убрать свойствол её — что бы оно не находилось по верх всех окон!
А по простому FindWindow + SetWindowPos не получается? Тогда можно перехватить SetWindowPos и не пускать наверх. С размером экрана так же.
Здравствуйте SergH, Вы писали:
SH>Здравствуйте Chien Mechant, Вы писали: SH>...А по простому FindWindow + SetWindowPos не получается? Тогда можно перехватить SetWindowPos и не пускать наверх. С размером экрана так же.
SH>А как сделано, что бы Task Manager не запустить?
Не TaskManager запустить можно, но его не видно! То есть жмёшь на ctrl+alt +delete появляется, выбираешт там таск мэнеджер, а он не появляется, только когда выходишь из проги, он виден. То есть прога эта перекрывает всё.
SetPos я не пробовал, но мне надо запускать другие программы ( офисс например) параллельно с этой прогой. Проблема сделать ее такой, что бы можно было между окнами переключатся!
Здравствуйте Chien Mechant, Вы писали:
CM>Не TaskManager запустить можно, но его не видно! То есть жмёшь на ctrl+alt +delete появляется, выбираешт там таск мэнеджер, а он не появляется, только когда выходишь из проги, он виден. То есть прога эта перекрывает всё.
Мой диагноз — она по таймеру вызывает SetWindowPos(HWND_TOPMOST, ....); Но могу и ошибаться, так как сам так не пробовал. В этом случае можно только (т.е. я других вариантов не вижу) перехватьть SetWindowPos и не давать вызывать её с параметром HWND_TOPMOST.
CM>SetPos я не пробовал, но мне надо запускать другие программы ( офисс например) параллельно с этой прогой. Проблема сделать ее такой, что бы можно было между окнами переключатся!
Здравствуйте SergH, Вы писали:
SH>Здравствуйте Chien Mechant, Вы писали:
CM>>Не TaskManager запустить можно, но его не видно! То есть жмёшь на ctrl+alt +delete появляется, выбираешт там таск мэнеджер, а он не появляется, только когда выходишь из проги, он виден. То есть прога эта перекрывает всё.
SH>Мой диагноз — она по таймеру вызывает SetWindowPos(HWND_TOPMOST, ....); Но могу и ошибаться, так как сам так не пробовал. В этом случае можно только (т.е. я других вариантов не вижу) перехватьть SetWindowPos и не давать вызывать её с параметром HWND_TOPMOST.
CM>>SetPos я не пробовал, но мне надо запускать другие программы ( офисс например) параллельно с этой прогой. Проблема сделать ее такой, что бы можно было между окнами переключатся!
Наврятли там таймер стоит!
А как перехватить эту функцию?
CM>Наврятли там таймер стоит! CM>А как перехватить эту функцию?
Чо значит как? Берешь дебаггер, ставишь бряку на нужную функцию и находишь как вызовется, а там забиваешь нопами :) А лучше конечно сначала узнать на чем прога написана — если на чем-нить типа дельфи или билдера (что скорее всего) то проще наверное ее в DeDe засунуть и снять форме свойство topmost (или как там его в VCL завут). Кароче сразу так не ответишь что делать — надо покапаться сначала в самой проге.
Здравствуйте Dr.Golova, Вы писали:
CM>>Наврятли там таймер стоит! CM>>А как перехватить эту функцию?
D.G>Чо значит как? Берешь дебаггер, ставишь бряку на нужную функцию и находишь как вызовется, а там забиваешь нопами А лучше конечно сначала узнать на чем прога написана — если на чем-нить типа дельфи или билдера (что скорее всего) то проще наверное ее в DeDe засунуть и снять форме свойство topmost (или как там его в VCL завут). Кароче сразу так не ответишь что делать — надо покапаться сначала в самой проге.