Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.vbclassic > #7653

Re: Desktop handle

From Klaus Ketelaer <usenet@ketelaer.de>
Newsgroups de.comp.lang.vbclassic
Subject Re: Desktop handle
Date 2024-04-13 10:30 +0200
Message-ID <uvdfqk$hb05$1@solani.org> (permalink)
References <uv954n$1pung$1@dont-email.me> <uvc3ft$2hk27$1@dont-email.me>

Show all headers | View raw


Am 12.04.2024 um 21:53 schrieb Ulrich Möller:
> Hallo Wendelin,
Hallo Ulrich

> Am 11.04.2024 um 19:03 schrieb Wendelin Uez:
>> Ich möchte gerne u.a. die Icon-Positionen des Desktops auslesen
> 
> das müßte man auch relativ einfach per UIAutomation lösen können. Da 
> sparst du dir die Windows API Aufrufe und über die COM Schnittstelle 
> läßt sich das einfach in VBA einbinden.
> 
> Die Icons sind einfach die Childs von "Desktop"(SysListView32) unterhalb 
> von "Program Manager" (Program). Die ClassNames in Klammern.
> 
> Das läßt sich innerhalb der UIAutomation einfach adressieren und 
> durchlaufen.Schau mal hiernach einer Helper-Classe:
> https://github.com/mhumpher/UIAutomation_VBA/blob/master/UIA_Wrapper.cls
> 
> und dann interessiert dich die Property "BoundingRectangle".
> 
> Ein wichtiges Tool ist Inspect.exe, womit du dir alle Daten anzeigen 
> lassen kannst.

Wenn das System ein kaputtes Handle zurück liefert, dann muss
man sich darum kümmern, besonders wenn es sich um ein eminent
wichtiges Handle handelt.

Mal abgesehen davon, dass es viele (bessere) Möglichkeiten gibt,
die auf dem Desktop/Program abgelegten Icons zu ermitteln;

Wenn ich eine Fensterliste brauche, dann nutze ich ein paar
Zeilchen eigenen Code, wie z.B.

hWnd = GetWindow(GetDesktopWindow(), GW_HWNDFIRST)
Do
   ...
   hWnd = GetWindow(hWnd, GW_HWNDNEXT)
Loop Until hWnd = 0

Das geht jedoch nur, wenn ich keine kaputten Handles vom System
zurück bekomme. Darum hat das Priorität.

Statt dessen etwas einzubinden, bei dem bereits die Requirements
bei mir eine Panikattacke auslösen halte ich für suboptimal.

' Requirements:
' UIAuotmationClient (UIAutomationCore.dll) (this is the core UI dll)
' Microsoft Scripting Runtime (scrrun.dll) (this is mainly for using 
dictionaries)
' AutoItX3 1.0 Type Library (AutoItX3.dll) (additional automation 
capabilities)
' Miscrosoft VBScript Regular Expression (vbscript.dll\3)

Zudem: VBA != VB...

Gruß Klaus

Back to de.comp.lang.vbclassic | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Desktop handle "Wendelin Uez" <wuez@online.de> - 2024-04-11 19:03 +0200
  Re: Desktop handle Ulrich Möller <knobbi38@arcor.de> - 2024-04-12 21:53 +0200
    Re: Desktop handle Klaus Ketelaer <usenet@ketelaer.de> - 2024-04-13 10:30 +0200
      Re: Desktop handle "Wendelin Uez" <wuez@online.de> - 2024-04-13 11:04 +0200
        Re: Desktop handle Klaus Ketelaer <usenet@ketelaer.de> - 2024-04-13 19:06 +0200
          Re: Desktop handle Klaus Ketelaer <usenet@ketelaer.de> - 2024-04-13 19:15 +0200
          Re: Desktop handle "Wendelin Uez" <wuez@online.de> - 2024-04-14 18:35 +0200
            Re: Desktop handle Klaus Ketelaer <usenet@ketelaer.de> - 2024-04-14 20:46 +0200
      Re: Desktop handle Ulrich Möller <knobbi38@arcor.de> - 2024-04-13 13:35 +0200
  Re: Desktop handle Klaus Ketelaer <usenet@ketelaer.de> - 2024-04-17 11:06 +0200
    Re: Desktop handle "Wendelin Uez" <wuez@online.de> - 2024-04-17 16:07 +0200
      Re: Desktop handle Klaus Ketelaer <usenet@ketelaer.de> - 2024-04-17 19:30 +0200
        Re: Desktop handle "Wendelin Uez" <wuez@online.de> - 2024-04-19 13:44 +0200
          Re: Desktop handle Klaus Ketelaer <usenet@ketelaer.de> - 2024-04-20 00:43 +0200
            Re: Desktop handle "Wendelin Uez" <wuez@online.de> - 2024-04-20 19:46 +0200

csiph-web