Вниз
Скачать: CL | DM;

WinAPI   Найти похожие ветки 

← →
datorn ©   (2007-12-20 23:22) [0]

Как мне закрыть открытые папки (именно папки, а не приложения). FindWindow их не находит, wm_close, wm_quit не помогает.


← →
{RASkov} ©   (2007-12-20 23:31) [1]

> [0] datorn ©   (20.12.07 23:22)
> Как мне закрыть открытые папки (именно папки, а не приложения).

Что есть в твоем вопросе - "папки"?

> FindWindow их не находит

Она(функция) вообще-то ищет окна, а не папки (


← →
datorn ©   (2007-12-20 23:39) [2]

"Что есть в твоем вопросе - "папки"?"

Например, открыта папка "Мои документы" или "Мои рисунки" или просто "Новая папка" - как их закрыть? Допустим, заголовок окна папки я не знаю, класс - тоже (если у этих окон есть свой класс, по-моему, они работают просто из-под explorer.exe).


← →
{RASkov} ©   (2007-12-21 00:35) [3]

> [2] datorn ©   (20.12.07 23:39)

Ты очень сильно все путаешь :(
Особенно папки и окна (в конкретном случае скорее всего окна експлорера)....
А если "папка открыта" в ТоталКомандере??? или еще где.....
Что конкретно тебе нужно, так и не понятно..... и для чего???

ЗЫ поставь галочку в "Свойствах папки" галочку "открывать папки в одном окне" :)


← →
Юрий Зотов ©   (2007-12-21 02:32) [4]

Тут основной вопрос даже не в том, что такое "папка", а что такое "открыта".

> автор

Допустим, я включил компьютер. Есть папка "C:\Temp".  Скажите - она открыта или закрыта?


← →
Германн ©   (2007-12-21 02:59) [5]

А я давно говорил, что термин "folder" вместо термина "directory" придуман для того, чтобы привязать всех к мэйнстриму мелгомягких. А сей мэйнстрим направлен на то, чтобы простой пользователь Windows работал только с "документами" и с "папками документов".
Вот только тот, кто пишет или пытается писать программы должен понимать разницу.


← →
Германн ©   (2007-12-21 03:10) [6]

Да. Забыл добавить свою личную рекомендацию.
Термин "папка" вполне хорош для для пользователя. Но тот, кто пишет программы для пользователей (это я пытался не упоминать ЖЗЧ :) должен твердо знать разницу между folder и directory.
Примите и прочь.


← →
Riply ©   (2007-12-21 05:02) [7]

> [6] Германн ©   (21.12.07 03:10)
> Примите и прочь.
Наберусь наглости и побуду еще :)

> должен твердо знать разницу между folder и directory.
"Ну хоть убей - не возьму" в толк разницу между ними :(
Поясни еще раз.


← →
Германн ©   (2007-12-21 05:06) [8]


> Riply ©   (21.12.07 05:02) [7]
>
> > [6] Германн ©   (21.12.07 03:10)
> > Примите и прочь.
> Наберусь наглости и побуду еще :)
>
> > должен твердо знать разницу между folder и directory.
> "Ну хоть убей - не возьму" в толк разницу между ними :(
> Поясни еще раз.
>


← →
Германн ©   (2007-12-21 05:10) [9]

Папка - это визуальное понятие. Директория - понятие физическое.
Хау! я все сказал!.


← →
Riply ©   (2007-12-21 07:33) [10]

> [9] Германн ©   (21.12.07 05:10)
> Хау! я все сказал!.

Надо говорить: "Анге бу !" (с) "Остров Тамбукту"
В переводе с туземного - Я Сказал !
:)


← →
www   (2007-12-21 09:31) [11]


> > Хау! я все сказал!.Надо говорить: "Анге бу !"

dixi


← →
AlexanderMS ©   (2007-12-21 12:51) [12]


> FindWindow их не находит

Заголовок окон ведь известен?
Можно попробовать FindWindowW и передать заголовок в формате Юникод. Просто FindWindow (=FindWindowA) иногда не находит.


← →
clickmaker ©   (2007-12-21 13:13) [13]

EnumWindows
класс окон = CabinetWClass


← →
datorn ©   (2007-12-21 15:57) [14]

Н-да, чего-то я ничего так и не понял. Конечно, разница между папками и директориями - это очень существенно и значимо, но главного я так и не понял. Как закрыть папку/директорию? Зайдите в меню пуск и нажмите документы--->мои рисунки или мо документы. Не знаю, как назвать то, что откроется, но оно не закрывается через sendmessage(findwindow("CabinetWClass",nil),wm_close,0,0).
Работаю консом в инет-клубе и пишу прогу по очистке компов (удаление временных инет-файлов и т.д., в том числе нужно одним нажатием убить все приложения и закрыть открытые окна - процессы убить смог, а вот открытые окна (папки/файлы) закрыть не могу).
Всем спасибо.


← →
clickmaker ©   (2007-12-21 16:12) [15]

sendmessage(findwindow("CabinetWClass",nil),wm_syscommand,SC_CLOSE,0).


← →
datorn ©   (2007-12-21 16:28) [16]

Спасибо,clickmaker, бегу компилить.


← →
Юрий Зотов ©   (2007-12-21 17:19) [17]

Он так ничего и не понял...


← →
DVM ©   (2007-12-21 17:51) [18]


> Папка - это визуальное понятие. Директория - понятие физическое.
>  

Я бы сказал, что папка - это не обязательно директория


> datorn ©

Ты бы по человечески выражался. Ты хочешь закрыть все окна папок эксплорера?


← →
datorn ©   (2007-12-21 23:45) [19]

Да!!!!!!!!


← →
DVM ©   (2007-12-22 07:29) [20]


> datorn ©   (21.12.07 23:45) [19]

Последовательность твоих действий должна быть такова:

1) Перебираем все топ-левел окна EnumWindows()
2) Проверяем не является ли очередное окно окно эксплорера, проверям для этого окно на принадлежность классу CabinetWClass
3) Если окно - окно эксплорера - то закрываем его.

Но помоему проще и надежнее эксплорер перезапустить принудительно убив насильно.


← →
Юрий Зотов ©   (2007-12-25 19:48) [21]

> datorn ©   (21.12.07 23:45) [19]

Причем заметьте, что в алгоритме [20] слово "папка" не упоминается вообще ни разу. Потому что никакие папки тут действительно ни при чем.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.5 MB
Время: 0.01 c
8-1169121333
Tehnik
2007-01-18 14:55
2008.01.27
открытие для просмотра *.tga файлы


3-1190140314
lz269
2007-09-18 22:31
2008.01.27
IB6-Delphi5, проблемы с полями DATE


3-1189751998
Xmen
2007-09-14 10:39
2008.01.27
Учет доставки периодики. Проблема с недоставкой.


15-1197908559
Stepper
2007-12-17 19:22
2008.01.27
Castalia 3.* for Delphi 6, 7, 2005


15-1198132418
Pazitron_Brain
2007-12-20 09:33
2008.01.27
SIP провайдер




   Наверх