ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

30.06.2008, 19:45
|
|
Reservists Of Antichat - Level 6
Регистрация: 04.02.2007
Сообщений: 1,152
Провел на форуме: 3008839
Репутация:
1502
|
|
Сообщение от 12usver12
аналог делфи
WinExec(PCHAr('D:\инсталятор.EXE'),sw_Hi de);// запуск процесса в скрытом режиме
SendMessage(дескриптор кнопки,BM_Click,0,0); //
дескриптор кнопки ("Далее") ищется через дескриптор окна = FindWindow( 0, ННазвание окнаб...
FindWindow(Дескриптор окна , класс кнопки, ....
и будет тебе счастье
FindWindowEx только
__________________
Bedankt euch dafür bei euch selbst.
H_2(S^3/((z1, z2)~(exp(2pi*i/p)z1, exp(2pi*q*i/p)z2)))=Z/pZ
|
|
|

30.06.2008, 20:20
|
|
Познающий
Регистрация: 12.12.2007
Сообщений: 81
Провел на форуме: 589075
Репутация:
53
|
|
Сообщение от desTiny
FindWindowEx только
не знаю, может быть , недавно подобные шняги на C# делал , там импортировал функцию WinApi - FindWindow и все норм было
|
|
|

30.06.2008, 21:05
|
|
Участник форума
Регистрация: 03.01.2008
Сообщений: 156
Провел на форуме: 414311
Репутация:
110
|
|
FindWindow не ищёт дочернии окна. А так она аналогина FindWindowEx. Точнее наоборот ^___^
Так что приминение той или иной функции зависит от задач. Как впрочем и всегда ^___^
|
|
|

30.06.2008, 21:58
|
|
Участник форума
Регистрация: 11.07.2006
Сообщений: 125
Провел на форуме: 413927
Репутация:
71
|
|
FindWindow все окна находит по их дескрипторам .
с сендмессейдж может быть проблема, если программа имеет диалоговое окно, там свои нюансы.
самый надежный способ переключить окно в фокус и нажать виртуально кнопку. но для этого окно должно быть видимо
|
|
|

30.06.2008, 22:55
|
|
Познающий
Регистрация: 12.12.2007
Сообщений: 81
Провел на форуме: 589075
Репутация:
53
|
|
виртуальная кнопка , ты имеешь ввиду типа SendKeys.Send("VK_RETURN"); - ентер ,
вот мучил вопрос как наажть на кнопку IE диалогового окна сохранения файла (Запустить Сохранить Отмена) б я знаю 3 способа наажтия через SendMessage
1) SendMessage(Handle, BM_Click,0,0);
2) SendMessage(Handle, BM_SETSTATE,1,0); SendMessage(Handle, WM_KILLFOCUS,0,0);
3) SendMessage(Handle, WM_LBUTTONDOWN,1,0); SendMessage(Handle, WM_LBUTTONUP,0,0);
но ни один не сработал там
Последний раз редактировалось 12usver12; 30.06.2008 в 22:58..
|
|
|

01.07.2008, 00:30
|
|
Познающий
Регистрация: 22.03.2008
Сообщений: 63
Провел на форуме: 247838
Репутация:
65
|
|
Сообщение от 0x22b
to _empty Не подскажеш как на кнопки влиять через SendMessage().. Например, как закрыть приложение я знаю. SendMessage(hwnd, WM_CLOSE,0,0).. Какие параметры передавать чтобы нажать на кнопку в программе? заранее спс..
Вот код, который нажимает кнопку пуск, а потом прячет ее с экрана на 2 секунды
PHP код:
#include <windows.h>
void main(void)
{
HWND hTaskBar, hButton;
HDC hDCScreen = GetDC(NULL);
DWORD ScreenHeight=GetDeviceCaps(hDCScreen,VERTRES);
ReleaseDC(NULL, hDCScreen);
hTaskBar= FindWindow("Shell_TrayWnd",NULL);
hButton= GetWindow(hTaskBar, GW_CHILD);
// Hажать кнопку "Пуск" предпоследний параметр это кнопка которая нажата, а последний коориднаты курсора мыши.
SendMessage(hButton, WM_LBUTTONDOWN,MK_LBUTTON,LOWORD(5)+
HIWORD(ScreenHeight-20));
// Дальше только ради прикола...
// Спрячем кнопку "Пуск"
ShowWindow(hButton, SW_HIDE);
//спрячем на 2 сек
Sleep(2000);
// Покажем кнопку "Пуск"
ShowWindow(hButton, SW_NORMAL);
}
|
|
|

01.07.2008, 14:41
|
|
Участник форума
Регистрация: 16.09.2006
Сообщений: 139
Провел на форуме: 513709
Репутация:
144
|
|
а как запустить прогу чтоб ее не было видно, пробовал shellapi winexec createprocess с параметром sw_hide но чет не скрывает?
|
|
|

01.07.2008, 17:12
|
|
Познающий
Регистрация: 22.03.2008
Сообщений: 63
Провел на форуме: 247838
Репутация:
65
|
|
Сообщение от ZirroCool
а как запустить прогу чтоб ее не было видно, пробовал shellapi winexec createprocess с параметром sw_hide но чет не скрывает?
А что именно не скрывает? WinExec("path+name", SW_HIDE) должен скрывать, если конешн прога сама себя не делает видимой, т.е. назначает себя SW_SHOW, тогда попробуй либо размер окна в 1,1 установить, и перетащить куда нибудь за пределы рабочего стола.
|
|
|

01.07.2008, 20:00
|
|
Участник форума
Регистрация: 16.09.2006
Сообщений: 139
Провел на форуме: 513709
Репутация:
144
|
|
мне нужно чтобы он запускал ее уже скрытой, тк у нее идет сначала окно заставки!
Потом то я окно скрываю вот так без проблем:
Код:
Begin
Wd := FindWindow(nil, 'Хендл');
If Wd<>Form1.Handle then
If IsWindowVisible(WD) then
If not IsIconic(WD) then
If isWindow(WD) then
case n of
1:
ShowWindow(WD, SW_Hide);
А вот как сделать чтоб она скрыто запускалась с самого начала?
И еще у мну в этой проге(прога написана на с++) почему то не отмечается чек бокс, делаю так:
Код:
Wd:=FindWindowEx(Wd, 0, 'CheckBox', nil);
SendMessage(Wd, BM_SETcheck,1,0);
хотя на другой проге написанной на дельфях прет(ток там я ставлю ТCheckBox)!
Но самое интересное что кликанье по кнопке, работает в этой проге, делаю вот так:
Код:
Wd := FindWindowEx(Wd, 0, 'Button', nil);
SendMessage(Wd, BM_CLICK, 0, 0);
не понятно почему не работает чек бокс?
Последний раз редактировалось ZirroCool; 01.07.2008 в 20:07..
|
|
|

01.07.2008, 20:42
|
|
Познающий
Регистрация: 12.12.2007
Сообщений: 81
Провел на форуме: 589075
Репутация:
53
|
|
попробуй и отмечание чекбокса сделать через
SendMessage(Wd, BM_CLICK, 0, 0);
или
SendMessage(Handle, BM_SETSTATE,1,0); SendMessage(Handle, WM_KILLFOCUS,0,0);
оно запускает твою прогу скрытой , но любое выскакивающее окошко из этой формы будет видно, в данном случае твоя заставка , тебе остается только запускать таймер и мониторить окно заставки а там уже потом через ShowWindow пряч его
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|