Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.07.2011, 03:01   #1
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию API нажатие кнопки пуск

Код:
// CONSOLEAPIa.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
#include <Windows.h>

using namespace std;


int _tmain(int argc, _TCHAR* argv[])
{
	HWND hTaskBar, hButton;
	

	hTaskBar= FindWindow(_T("Shell_TrayWnd"),NULL);

	cout << hTaskBar <<"\n";
	
	hButton= GetWindow(hTaskBar, GW_CHILD);
	cout << hButton;
			SendMessage(hButton, WM_LBUTTONDOWN,0,0);
		Sleep(1000);
			

	cin.get();

	return 0;
}

почему не работает?? вроде все дескрипторы находит но кнопка не нажымаетса(
Pein95 вне форума Ответить с цитированием
Старый 03.07.2011, 04:11   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Вместо WM_LBUTTONDOWN надо бы SendMessage(hButton, BM_SETSTATE, TRUE, NULL);
Кроме того, некорректно осуществляется поиск хендла.
С чего Вы решили, что кнопка пуск будет первым чайлдом.

Последний раз редактировалось EUGY; 03.07.2011 в 04:14.
EUGY вне форума Ответить с цитированием
Старый 03.07.2011, 16:47   #3
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

етот код взят из книги C++ глазами хакера, вот начал изучать api там был такой пример, но он почемуто не работает
переделал, результат такой же.
Pein95 вне форума Ответить с цитированием
Старый 03.07.2011, 18:26   #4
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Повторюсь, не правильно находится хендл кнопки.
Цитата:
hButton= GetWindow(hTaskBar, GW_CHILD);
Может в win98 кнопка и была первой в дочернем списке, сейчас нет.
EUGY вне форума Ответить с цитированием
Старый 03.07.2011, 18:43   #5
Pein95
Форумчанин
 
Регистрация: 25.04.2010
Сообщений: 881
По умолчанию

ясн.( а как можно узнать дескриптор именно етой кнопки?
Pein95 вне форума Ответить с цитированием
Старый 03.07.2011, 20:01   #6
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

на разных операционках по разному,
Например у меня в win7 можно так.
Код:
	HWND hDesktop = FindWindow(_T("#32769"), NULL);
	HWND hButton = FindWindowEx(hDesktop, NULL ,_T("Button"), NULL);
	SendMessage(hButton, BM_SETSTATE, TRUE, NULL);
ЗЫ А вообще, может лучше послать нажатие VK_LWIN.

Последний раз редактировалось EUGY; 03.07.2011 в 20:05.
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Caption кнопки ПУСК (START) - изменить надпись на кнопке Пуск в Windows XP Altera Win Api 19 29.12.2011 15:49
Delphi win32 api отловить нажатие кнопок revaldo666 Win Api 2 06.07.2010 01:14
нажатие кнопки beygul Помощь студентам 2 30.01.2010 21:34
Положение кнопки пуск Dr.Badnezz Общие вопросы Delphi 7 23.12.2008 18:54
нажатие кнопки xakkkkker Работа с сетью в Delphi 1 20.11.2008 01:08