Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.vbclassic > #7653
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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