Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.82
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 429
#1

При попытке найти окно выдает 0 - C++

18.01.2012, 18:20. Просмотров 1433. Ответов 22
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include <Windows.h>
using namespace std;
int main()
{
    HWND a = FindWindow((LPCWSTR) NULL, (LPCWSTR) "Безымянный — Блокнот");
    cout << (long) a <<endl;
    system("PAUSE");
}
в чем трабл?
Что не так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2012, 18:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос При попытке найти окно выдает 0 (C++):

Компилятор выдает три ошибки, при попытке скомпилировать программу - C++
Добрый день. Мне по заданию нужно решить эту формулу: l=min(x+y,y-z)/max(x,y). Я написал код программы на C++, но компилятор выдает 3...

Ошибка при попытке удаления указателя - C++
Программа работает,но при попытке выйти из нее по условию,вылетает ошибка.Если закомментировать delete, то выходит без ошибок.Подскажите,...

Ошибка при попытке загрузки файла - C++
Задача состоит в том, чтобы по очереди загрузить файлы, введя их имена в консоль. #include &lt;fstream&gt; #include &lt;iostream&gt; using...

Ошибка при попытке создания шаблона - C++
В чём ошибка? Функции Map::isGardenWithoutWallFlag, Map::setNothing, Map::incrementRoad, Map::setFlagWall имеют действительно такие...

Вылет при попытке очистки консоли - C++
В программе много раз вызывается функция, которая очищает окно консоли с помощью команды system(&quot;cls&quot;); и перерисовывает консоль...

Ошибка при попытке открытия файла - C++
Добрый день. При выполнении функции открытия файла F.open(adr,ios::in) по несуществующему адресу программу выбивает при этом появляется...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
accept
4822 / 3243 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
19.01.2012, 07:01 #2
широкая строка пишется с L
C
1
    L"abcd"
отлаживай на окне без русских букв
0
ББК
34 / 34 / 6
Регистрация: 10.11.2011
Сообщений: 94
19.01.2012, 11:52 #3
к чему такая сложность
C++
1
 HWND a = FindWindow((LPCWSTR) NULL, (LPCWSTR) "Безымянный — Блокнот");
у меня находило так:
C++
1
 HWND a = FindWindow(NULL, "Безымянный — Блокнот");
0
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 429
20.01.2012, 10:45  [ТС] #4
Решил проблему другим путем
0
-=ЮрА=-
Заблокирован
Автор FAQ
20.01.2012, 14:21 #5
Micro, как я понял компилируешь в VisualStudio 2008 или даже 2010 запиши так (и не ломай голову над (LPCWSTR))

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <windows.h>
using namespace std;
 
int main()
{
    system("chcp 1251");
    HWND hWnd = NULL;
    hWnd = FindWindowA(NULL, "ÁåçûìÿГ*Г*ûé - ÁëîêГ*îò");
    if(hWnd)
        cout<<std::oct<<hWnd<<endl;
    else
        cout<<"Window of Notepad.exe not found\n";
    system("pause");
    return 0;
}
Ниже скрин, экзешник и архив проекта(писал в 6-ке но уверен откомпилится и в 10-ке)
0
Миниатюры
При попытке найти окно выдает 0  
Вложения
Тип файла: rar NpFnd.exe.rar (42.0 Кб, 7 просмотров)
Тип файла: rar NpFnd_VS6.0_project.rar (1.7 Кб, 7 просмотров)
-=ЮрА=-
20.01.2012, 14:23
  #6

Не по теме:

А не работало потому что вместо дефиса "-" стояло короткое тире "—"
(наверно в ворде писалось и он автоматом увеличил дефис до тире)
Думаю разница на лицо

Цитата Сообщение от Micro Посмотреть сообщение
"Безымянный — Блокнот"
- как было
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
"Безымянный - Блокнот"
- как работает

0
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 429
20.01.2012, 23:07  [ТС] #7
Я в свойствах проекта поставил в General
Character set: Not set
0
-=ЮрА=-
20.01.2012, 23:38
  #8

Не по теме:

Цитата Сообщение от Micro Посмотреть сообщение
Я в свойствах проекта поставил в General
Character set: Not set
- лучше искать окна с их подлинными названиями(разница в один символ делает строки разными)

0
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 429
20.01.2012, 23:40  [ТС] #9
Я пробовал с другими окнами, даже на англ языке в 3 буквы, всеравно по нулям было...щас все норм
0
-=ЮрА=-
Заблокирован
Автор FAQ
20.01.2012, 23:46 #10
Цитата Сообщение от Micro Посмотреть сообщение
Я пробовал с другими окнами, даже на англ языке в 3 буквы, всеравно по нулям было...
попробуй FindWindowA и обычную чаровскую строку тайтла окна...
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
FindWindowA(NULL, "Безымянный - Блокнот")
0
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 429
20.01.2012, 23:58  [ТС] #11
Тут еще вопрос назрел с GetWindowText
Откуда-то читает текст, откуда-то нет, как решить трабл? все прекрасно нашел, но текст не считывается
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.01.2012, 00:13 #12
А как не считывается?
Программа крашится, или ф-ия возвращает ошибку, или считывается ноль символов?
Если у вас есть студия, то в ней есть отличная тулза Spy++.
Попробуйте с ней поиграться. Если нажать на бинокль, появится окошко с прицелом. вот этот прицел можно захватить и по окнам поездить. Тайтлы окон пишутся в поле Caption этого окошка. Так вот что там будет писаться для тех окон, для которых у вас не читаются тайтлы?
0
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 429
21.01.2012, 00:20  [ТС] #13
Цитата Сообщение от DU Посмотреть сообщение
А как не считывается?
Программа крашится, или ф-ия возвращает ошибку, или считывается ноль символов?
Если у вас есть студия, то в ней есть отличная тулза Spy++.
Попробуйте с ней поиграться. Если нажать на бинокль, появится окошко с прицелом. вот этот прицел можно захватить и по окнам поездить. Тайтлы окон пишутся в поле Caption этого окошка. Так вот что там будет писаться для тех окон, для которых у вас не читаются тайтлы?
Пользуюсь WinSpy++
Текст cчитываю так


C++
1
2
3
4
HWND test = FindWondow();
TCHAR a[500];
GetWindowText(test,a,500);
cout << "Result:" << a << endl
0
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
21.01.2012, 00:31 #14
ну так что ф-ункция то возвращает? Можно же определить, успешный был вызов или нет.
Вот посмотрите в мсдн (ну или найдите русский аналог)
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Ф-ия может завершится с ошибкой, и там написано как это определить. Так же посмотрите в ремарку. Там написано, что в некоторых случаях как раз таки не читается ничего.
0
Micro
42 / 42 / 1
Регистрация: 12.11.2011
Сообщений: 429
21.01.2012, 00:41  [ТС] #15
Работает нормально, но не со всех текст возвращает
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.01.2012, 00:41
Привет! Вот еще темы с ответами:

Программа вылетает при попытке открыть файл - C++
#include&lt;iostream.h&gt; #include&lt;windows.h&gt; #include&lt;conio.h&gt; #include&lt;fstream.h&gt; const int L=31; struct student{ char fam; char...

Ошибка при попытке подключить внешнюю библиотеку - C++
Делал всё по инструкции, только пути другие. Пишет: Гуглёж не помог. Когда-то вроде с glut вылезла такая же проблема, но я не...

Ошибки при попытке прочитать в указанном месте - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt; #include &lt;locale&gt; using namespace std; struct stack { char c; struct stack...

Ошибка С2280 при попытке создания потока - C++
При попытке создания потока auto t = new thread(&amp;merge, fin, fout, maxmemory, p) вылезает error C2280: предпринята попытка ссылки на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.01.2012, 00:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru