· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Процесс II.

Посл.отвђт Сообщенiе


Дата: Ноя 30, 2003 13:44:58

Здравствуйте!
Снова к проблеме запуска процесса.
Спасибо hello_world, но понять, как
переписать код CreateProcessAsUser
с C++ на асм у меня не получается.
Может быть, есть готовые исходники
запуска приложения от имени... ?
--------------------------------------------
Вот ещё вопрос: где в PROCESS_INFORMATION
найти HANDLE, созданного процессом окна.
Если не сложно, приведите мне, зелёному,
пример нахождения HANDLE созданного мной
окна и отправки сообщения типа : ShowWindow,
hWnd, SW_HIDE
^^^^
это тот самый идентификатор!

И напоследок, как сделать окно прозрачным?
Т.е. я знаю, как сделать своё диалоговое
коно прозрачным, а можно ли будет послать
чужому окну (например, созданного мной процесса)
такое сообщение?

Прошу больно не пинать - первый раз пробую написать
что-нибудь дельное. ;)
Заранее благодарен.


Дата: Ноя 30, 2003 17:14:37

переписать код CreateProcessAsUser
с C++ на асм у меня не получается

за примером далеко ходить не пришлось.
http://www.wasm.ru/article.php?article=1021001

где в PROCESS_INFORMATION
найти HANDLE, созданного процессом окна

Нигде. Там лежат хендлы процесса и его главного треда а не окон.

а можно ли будет послать
чужому окну (например, созданного мной процесса)
такое сообщение?

Смотри EnumWindows


Дата: Ноя 30, 2003 19:24:12

Спасибо за то, что указали на ссылку!
Смотри EnumWindows - не совсем понял, как использовать. Может быть как-то через FindWindow или как-то ещё проще?


Дата: Ноя 30, 2003 22:21:44

Тебе что сделать то надо? Определенному окну мессагу послать или всем?


Дата: Дек 1, 2003 11:00:45

hello_world,
хочу небольшую прогу написать, чтобы упростить запуск
Win32/Console приложений под Windows 2000/XP. Для этого
интересовался, как запустить процесс от имени другого
пользователя и как отправить сообщение окну.
Мне нужно, чтобы пользователь смог уже после старта
процесса продолжать, так сказать, управлять, приложением.
Т.е. умел бы послать ОКНУ сообщение, типа SW_HIDE уже
после стаRта процесса.
Как это сделать? (А как, послать сообщения всем окнам в
цикле - просвятите, если не сложно? ;)
И ещё, если можно, вопрос: а как обеспечить минимальную
совместмимость между Windows 98 и Windows 2000, т.е.
может быть нужно использовать какие-нибудь операции
с памятью или что?
Заранее спасибо!


Дата: Дек 1, 2003 20:21:16

Никаких предложений нет?


Дата: Дек 2, 2003 09:10:54

Мне нужно, чтобы пользователь смог уже после старта
процесса продолжать, так сказать, управлять, приложением


А в чем именно проблема? Ты статью читал?

А как, послать сообщения всем окнам в
цикле - просвятите, если не сложно?


Есть много способов и все они описаны в msdn
Например можно так:

SendMessage,HWND_BROADCAST,...

Если нужно обрабатывать каждое сообщение отдельно то можно сделать так:
EnumWindowsProc	proto	:DWORD,:DWORD
...
invoke	EnumWindows,offset EnumWindowsProc,0
...
;показывать заголовки всех окон в бесконечном цикле
EnumWindowsProc	proc	hwnd:DWORD,lParam:DWORD

invoke	GetWindowText,hwnd,offset buf,sizeof buf
invoke	MessageBox,0,offset buf,offset buf,0
xor	eax,eax
inc	eax
ret

EnumWindowsProc		endp


а как обеспечить минимальную
совместмимость между Windows 98 и Windows 2000


Что ты имеешь ввиду?


Дата: Дек 2, 2003 14:12:02

Спасибо!
а как обеспечить минимальную
совместмимость между Windows 98 и Windows 2000...
Не все программы могут работать под 2000, например, если есть определения NT, а запустить приложение надо.

А в чем именно проблема? Ты статью читал?
Какую именно?


Дата: Дек 2, 2003 14:37:30

если есть определения NT
что есть???

Какую именно?
догадайся с 3х раз


Дата: Дек 2, 2003 16:15:27

что есть???
Как что - определение величины диска - меньше двух гигов. Установка временных переменных для коротких путей темп.
Какую именно?
Ссылка или EnumWindows - не понял? В чём прикол. Хочу просто послать окну сообщение после запуска, типа SW_SHOW/HIDE - Это сложно?
Удачи.
1990


Дата: Дек 2, 2003 16:40:36

Как что - определение величины диска - меньше двух гигов. Установка временных переменных для коротких путей темп.

как это относится к проблеме?

Ссылка или EnumWindows - не понял?

Вопрос был как послать сообщения _ВСЕМ_ окнам или это не ты писал??

Хочу просто послать окну сообщение после запуска, типа SW_SHOW/HIDE - Это сложно?

Ну так посылай: invoke SendMessage,hWnd,...


Дата: Дек 2, 2003 17:42:10

Ссылка или EnumWindows - не понял?
Конечно прочитал. Но, толи мозги после многих часов отказываются работать или что, но понять, как найти hWnd через эту функцию не могу.
Ведь для посылания, так скзать, сообщения нужно получить хенд окна. А как? Только Enum? Или возможно, что имеется при запуске идентификатор какой-нить того окна, которе запустил?
Простите за тупость.
1990.


Дата: Дек 2, 2003 19:29:00

Ведь для посылания, так скзать, сообщения нужно получить хенд окна. А как? Только Enum? Или возможно, что имеется при запуске идентификатор какой-нить того окна, которе запустил?

Ты что хендл _своего_ окна узнать хочешь? Тогда что по твоему CreateWindowEx возвращает?

Простите за тупость.
ничего, бывает :)


Дата: Дек 2, 2003 21:42:34

Ты что хендл _своего_ окна узнать хочешь? Тогда что по твоему CreateWindowEx возвращает?
НЕТ. Свой хэндл я знаю. ;)

Вот что я хотел сказать: я создаю процесс, процесс создаёт окошко - ему, этому окошку нужно послать сообщение через некоторое время после запуска процесса.
Как получить хенд окна, созданного процессом. Только через
функцию Enum?
А вот приложение, которое реализует совместимость между приложениями, хочу создать что-нибудь подобное.
Если не сложно, дайте свой е-майл: я напишу в двух словах, что хочу реализовать, а то не очень хочется в форуме много писать.
Ещё раз простите за тупость - бывает !!!! ;-)
1990

_1600167581__APCOMPAT.EXE


Дата: Дек 3, 2003 01:15:39

Как получить хенд окна, созданного процессом. Только через
функцию Enum?


да.

А вот приложение

И что мне с ним делать? Дизасмить чтоли? Сорец бы хоть послал.

Если не сложно, дайте свой е-майл

hello_world@bk.ru


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.432