Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Список имен открытых окон Добавлено: 03.03.10 14:02  

Автор вопроса:  FixedMixed
Как получить? подробнее=лучше

Ответить

  Ответы Всего ответов: 13  

Номер ответа: 1
Автор ответа:
 AWP



ICQ: 345685652 

Вопросов: 96
Ответов: 1212
 Web-сайт: xawp.narod.ru
 Профиль | | #1
Добавлено: 03.03.10 14:38
Именно окон, которые видны? или все объекты в винде подойдут?

Ответить

Номер ответа: 2
Автор ответа:
 FixedMixed



Вопросов: 11
Ответов: 34
 Профиль | | #2 Добавлено: 03.03.10 16:19
Которые видны. Которые в панели задач еще видны. Visual studio 2005. Windows xp. Язык- Basic

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 04.03.10 05:02
Поищи примеры по EnumWindows, если не найдешь, стукни в аську, я дам

Ответить

Номер ответа: 4
Автор ответа:
 FixedMixed



Вопросов: 11
Ответов: 34
 Профиль | | #4 Добавлено: 07.03.10 19:54
Не нашел. Помогите!

Ответить

Номер ответа: 5
Автор ответа:
 SSTREGG



Вопросов: 3
Ответов: 64
 Профиль | | #5 Добавлено: 07.03.10 21:17
  1. public delegate bool EnumWindowsCallback(IntPtr hWnd, IntPtr lParam);
  2.  
  3. [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
  4. public static extern bool EnumWindows(EnumWindowsCallback callback, IntPtr extraData);
  5.  
  6. public Form1()
  7. {
  8.     InitializeComponent();
  9.     EnumWindows(new EnumWindowsCallback(EnumWins), IntPtr.Zero);
  10. }
  11.  
  12. bool EnumWins(IntPtr hWnd, IntPtr lParam)
  13. {
  14.     listBox1.Items.Add(hWnd);
  15.     return true;
  16. }

Ответить

Номер ответа: 6
Автор ответа:
 FixedMixed



Вопросов: 11
Ответов: 34
 Профиль | | #6 Добавлено: 08.03.10 11:02
Почему когда я вызываю GetWindowText и указываю правильный hwnd, строку и буфер, строка остается пустой?

Ответить

Номер ответа: 7
Автор ответа:
 SSTREGG



Вопросов: 3
Ответов: 64
 Профиль | | #7 Добавлено: 08.03.10 13:25
надо использовать StringBuilder.

Ответить

Номер ответа: 8
Автор ответа:
 FixedMixed



Вопросов: 11
Ответов: 34
 Профиль | | #8 Добавлено: 08.03.10 18:19
не получается. вот код:
  1.  
  2.   Public Delegate Function CallBack(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
  3.  
  4.     Public Declare Function EnumWindows Lib "user32" (ByVal x As CallBack, ByVal y As Long) As Long
  5.     Public Declare Function EnumDesktopWindows Lib "user32" (ByVal hDesktop As Long, ByVal lpfn As Long, ByVal lParam As Long) As Long
  6.     Public Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As System.Text.StringBuilder, ByVal cch As Long) As Long
  7.     Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Integer
  8.  
  9.     Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
  10.         Dim sWinText As New System.Text.StringBuilder
  11.         Dim ret As Long
  12.         ret = GetWindowText(HostF.Handle, sWinText, 5) 'nTextLen
  13.         Debug.WriteLine("Дескриптор: " + hwnd.ToString + "  ret: " + ret.ToString + "  Текст окна: " + sWinText.ToString)
  14.         Return True
  15.     End Function


вызываю так:
  1.  
  2. EnumWindows(AddressOf EnumWindowsProc, 0&)


в дебаге пишет:
Дескриптор: 525892 ret: 94587961680592896 Текст окна:
Дескриптор: 65684 ret: 94589920185679872 Текст окна:
Дескриптор: 65678 ret: 94592634605010944 Текст окна:
Дескриптор: 1836130 ret: 94594318232190976 Текст окна:
Дескриптор: 6029372 ret: 94597586702303232 Текст окна:

Ответить

Номер ответа: 9
Автор ответа:
 FixedMixed



Вопросов: 11
Ответов: 34
 Профиль | | #9 Добавлено: 08.03.10 18:23
ну точнее в 12 строке не HostF.Handle а hwnd. но результат тот же

Ответить

Номер ответа: 10
Автор ответа:
 SSTREGG



Вопросов: 3
Ответов: 64
 Профиль | | #10 Добавлено: 08.03.10 20:36
сравни мой код и свой, и найди ошибки...

Ответить

Номер ответа: 11
Автор ответа:
 FixedMixed



Вопросов: 11
Ответов: 34
 Профиль | | #11 Добавлено: 08.03.10 23:56
Не нахожу. У тя на плюс плюс еще. Пробовал чисто твои код в басик и он не работал. Хотя ошибок не выводил.

Ответить

Номер ответа: 12
Автор ответа:
 FixedMixed



Вопросов: 11
Ответов: 34
 Профиль | | #12 Добавлено: 08.03.10 23:58
Всмысле ПЕРЕВЕСТИ на язык басик, пробовал.

Ответить

Номер ответа: 13
Автор ответа:
 EROS



Вопросов: 58
Ответов: 4255
 Профиль | | #13 Добавлено: 09.03.10 08:10
FixedMixed, нельзя быть таким невнимательным.. У тебя, фактически, в каждой строке ошибка с типами данных.. отсюда и все твои беды..

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам