PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » OpenSource » Управлям форточками


Управлям форточками

Сообщений 1 страница 9 из 9

1

Как то написал прогу для управления форточками (окошками). Она предоставляет разные данные об окне и позволяет изменять их свойства.
Может кому приходится.

http://radikal.ua/data/upload/49112/69fda/065d790937.png

Для компиляции программы нужны библиотеки Droopy и PBOSL. Собирал в PB 4.31.
Скачать файлы

0

2

Написал утилиту (основываюсь на API исходника ) для управления перемещением окон.
Для своего нетбука. У него диагональ 8,9 дюймов и многие приложения не помещаются по высоте...

Вроде всё работает, писал для инструментальных окон программы Photoshop.
Окна перемещаются, но всё что создаётся ниже экрана (в Photoshop) при перемещении вверх не перерисовывается, то есть окна получаются обрезанные...
:flag:

0

3

mirashic написал(а):

окна получаются обрезанные

Это винда режет.

0

4

Пётр
Здравствуйте , пересмотрел множество кодов имеющих отношение к хендлам  окон но не могу найти ответа на свой вопрос
Вопрос в следующем - как мне отдельно от всего получить путь до папки по хендлу -  это есть в вашей программе
мне нужна всего одна - в отладчике
Возможно ли это?  если возможно буду очень признателен
Заранее спасибо !
http://s1.ipicture.ru/uploads/20130516/iL0hg15N.jpg

Отредактировано kaaamid (16.05.2013 08:48:27)

0

5

Нужно найти окно проводника. Потом найти в нем контрол с требуемым классом. В окне видно что он начинается с toolbarwindow. А окончание скрыто.

0

6

Окончание   toolbarwindow32

Пётр написал(а):

Нужно найти окно проводника. Потом найти в нем контрол с требуемым классом.

можно чуть подробнее -  как это сделать ???
Спасибо :)

0

7

kaaamid написал(а):

как это сделать

Поиск окон проводника.

Код:
Repeat
  WinName.s=WindowsEnum()
  If WinName=""
    Break
  EndIf
  hWnd=GetHandle(WinName)
  PID=GetProcessPIDfromHWND(hWnd)
  If PID
    If LCase(GetProcessName(PID))="explorer.exe"
      Debug WinName
    EndIf
  EndIf
ForEver

Поиск контрола.

Код:
Procedure.l enumChildren(hwnd, lParam) ; Поиск дочерних окон, принадлежащих главному
  Protected Dim Buff.a(258)
  
  If hwnd     
     
    Len=GetClassName_(hwnd, @Buff(), 256)
    classText.s = LCase(PeekS(@Buff(), Len))
    If classText = "toolbarwindow32"
      
      Len=SendMessage_(hwnd,#WM_GETTEXT,256,@Buff())
      MainText.s=PeekS(@Buff(), Len)
      If MainText
        Debug MainText
      EndIf
      
    EndIf
    
    ProcedureReturn 1 
  Else 
    ProcedureReturn 0 
  EndIf 
EndProcedure

Repeat
  WinName.s=WindowsEnum()
  If WinName=""
    Break
  EndIf
  hWnd=GetHandle(WinName)
  PID=GetProcessPIDfromHWND(hWnd)
  If PID
    If LCase(GetProcessName(PID))="explorer.exe"
      Debug WinName
      EnumChildWindows_(hWnd, @enumChildren(), 0)
      Debug ""
    EndIf
  EndIf
ForEver

0

8

Пётр
Огромное спасибо - я позже отпишусь о результатах
Ещё раз спасибо :)

0

9

Пётр

Да, то что нужно !  Буду осваивать дальше :)

ЗЫ: Без ваших советов и подсказок трудно было бы изучать язык

Спасибо огромное Вам и всем ребятам кто помогает !!!

0


Вы здесь » PureBasic - форум » OpenSource » Управлям форточками