Rocksolid Light

groups  faq  privacy  How to post  login

Message-ID:  

You will be awarded a medal for disregarding safety in saving someone.


rocksolid / de.comp.lang.vbclassic / Re: Desktop handle

SubjectAuthor
* Desktop handleWendelin Uez
+* Re: Desktop handleKlaus Ketelaer
|`* Re: Desktop handleWendelin Uez
| `* Re: Desktop handleKlaus Ketelaer
|  `* Re: Desktop handleWendelin Uez
|   `* Re: Desktop handleKlaus Ketelaer
|    +- Re: Desktop handleKlaus Ketelaer
|    `* Re: Desktop handleWendelin Uez
|     `* Re: Desktop handleWolfgang Εnzinger
|      `* Re: Desktop handleKlaus Ketelaer
|       `* Re: Desktop handleUlrich Möller
|        `- Re: Desktop handleWendelin Uez
+* Re: Desktop handleUlrich Möller
|`* Re: Desktop handleKlaus Ketelaer
| +* Re: Desktop handleWendelin Uez
| |`* Re: Desktop handleKlaus Ketelaer
| | +- Re: Desktop handleKlaus Ketelaer
| | `* Re: Desktop handleWendelin Uez
| |  `- Re: Desktop handleKlaus Ketelaer
| `- Re: Desktop handleUlrich Möller
`* Re: Desktop handleKlaus Ketelaer
 `* Re: Desktop handleWendelin Uez
  `* Re: Desktop handleKlaus Ketelaer
   `* Re: Desktop handleWendelin Uez
    `* Re: Desktop handleKlaus Ketelaer
     `- Re: Desktop handleWendelin Uez

Pages:12
Subject: Desktop handle
From: Wendelin Uez
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Thu, 11 Apr 2024 17:03 UTC
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: wue...@online.de (Wendelin Uez)
Newsgroups: de.comp.lang.vbclassic
Subject: Desktop handle
Date: Thu, 11 Apr 2024 19:03:03 +0200
Organization: A noiseless patient Spider
Lines: 20
Message-ID: <uv954n$1pung$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="iso-8859-1";
reply-type=original
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 11 Apr 2024 19:03:19 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="67c37a44d7520a639df60458172da9bb";
logging-data="1899248"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+RMz4W/0IMv4Uecbn6B3Hf"
Cancel-Lock: sha1:A0OpwsNN8j58wioGTPlupPGVdqY=
X-MimeOLE: Produced By Microsoft MimeOLE V6.3.9600.20671
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Windows Mail 6.0.6002.18005
X-Priority: 3
View all headers

Ich möchte gerne u.a. die Icon-Positionen des Desktops auslesen können und
bin zur Ermittlung des Desktop-Handles auf die beiden folgenden
Code-Beispiele gestoßen:

hDesk = FindWindow("progman", vbNullString)
hDesk = FindWindowEx(hDesk, 0, "SHELLDLL_DefView", vbNullString)
hDesk = FindWindowEx(hDesk, 0, "SysListView32", "FolderView")

hDesk = FindWindow("progman", "Program Manager")
hDesk = GetWindow(hDesk, GW_CHILD)
hDesk = GetWindow(hDesk, GW_CHILD)

In beiden Beispielen geht der jeweils 2. Aufruf schief und liefert null
zurück.
Andere Aufrufe von FindWindow bzw. FindWindowEx in meinem Programm
funktionieren dagegegen.

Was kann da falsch sein?

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Thu, 11 Apr 2024 18:16 UTC
References: 1
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Thu, 11 Apr 2024 20:16:32 +0200
Message-ID: <uv99e1$f2b3$1@solani.org>
References: <uv954n$1pung$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 11 Apr 2024 18:16:33 -0000 (UTC)
Injection-Info: solani.org;
logging-data="493923"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:C/JNgjw0B2/eSY1skMeVQsUo2Co=
In-Reply-To: <uv954n$1pung$1@dont-email.me>
X-User-ID: eJwFwQEBACAIA7BK6uFqHDjSP4Kbg5PaRqd5ey/tW9mnWgubNzC7JpCqBeiFTlRTYW9Ecnw1eRJC
View all headers

Am 11.04.2024 um 19:03 schrieb Wendelin Uez:
> Ich möchte gerne u.a. die Icon-Positionen des Desktops auslesen können
> und bin zur Ermittlung des Desktop-Handles auf die beiden folgenden
> Code-Beispiele gestoßen:
>
>    hDesk = FindWindow("progman", vbNullString)
>    hDesk = FindWindowEx(hDesk, 0, "SHELLDLL_DefView", vbNullString)
>    hDesk = FindWindowEx(hDesk, 0, "SysListView32", "FolderView")
>
>
>    hDesk = FindWindow("progman", "Program Manager")
>    hDesk = GetWindow(hDesk, GW_CHILD)
>    hDesk = GetWindow(hDesk, GW_CHILD)
>
> In beiden Beispielen geht der jeweils 2. Aufruf schief und liefert null
> zurück.
> Andere Aufrufe von FindWindow bzw. FindWindowEx in meinem Programm
> funktionieren dagegegen.
>
> Was kann da falsch sein?

hProgman = FindWindow("Progman", "Program Manager")
hDesktop = GetWindow(GetWindow(hProgman, GW_CHILD), GW_CHILD)

Subject: Re: Desktop handle
From: Wendelin Uez
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Fri, 12 Apr 2024 09:54 UTC
References: 1 2
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: wue...@online.de (Wendelin Uez)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Fri, 12 Apr 2024 11:54:47 +0200
Organization: A noiseless patient Spider
Lines: 33
Message-ID: <uvb0ei$29lo0$3@dont-email.me>
References: <uv954n$1pung$1@dont-email.me> <uv99e1$f2b3$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="UTF-8";
reply-type=response
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 12 Apr 2024 11:55:30 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="71850578b6ce042c45ea8f074e1e7953";
logging-data="2414336"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18cEIUp3HlpX3GkKju5L6iJ"
Cancel-Lock: sha1:Sb2FkuIVn9LdIvf6atnN3Yd+1T8=
In-Reply-To: <uv99e1$f2b3$1@solani.org>
X-MSMail-Priority: Normal
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V6.3.9600.20671
X-Newsreader: Microsoft Windows Mail 6.0.6002.18005
View all headers

"Klaus Ketelaer" <usenet@ketelaer.de> schrieb im Newsbeitrag
news:uv99e1$f2b3$1@solani.org...
> Am 11.04.2024 um 19:03 schrieb Wendelin Uez:
>> Ich möchte gerne u.a. die Icon-Positionen des Desktops auslesen können
>> und bin zur Ermittlung des Desktop-Handles auf die beiden folgenden
>> Code-Beispiele gestoßen:
>>
>> hDesk = FindWindow("progman", vbNullString)
>> hDesk = FindWindowEx(hDesk, 0, "SHELLDLL_DefView", vbNullString)
>> hDesk = FindWindowEx(hDesk, 0, "SysListView32", "FolderView")
>>
>>
>> hDesk = FindWindow("progman", "Program Manager")
>> hDesk = GetWindow(hDesk, GW_CHILD)
>> hDesk = GetWindow(hDesk, GW_CHILD)
>>
>> In beiden Beispielen geht der jeweils 2. Aufruf schief und liefert null
>> zurück.
>> Andere Aufrufe von FindWindow bzw. FindWindowEx in meinem Programm
>> funktionieren dagegegen.
>>
>> Was kann da falsch sein?
>
> hProgman = FindWindow("Progman", "Program Manager")
> hDesktop = GetWindow(GetWindow(hProgman, GW_CHILD), GW_CHILD)

Das ist praktisch identisch mit dem zweiten Codeblock, und deshalb kommt
bei mir ebenfalls hDesktop = 0 heraus.

Wenn's nicht an dem Code liegt, woran aber dann? Meine IDE läuft zwar unter
WIN8.1, aber das sollte doch hier keinen Unterschied machen?

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Fri, 12 Apr 2024 11:28 UTC
References: 1 2 3
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Fri, 12 Apr 2024 13:28:43 +0200
Message-ID: <uvb5tb$g4c9$1@solani.org>
References: <uv954n$1pung$1@dont-email.me> <uv99e1$f2b3$1@solani.org>
<uvb0ei$29lo0$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 12 Apr 2024 11:28:44 -0000 (UTC)
Injection-Info: solani.org;
logging-data="528777"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:CPk94o+DmO8jmEgLnVZAVFO0MGY=
In-Reply-To: <uvb0ei$29lo0$3@dont-email.me>
X-User-ID: eJwFwYEBwCAIA7CXQKDTc6Da/09YUgEHv0QhS6WomjtxRNMIfZr2TM/ySnJHir56L9L2LP48ZhI9
View all headers

Am 12.04.2024 um 11:54 schrieb Wendelin Uez:
>
> "Klaus Ketelaer" <usenet@ketelaer.de> schrieb im Newsbeitrag
[...]
>>> Was kann da falsch sein?
>>
>> hProgman = FindWindow("Progman", "Program Manager")
>> hDesktop = GetWindow(GetWindow(hProgman, GW_CHILD), GW_CHILD)
>
> Das ist praktisch identisch mit dem  zweiten Codeblock, und deshalb
> kommt bei mir ebenfalls hDesktop = 0 heraus.
>
> Wenn's nicht an dem Code liegt, woran aber dann? Meine IDE läuft zwar
> unter WIN8.1, aber das sollte doch hier keinen Unterschied machen?

Api-Funktionen werden von Windows ausgeführt und nicht von der IDE.

Mein Code liefert für alle Windows-Versionen von XP bis 10 das
korrekte Handle zurück. Also kann es bestenfalls noch an den
Api-Deklarationen liegen.

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long,
ByVal wCmd As Long) As Long

Private Const GW_OWNER As Long = 4
Private Const GW_CHILD As Long = 5

Subject: Re: Desktop handle
From: Wendelin Uez
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Fri, 12 Apr 2024 17:31 UTC
References: 1 2 3 4
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: wue...@online.de (Wendelin Uez)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Fri, 12 Apr 2024 19:31:35 +0200
Organization: A noiseless patient Spider
Lines: 47
Message-ID: <uvbr65$2fr7t$1@dont-email.me>
References: <uv954n$1pung$1@dont-email.me> <uv99e1$f2b3$1@solani.org> <uvb0ei$29lo0$3@dont-email.me> <uvb5tb$g4c9$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="UTF-8";
reply-type=response
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 12 Apr 2024 19:31:49 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="71850578b6ce042c45ea8f074e1e7953";
logging-data="2616573"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/nJs76x3nuSPOLDZhlnQzX"
Cancel-Lock: sha1:kp+KHmNlGT/wlzAwpqLHjBp9PMM=
X-MSMail-Priority: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.3.9600.20671
X-Priority: 3
X-Newsreader: Microsoft Windows Mail 6.0.6002.18005
In-Reply-To: <uvb5tb$g4c9$1@solani.org>
View all headers

>> Wenn's nicht an dem Code liegt, woran aber dann? Meine IDE läuft zwar
>> unter WIN8.1, aber das sollte doch hier keinen Unterschied machen?
>
> Api-Funktionen werden von Windows ausgeführt und nicht von der IDE.

Weshalb ich auf WIN8.1 hinwies - es könnte ja sein, daß sich da was geändert
hat.

> Mein Code liefert für alle Windows-Versionen von XP bis 10 das
> korrekte Handle zurück. Also kann es bestenfalls noch an den
> Api-Deklarationen liegen.

Das habe ich natürlich überprüft und sogar jetzt eine Kopie deiner
Deklaration per copy & paste tippfehlerfrei in meine Testroutine übernommen:

> Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
> (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
> Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal
> wCmd As Long) As Long
>
> Private Const GW_OWNER As Long = 4
> Private Const GW_CHILD As Long = 5

Leider mit exakt dem selben unerklärlichen Ergebnis.

Ich habe sogar ein neues Standard-Projekt ohne sonstigen Code angelegt, nur
mit diesen beiden Declares und der GW_CHILD-Konstante, sowie die beiden
Codezeilen
hProgman = ...
hDesk = ....
plus einer Zeile "MsgBox hDesk"

Ergebnis leider immer noch hDesk=0.

Ich habe dann ein Exe drau gemacht und auf einem anderen WIN8.1Rechner
laufen lassen. Ergebnis wieder null.

Dann das Exe auf einem WIN 10 Rechner. Ergebnis wunderbar wie gewünscht.

Also dürfte es doch etwas mit WIN8.1/WIN10 zu tun haben. Bloß was???

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Fri, 12 Apr 2024 18:42 UTC
References: 1 2 3 4 5
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Fri, 12 Apr 2024 20:42:48 +0200
Message-ID: <uvbvb9$gkl3$1@solani.org>
References: <uv954n$1pung$1@dont-email.me> <uv99e1$f2b3$1@solani.org>
<uvb0ei$29lo0$3@dont-email.me> <uvb5tb$g4c9$1@solani.org>
<uvbr65$2fr7t$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 12 Apr 2024 18:42:49 -0000 (UTC)
Injection-Info: solani.org;
logging-data="545443"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:cTkCUFb04cMLFhZF0LKxAeR6HUY=
X-User-ID: eJwFwYEBwCAIA7CXKNrCO1Tn/ycs4RJ0aovafHzKOfM5TRKBhi7N1p5ijxPrIqKDnS6kfw98ECE=
In-Reply-To: <uvbr65$2fr7t$1@dont-email.me>
View all headers

Am 12.04.2024 um 19:31 schrieb Wendelin Uez:

Was sagt den GetLastError?

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Fri, 12 Apr 2024 18:49 UTC
References: 1 2 3 4 5 6
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Fri, 12 Apr 2024 20:49:00 +0200
Message-ID: <uvbvmt$gkos$1@solani.org>
References: <uv954n$1pung$1@dont-email.me> <uv99e1$f2b3$1@solani.org>
<uvb0ei$29lo0$3@dont-email.me> <uvb5tb$g4c9$1@solani.org>
<uvbr65$2fr7t$1@dont-email.me> <uvbvb9$gkl3$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 12 Apr 2024 18:49:01 -0000 (UTC)
Injection-Info: solani.org;
logging-data="545564"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:8aj92mo8bdw8bIhNcHauQNy+7s8=
In-Reply-To: <uvbvb9$gkl3$1@solani.org>
X-User-ID: eJwFwYEBwDAEBMCVCP+acQj2H6F3MCpfOEHHYp0yt0/voNL2kDfY8rTHejBTWp6fsT38SP4sHBGO
View all headers

Am 12.04.2024 um 20:42 schrieb Klaus Ketelaer:
> Am 12.04.2024 um 19:31 schrieb Wendelin Uez:
>
> Was sagt den GetLastError?

Normalerweise ist die Function in der User32.dll. Laut Doku
der Function gibt es da noch eine

ext-ms-win-ntuser-window-l1-1-0 (eingeführt in Windows 8)

Vielleicht hängt es damit zusammen... Einfach mal die
Doku lesen...

Subject: Re: Desktop handle
From: Ulrich Möller
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Fri, 12 Apr 2024 19:53 UTC
References: 1
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: knobb...@arcor.de (Ulrich Möller)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Fri, 12 Apr 2024 21:53:32 +0200
Organization: A noiseless patient Spider
Lines: 25
Message-ID: <uvc3ft$2hk27$1@dont-email.me>
References: <uv954n$1pung$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 12 Apr 2024 21:53:34 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="792baf6e866cd1369d8454d87d256304";
logging-data="2674759"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18HbiwyAiLD1dzg6fdrStbZDv7W38U/WKY="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:2YdxpAAv1MhG4MarEpm/eaUQ1Yk=
In-Reply-To: <uv954n$1pung$1@dont-email.me>
Content-Language: de-DE
View all headers

Hallo Wendelin,

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.

Gruß Ulrich

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Sat, 13 Apr 2024 08:30 UTC
References: 1 2
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Sat, 13 Apr 2024 10:30:12 +0200
Message-ID: <uvdfqk$hb05$1@solani.org>
References: <uv954n$1pung$1@dont-email.me> <uvc3ft$2hk27$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 13 Apr 2024 08:30:12 -0000 (UTC)
Injection-Info: solani.org;
logging-data="568325"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:GInKo+2QhCvoMfEHfn95pIQ35fE=
In-Reply-To: <uvc3ft$2hk27$1@dont-email.me>
X-User-ID: eJwFwQkRwDAMAzBK9TX2rnDiPPwhTOIVVF+ICi4XuZPDquOW2eVpGODLuqvuxplIx3qcrB9TtBNN
View all headers

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

Subject: Re: Desktop handle
From: Wendelin Uez
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Sat, 13 Apr 2024 08:43 UTC
References: 1 2 3 4 5 6
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: wue...@online.de (Wendelin Uez)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Sat, 13 Apr 2024 10:43:20 +0200
Organization: A noiseless patient Spider
Lines: 3
Message-ID: <uvdgjm$2trma$1@dont-email.me>
References: <uv954n$1pung$1@dont-email.me> <uv99e1$f2b3$1@solani.org> <uvb0ei$29lo0$3@dont-email.me> <uvb5tb$g4c9$1@solani.org> <uvbr65$2fr7t$1@dont-email.me> <uvbvb9$gkl3$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="utf-8";
reply-type=response
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 13 Apr 2024 10:43:34 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="5168a994e0e499a6d4bf7d58b0e8ee72";
logging-data="3075786"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18gB+UkJYYjYsppJcdViaiZ"
Cancel-Lock: sha1:HNOdK1rqDe2Egcb2NswZaTHdv1Y=
X-Priority: 3
X-Newsreader: Microsoft Windows Mail 6.0.6002.18005
X-MimeOLE: Produced By Microsoft MimeOLE V6.3.9600.20671
X-MSMail-Priority: Normal
In-Reply-To: <uvbvb9$gkl3$1@solani.org>
View all headers

> Was sagt den GetLastError?

null

Subject: Re: Desktop handle
From: Wendelin Uez
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Sat, 13 Apr 2024 09:04 UTC
References: 1 2 3
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: wue...@online.de (Wendelin Uez)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Sat, 13 Apr 2024 11:04:33 +0200
Organization: A noiseless patient Spider
Lines: 18
Message-ID: <uvdhrf$2u3ku$1@dont-email.me>
References: <uv954n$1pung$1@dont-email.me> <uvc3ft$2hk27$1@dont-email.me> <uvdfqk$hb05$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="utf-8";
reply-type=response
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 13 Apr 2024 11:04:48 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="5168a994e0e499a6d4bf7d58b0e8ee72";
logging-data="3083934"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX196+kHzAUlCvOkW0kM4GAGx"
Cancel-Lock: sha1:6qM4+1C/Q6sNsaObRHo/qx6nOPs=
X-Newsreader: Microsoft Windows Mail 6.0.6002.18005
X-MimeOLE: Produced By Microsoft MimeOLE V6.3.9600.20671
X-Priority: 3
X-MSMail-Priority: Normal
In-Reply-To: <uvdfqk$hb05$1@solani.org>
View all headers

> 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.

Habe ich jetzt auch probiert und die Aufrufe entzerrt:
GetDesktopWindow() liefert noch ein Handle, aber GW_HWNDFIRST schon nicht
mehr und trotzdem mit GetLastError=0

Subject: Re: Desktop handle
From: Ulrich Möller
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Sat, 13 Apr 2024 11:35 UTC
References: 1 2 3
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: knobb...@arcor.de (Ulrich Möller)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Sat, 13 Apr 2024 13:35:31 +0200
Organization: A noiseless patient Spider
Lines: 17
Message-ID: <uvdqm4$2vo2v$1@dont-email.me>
References: <uv954n$1pung$1@dont-email.me> <uvc3ft$2hk27$1@dont-email.me>
<uvdfqk$hb05$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 13 Apr 2024 13:35:33 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="578050f5ad8646a7a00bbe0d136d85bb";
logging-data="3137631"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+Tbpj+oj0SV/cpfEwMT4LoYsQWV/K070U="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:z6tBkLp13BmRl3wjdDWSJyKRHyg=
Content-Language: de-DE
In-Reply-To: <uvdfqk$hb05$1@solani.org>
View all headers

Hallo Klaus,

Am 13.04.2024 um 10:30 schrieb Klaus Ketelaer:
> 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)

Es wird lediglich die UIAutomationCore.dll benötigt und hierbei ist es
egal, ob VBA oder VB. Ich habe das letztens in einer MS Access
verwendet. Es ist einfach zu handhaben und macht genau das, was es soll.

Da UIAutomation auch von den Tools für Barrierefreiheit verwendet wird,
sollte es auch stabil sein.

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Sat, 13 Apr 2024 17:06 UTC
References: 1 2 3 4
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Sat, 13 Apr 2024 19:06:42 +0200
Message-ID: <uvee32$hq5s$1@solani.org>
References: <uv954n$1pung$1@dont-email.me> <uvc3ft$2hk27$1@dont-email.me>
<uvdfqk$hb05$1@solani.org> <uvdhrf$2u3ku$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sat, 13 Apr 2024 17:06:42 -0000 (UTC)
Injection-Info: solani.org;
logging-data="583868"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:02nr8FN4DM6rDhzNZ2Ao9qNwTg8=
In-Reply-To: <uvdhrf$2u3ku$1@dont-email.me>
X-User-ID: eJwFwQkBwDAIA0BLtBBK5PAM/xJ2B/Xj/czhhsWGTL1Y03IjyNRbndZ3oheM/HTANTntEuQPHC0Q7g==
View all headers

Am 13.04.2024 um 11:04 schrieb Wendelin Uez:
>
>> 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.
>
> Habe ich jetzt auch probiert und die Aufrufe entzerrt:
> GetDesktopWindow() liefert noch ein Handle, aber GW_HWNDFIRST schon
> nicht mehr und trotzdem  mit GetLastError=0
>

Wie das Leben so spielt. Manchmal findet man nichts, und
das ist dann auch kein Fehler.

Hier sollte man schon eher etwas finden, denn die Desktop-Icons
liegen auf dem Program...

Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long,
ByVal wCmd As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Const GW_HWNDFIRST = 0
Private Const GW_HWNDNEXT = 2

Private hProgman As Long

Private Sub Form_Load()
Dim hwnd As Long

hProgman = FindWindow(vbNullString, "Program Manager")

hwnd = GetWindow(hProgman, GW_HWNDFIRST)
Do
Debug.Print hwnd
hwnd = GetWindow(hwnd, GW_HWNDNEXT)
Loop Until hwnd = 0

End Sub

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Sat, 13 Apr 2024 17:15 UTC
References: 1 2 3 4 5
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Sat, 13 Apr 2024 19:15:54 +0200
Message-ID: <uveekb$hq5s$2@solani.org>
References: <uv954n$1pung$1@dont-email.me> <uvc3ft$2hk27$1@dont-email.me>
<uvdfqk$hb05$1@solani.org> <uvdhrf$2u3ku$1@dont-email.me>
<uvee32$hq5s$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sat, 13 Apr 2024 17:15:55 -0000 (UTC)
Injection-Info: solani.org;
logging-data="583868"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:0bc36NnGun1SL6NNan+TMEDsYxk=
X-User-ID: eJwFwYERgDAIA8CVGiHkHKeA2X8E/xmFGmWxkqbj4sQy0DorzCRHOm4V+pXnexhXrXWnjB8TSBEo
In-Reply-To: <uvee32$hq5s$1@solani.org>
View all headers

Mal rein vorsorglich:

Die Daten zu einem Fenster ermittelt man so: :-) :-) :-)

Private Sub RegisterWindow(ByVal hWindow As Long)
Dim hParent As Long
Dim hTask As Long
Dim szTitle As String
Dim szClass As String
Dim lStyle As Long

Dim iLength As Integer
Dim lResult As Long

' Eltern-Fenster
hParent = GetParent(hWindow)

' Festerstil
lStyle = GetWindowLong(hWindow, GWL_STYLE)

'Titel des Fenster auslesen
szTitle = Space$(255)
iLength = GetWindowText(hWindow, szTitle, 255)
szTitle = Left$(szTitle, iLength)

szClass = Space$(255)
iLength = GetClassName(hWindow, szClass, Len(szClass))
szClass = Left$(szClass, iLength)

'Task-ID ermitteln
lResult = GetWindowThreadProcessId(hWindow, hTask)

m_Windows = m_Windows + 1
ReDim Preserve m_Window(m_Windows)

m_Window(m_Windows).hWnd = hWindow
m_Window(m_Windows).hParent = hParent
m_Window(m_Windows).Style = lStyle
m_Window(m_Windows).Title = szTitle
m_Window(m_Windows).Class = szClass
m_Window(m_Windows).Task = hTask

m_Window(m_Windows).Locked = False
m_Window(m_Windows).Borders = (lStyle And WS_BORDER) = WS_BORDER
m_Window(m_Windows).Visible = (lStyle And WS_VISIBLE) = WS_VISIBLE

lResult = GetWindowRect(hWindow, m_Window(m_Windows).WindowPos)
End Sub

Subject: Re: Desktop handle
From: Wendelin Uez
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Sun, 14 Apr 2024 16:35 UTC
References: 1 2 3 4 5
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: wue...@online.de (Wendelin Uez)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Sun, 14 Apr 2024 18:35:17 +0200
Organization: A noiseless patient Spider
Lines: 16
Message-ID: <uvh0kn$3npu6$1@dont-email.me>
References: <uv954n$1pung$1@dont-email.me> <uvc3ft$2hk27$1@dont-email.me> <uvdfqk$hb05$1@solani.org> <uvdhrf$2u3ku$1@dont-email.me> <uvee32$hq5s$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="utf-8";
reply-type=original
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 14 Apr 2024 18:35:35 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="0b76de8faac1506702babf08d5b73a32";
logging-data="3925958"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+r1D3gq84/vkJv5SNyetIF"
Cancel-Lock: sha1:snEavLAdc8H1bkWqegA+brPHJ5c=
X-Priority: 3
In-Reply-To: <uvee32$hq5s$1@solani.org>
X-MSMail-Priority: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V6.3.9600.20671
X-Newsreader: Microsoft Windows Mail 6.0.6002.18005
View all headers

Danke für den Code, aber die Folge

hProgman = FindWindow(vbNullString, "Program Manager")
hwnd = GetWindow(hProgman, GW_HWNDFIRST)
:::
hwnd = GetWindow(hwnd, GW_HWNDNEXT)

hangelt sich zwar durch die Top-Window-Fensterliste, aber abgesehen von
diversen System-Fenstern sind das nicht die Desktop-Icons.

Wenn ich in dem Fenster mit dem Titel "Program Manager" mit
hWnd=GetWindows(hWnd,GW_CHILD) dessen erstes Child-Window holen will, dann
kommt hWnd wie gehabt wieder mit Null zurück.

seufz

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Sun, 14 Apr 2024 18:46 UTC
References: 1 2 3 4 5 6
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Sun, 14 Apr 2024 20:46:52 +0200
Message-ID: <uvh8at$j7nq$1@solani.org>
References: <uv954n$1pung$1@dont-email.me> <uvc3ft$2hk27$1@dont-email.me>
<uvdfqk$hb05$1@solani.org> <uvdhrf$2u3ku$1@dont-email.me>
<uvee32$hq5s$1@solani.org> <uvh0kn$3npu6$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Sun, 14 Apr 2024 18:46:53 -0000 (UTC)
Injection-Info: solani.org;
logging-data="630522"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:p/97KPquMJFm6y8e6guneZwIWvY=
In-Reply-To: <uvh0kn$3npu6$1@dont-email.me>
X-User-ID: eJwFwQEBwDAIAzBNPRQ2OayAfwlPaIFQejCcy/3CsgfcuW714HfTYUIH2wVotYclcI7q/RlSEY0=
View all headers

Am 14.04.2024 um 18:35 schrieb Wendelin Uez:
> Danke für den Code, aber die Folge
>
> hProgman = FindWindow(vbNullString, "Program Manager")
> hwnd = GetWindow(hProgman, GW_HWNDFIRST)
> :::
> hwnd = GetWindow(hwnd, GW_HWNDNEXT)
>
> hangelt sich zwar durch die Top-Window-Fensterliste, aber abgesehen von
> diversen System-Fenstern  sind das nicht die Desktop-Icons.
>
> Wenn ich in dem Fenster mit dem Titel "Program Manager"  mit
> hWnd=GetWindows(hWnd,GW_CHILD) dessen erstes Child-Window holen will,
> dann kommt hWnd wie gehabt wieder mit Null zurück.
>
> seufz

Vielleicht gehst Du dein Unterfangen ja auch suboptimal an.

Würde ich nur die Positionen der auf dem Desktop abgelegten
Icons ermitteln wollen, dann würde ich vermutlich einfach die
Icons aus ssfDESKTOP und/oder ssfCOMMONDESKTOPDIRECTORY auslesen
und mir dann mit FindWinwow(Ex) die Daten zum Fenster holen.

Vermutlich ist der ganze Krempel aber auch in der Registry zu
finden.

Ich habe davon wenig Ahnung, denn alles, was ich mit den Icons
anstelle, das ist, sie alle bei jedem Systemstart zu löschen.
Ich hasse Icons auf dem Desktop. Igitigitt...

Subject: Re: Desktop handle
From: Wolfgang Εnzinger
Newsgroups: de.comp.lang.vbclassic
Date: Mon, 15 Apr 2024 21:41 UTC
References: 1 2 3 4 5 6 7
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: we_use...@nurfuerspam.de (Wolfgang Εnzinger)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Mon, 15 Apr 2024 23:41:57 +0200
Lines: 26
Message-ID: <foc6sfem9cwh.dlg@weu.my-fqdn.de>
References: <uv954n$1pung$1@dont-email.me> <uv99e1$f2b3$1@solani.org> <uvb0ei$29lo0$3@dont-email.me> <uvb5tb$g4c9$1@solani.org> <uvbr65$2fr7t$1@dont-email.me> <uvbvb9$gkl3$1@solani.org> <uvdgjm$2trma$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
X-Trace: individual.net 8Fh+FWQ8drnqMPdHHm/SyAQ/81ez3xmimr8lcyaa8B1zObEdI=
Cancel-Lock: sha1:kRh1+3pMVtCbX6llKMlh01UlyaM= sha256:LJ6rP8G9+7xBn3UKtLVjxMsrsvqDK4oFKi6Fl9dehRA=
User-Agent: 40tude_Dialog/2.0.15.41de
View all headers

Am Sat, 13 Apr 2024 10:43:20 +0200 schrieb Wendelin Uez:

>> Was sagt den GetLastError?
>
> null

Der Rückgabewert von GetLastError() ist ohne Aussagekraft, wenn die zuvor
aufgerufene WinAPI-Funktion dem Compiler per Declare bekanntgemacht wurde
(so wie das hier der Fall zu sein scheint). In dieser Situation wäre
Err.LastDllError die geeignete Schnittstelle, um den vom OS hinterlegten
Fehlercode abzufragen.

GetLastError() hingegen ist das Mittel der Wahl, wenn es kein Declare zur
aufgerufenen Funktion gibt, sondern die Funktion mittels einer TLB dem
Compiler bekanntgemacht wurde.

Freilich kann in einem Projekt auch beides gegeben sein; dann sticht die
Declare-Anweisung. Im Zweifel Rechtsklick auf den Funktionsnamen und dann
"Definition" auswählen. Je nachdem landet man dann im Objektkatalog mit
entsprechend vorausgewählter TypeLib, oder eben in einem Modul bei einer
Declare-Anweisung.

--
Viele Grüße,
Wolfgang
https://www.enzinger.net

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Mon, 15 Apr 2024 23:13 UTC
References: 1 2 3 4 5 6 7 8
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Tue, 16 Apr 2024 01:13:21 +0200
Message-ID: <uvkcai$7pg$1@solani.org>
References: <uv954n$1pung$1@dont-email.me> <uv99e1$f2b3$1@solani.org>
<uvb0ei$29lo0$3@dont-email.me> <uvb5tb$g4c9$1@solani.org>
<uvbr65$2fr7t$1@dont-email.me> <uvbvb9$gkl3$1@solani.org>
<uvdgjm$2trma$1@dont-email.me> <foc6sfem9cwh.dlg@weu.my-fqdn.de>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 15 Apr 2024 23:13:22 -0000 (UTC)
Injection-Info: solani.org;
logging-data="7984"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:yzIy8e3McoIhxCEcwTjzoKQNyD8=
X-User-ID: eJwFwYEBgDAIA7CXbKGA5yCO/09YIgvEpIfCtdqmWNPnO74sVK0joxKPvY4R9yS6GzQa/rwSxxBm
In-Reply-To: <foc6sfem9cwh.dlg@weu.my-fqdn.de>
View all headers

Am 15.04.2024 um 23:41 schrieb Wolfgang Εnzinger:
> Am Sat, 13 Apr 2024 10:43:20 +0200 schrieb Wendelin Uez:
>
>>> Was sagt den GetLastError?
>>
>> null
>
> Der Rückgabewert von GetLastError() ist ohne Aussagekraft, wenn die zuvor
> aufgerufene WinAPI-Funktion dem Compiler per Declare bekanntgemacht wurde

Dem kann ich so nicht zustimmen.

Meine Api-Funktionen sind IMMER deklariert, und ich arbeite in vielen
sensiblen Bereichen mit GetLastError().

Hier eine solche Funktion. Da liefert GetLastError immer den Fehler.

Function LoadPrivilege(ByVal Privilege As String) As Boolean
'The access
Dim hToken As Long
Dim SEDebugNameValue As LUID
Dim tkp As TOKEN_PRIVILEGES
Dim hProcessHandle As Long
Dim tkpNewButIgnored As TOKEN_PRIVILEGES
Dim lbuffer As Long

hProcessHandle = GetCurrentProcess()
If GetLastError <> 0 Then
MsgBox "GetCurrentProcess, Error: " & GetLastError()
Exit Function
End If

OpenProcessToken hProcessHandle, (TOKEN_ADJUST_PRIVILEGES Or
TOKEN_QUERY), hToken
If GetLastError <> 0 Then
MsgBox "OpenProcessToken, Error: " & GetLastError()
Exit Function
End If

LookupPrivilegeValue "", Privilege, SEDebugNameValue
If GetLastError <> 0 Then
MsgBox "LookupPrivilegeValue, Error: " & GetLastError()
Exit Function
End If

With tkp
.PrivilegeCount = 1
.TheLuid = SEDebugNameValue
.Attributes = SE_PRIVILEGE_ENABLED
End With

AdjustTokenPrivileges hToken, False, tkp, Len(tkp), tkpNewButIgnored,
lbuffer
If GetLastError <> 0 Then
MsgBox "AdjustTokenPrivileges, Error: " & GetLastError()
Exit Function
End If

LoadPrivilege = True

End Function

Gruß Klaus

Subject: Re: Desktop handle
From: Ulrich Möller
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Tue, 16 Apr 2024 00:54 UTC
References: 1 2 3 4 5 6 7 8 9
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: knobb...@arcor.de (Ulrich Möller)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Tue, 16 Apr 2024 02:54:37 +0200
Organization: A noiseless patient Spider
Lines: 35
Message-ID: <uvki8e$irei$1@dont-email.me>
References: <uv954n$1pung$1@dont-email.me> <uv99e1$f2b3$1@solani.org>
<uvb0ei$29lo0$3@dont-email.me> <uvb5tb$g4c9$1@solani.org>
<uvbr65$2fr7t$1@dont-email.me> <uvbvb9$gkl3$1@solani.org>
<uvdgjm$2trma$1@dont-email.me> <foc6sfem9cwh.dlg@weu.my-fqdn.de>
<uvkcai$7pg$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 16 Apr 2024 02:54:38 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="696997a94dc2794855a9d7e83a4e3212";
logging-data="617938"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+IfjwkjYp/tjpyvAUTJqR8h5vgPOeW9ug="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:v/39H0mARJ6Xrp4H6B/MmC7LU2s=
In-Reply-To: <uvkcai$7pg$1@solani.org>
Content-Language: de-DE
View all headers

Hallo Klaus,

Am 16.04.2024 um 01:13 schrieb Klaus Ketelaer:
> Am 15.04.2024 um 23:41 schrieb Wolfgang Εnzinger:
>> Am Sat, 13 Apr 2024 10:43:20 +0200 schrieb Wendelin Uez:
>>
>>>> Was sagt den GetLastError?
>>>
>>> null
>>
>> Der Rückgabewert von GetLastError() ist ohne Aussagekraft, wenn die zuvor
>> aufgerufene WinAPI-Funktion dem Compiler per Declare bekanntgemacht wurde
>
> Dem kann ich so nicht zustimmen.

Doch, das solltest du. Bei einem Aufruf einer per Declare aufgerufen API
Funktion übernimmt VB implizit den Aufruf von GetLastError().

Siehe auch:
http://www.jasinskionline.com/windowsapi/ref/g/getlasterror.html

Dort wird es eventuell etwas besser beschrieben:
Visual Basic-Specific Issues

Although GetLastError works perfectly in Visual Basic, it will sometimes
not appear to work. This is because Visual Basic implicitly uses the API
frequently to perform tasks which are seemingly intrinsic to the
language. These hidden API function calls will usually overwrite the
error code which your code may be trying to read. To compensate for
this, the LastDllError property of the Err object, predefined in Visual
Basic, caches the error code from the last API function explicitly
called by your program. You should use the expression Err.LastDllError
instead of the GetLastError function to debug failed API function calls.

Gruß Ulrich

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Wed, 17 Apr 2024 09:06 UTC
References: 1
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Wed, 17 Apr 2024 11:06:35 +0200
Message-ID: <uvo3es$4dgq$3@solani.org>
References: <uv954n$1pung$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 17 Apr 2024 09:06:36 -0000 (UTC)
Injection-Info: solani.org;
logging-data="144922"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:IXUV8ww3969Mriri8JQv+t5qKjs=
X-User-ID: eJwFwQkBACAIBLBKfAcSB0H6R3CDOnuHOdyw2EOje61DOvRRpCGd65RwPpEeHrslTVXY0fcBFcURUQ==
In-Reply-To: <uv954n$1pung$1@dont-email.me>
View all headers

Am 11.04.2024 um 19:03 schrieb Wendelin Uez:
> Ich möchte gerne u.a. die Icon-Positionen des Desktops auslesen können
> und bin zur Ermittlung des Desktop-Handles auf die beiden folgenden
> Code-Beispiele gestoßen:

Ich sitze jetzt seit 2 Tagen an den blöden Icons und komme nicht
weiter. Die Positionen sind kein Problem, aber ich komme einfach
nicht an die Texte heran...

Vielleicht hilft es dir ja:

Private Function EnumIcons(ByVal lSysListView As Long) As Long
Dim pid As Long
Dim tid As Long
Dim lpSysShared As Long
Dim hProcess As Long
Dim lWritten As Long
Dim i As Integer
Dim pt As POINTAPI

m_Icons = SendMessage(lSysListView, LVM_GETTITEMCOUNT, 0, 0&)
ReDim m_Icon(m_Icons)

tid = GetWindowThreadProcessId(lSysListView, pid)
lpSysShared = GetMemSharedNT(pid, Len(pt), hProcess)
WriteProcessMemory hProcess, ByVal lpSysShared, pt, Len(pt), lWritten
For i = 0 To m_Icons - 1
SendMessage hSysListView, LVM_GETITEMPOSITION, i, ByVal lpSysShared
ReadProcessMemory hProcess, ByVal lpSysShared, pt, Len(pt), lWritten

m_Icon(i).X = pt.X
m_Icon(i).Y = pt.Y
' m_Icon(i).Text = Ich bin einfach zu blöd den Text auszulenen...
Next i
FreeMemSharedNT hProcess, lpSysShared, Len(pt)

End Function

Subject: Re: Desktop handle
From: Wendelin Uez
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Wed, 17 Apr 2024 14:07 UTC
References: 1 2
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: wue...@online.de (Wendelin Uez)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Wed, 17 Apr 2024 16:07:49 +0200
Organization: A noiseless patient Spider
Lines: 4
Message-ID: <uvop9m$1luck$2@dont-email.me>
References: <uv954n$1pung$1@dont-email.me> <uvo3es$4dgq$3@solani.org>
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="UTF-8";
reply-type=response
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 17 Apr 2024 17:19:18 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="89f7e7da420ca394c69d21616413827e";
logging-data="1767828"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+m0tEb7X5ztEhvVo5Ro55x"
Cancel-Lock: sha1:rp76wdByQlgQ0BZJEnSMnEn0cRE=
X-Priority: 3
X-MimeOLE: Produced By Microsoft MimeOLE V6.3.9600.20671
X-MSMail-Priority: Normal
In-Reply-To: <uvo3es$4dgq$3@solani.org>
X-Newsreader: Microsoft Windows Mail 6.0.6002.18005
View all headers

Vielen Dank. Wenn ich das richtig sehe, dann soll lSyslistView das hWnd des
SystemListView-Objekts sein, aber genau an das komme ich ja leider nicht
einmal, und ich weiß auch nicht warum.

Subject: Re: Desktop handle
From: Wendelin Uez
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Wed, 17 Apr 2024 14:16 UTC
References: 1 2 3 4 5 6 7 8 9 10
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: wue...@online.de (Wendelin Uez)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Wed, 17 Apr 2024 16:16:55 +0200
Organization: A noiseless patient Spider
Lines: 43
Message-ID: <uvop9m$1luck$3@dont-email.me>
References: <uv954n$1pung$1@dont-email.me> <uv99e1$f2b3$1@solani.org> <uvb0ei$29lo0$3@dont-email.me> <uvb5tb$g4c9$1@solani.org> <uvbr65$2fr7t$1@dont-email.me> <uvbvb9$gkl3$1@solani.org> <uvdgjm$2trma$1@dont-email.me> <foc6sfem9cwh.dlg@weu.my-fqdn.de> <uvkcai$7pg$1@solani.org> <uvki8e$irei$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="UTF-8";
reply-type=response
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 17 Apr 2024 17:19:19 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="89f7e7da420ca394c69d21616413827e";
logging-data="1767828"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+a2E+v/SIhLmcPHx5Z97us"
Cancel-Lock: sha1:NldPWqOm4Wd9qdSpMqJ8Vw5VB8c=
X-Priority: 3
In-Reply-To: <uvki8e$irei$1@dont-email.me>
X-Newsreader: Microsoft Windows Mail 6.0.6002.18005
X-MimeOLE: Produced By Microsoft MimeOLE V6.3.9600.20671
X-MSMail-Priority: Normal
View all headers

> Hallo Klaus,
>
> Am 16.04.2024 um 01:13 schrieb Klaus Ketelaer:
>> Am 15.04.2024 um 23:41 schrieb Wolfgang Εnzinger:
>>> Am Sat, 13 Apr 2024 10:43:20 +0200 schrieb Wendelin Uez:
>>>
>>>>> Was sagt den GetLastError?
>>>>
>>>> null
>>>
>>> Der Rückgabewert von GetLastError() ist ohne Aussagekraft, wenn die
>>> zuvor
>>> aufgerufene WinAPI-Funktion dem Compiler per Declare bekanntgemacht
>>> wurde
>>
>> Dem kann ich so nicht zustimmen.
>
> Doch, das solltest du. Bei einem Aufruf einer per Declare aufgerufen API
> Funktion übernimmt VB implizit den Aufruf von GetLastError().
>
> Siehe auch:
> http://www.jasinskionline.com/windowsapi/ref/g/getlasterror.html
>
> Dort wird es eventuell etwas besser beschrieben:
> Visual Basic-Specific Issues
>
> Although GetLastError works perfectly in Visual Basic, it will sometimes
> not appear to work. This is because Visual Basic implicitly uses the API
> frequently to perform tasks which are seemingly intrinsic to the language.
> These hidden API function calls will usually overwrite the error code
> which your code may be trying to read. To compensate for this, the
> LastDllError property of the Err object, predefined in Visual Basic,
> caches the error code from the last API function explicitly called by your
> program. You should use the expression Err.LastDllError instead of the
> GetLastError function to debug failed API function calls.
>
> Gruß Ulrich

Ich habe jetzt in allen meinen bisherigen Tests GetLastError() durch
Err.LastDLLError ersetzt, auch hier wird null zurück gegeben.

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Wed, 17 Apr 2024 17:30 UTC
References: 1 2 3
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Wed, 17 Apr 2024 19:30:21 +0200
Message-ID: <uvp0ve$2he9$1@solani.org>
References: <uv954n$1pung$1@dont-email.me> <uvo3es$4dgq$3@solani.org>
<uvop9m$1luck$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 17 Apr 2024 17:30:22 -0000 (UTC)
Injection-Info: solani.org;
logging-data="83401"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:F0KwbVBYGmhr5HVhWEcE2QYwBDo=
In-Reply-To: <uvop9m$1luck$2@dont-email.me>
X-User-ID: eJwFwYEBwCAIA7CXrNAq54CD/09YQhP0jotyDidqvEyxwPH9pYgbYPZa+1yOnmh0ZDWdjR8JDBBB
View all headers

Am 17.04.2024 um 16:07 schrieb Wendelin Uez:
> Vielen Dank. Wenn ich das richtig sehe, dann soll lSyslistView das hWnd
> des SystemListView-Objekts sein, aber genau an das komme ich ja leider
> nicht einmal, und ich weiß auch nicht warum.

hProgman = FindWindow(vbNullString, "Program Manager")
hTemp = FindWindowEx(hProgman, 0, "SHELLDLL_defVIEW", vbNullString)
hSysListView = FindWindowEx(hTemp, 0, "SysListView32", vbNullString)

Subject: Re: Desktop handle
From: Wendelin Uez
Newsgroups: de.comp.lang.vbclassic
Organization: A noiseless patient Spider
Date: Fri, 19 Apr 2024 11:44 UTC
References: 1 2 3 4
Path: i2pn2.org!i2pn.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: wue...@online.de (Wendelin Uez)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Fri, 19 Apr 2024 13:44:51 +0200
Organization: A noiseless patient Spider
Lines: 30
Message-ID: <uvu7j6$33qbv$2@dont-email.me>
References: <uv954n$1pung$1@dont-email.me> <uvo3es$4dgq$3@solani.org> <uvop9m$1luck$2@dont-email.me> <uvp0ve$2he9$1@solani.org>
MIME-Version: 1.0
Content-Type: text/plain;
format=flowed;
charset="UTF-8";
reply-type=response
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 19 Apr 2024 18:53:58 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="b6c7f66f2ae3781ae71ee16912f6b96b";
logging-data="3271039"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18D7tcFj3VLXYex1EBYGAjY"
Cancel-Lock: sha1:XrsxVB+R7ydGelOO9qZ1AcIxBs8=
X-Newsreader: Microsoft Windows Mail 6.0.6002.18005
X-Priority: 3
X-MSMail-Priority: Normal
In-Reply-To: <uvp0ve$2he9$1@solani.org>
X-MimeOLE: Produced By Microsoft MimeOLE V6.3.9600.20671
View all headers

"Klaus Ketelaer" <usenet@ketelaer.de> schrieb im Newsbeitrag
news:uvp0ve$2he9$1@solani.org...
> Am 17.04.2024 um 16:07 schrieb Wendelin Uez:
>> Vielen Dank. Wenn ich das richtig sehe, dann soll lSyslistView das hWnd
>> des SystemListView-Objekts sein, aber genau an das komme ich ja leider
>> nicht einmal, und ich weiß auch nicht warum.
>
> hProgman = FindWindow(vbNullString, "Program Manager")
> hTemp = FindWindowEx(hProgman, 0, "SHELLDLL_defVIEW", vbNullString)
> hSysListView = FindWindowEx(hTemp, 0, "SysListView32", vbNullString)

Danke Klaus, aber da liegt ja mein Eingangs-Problem, daß das bei mir unter
WIN8.1 nicht funktioniert, hTemp=0 und Err.dllError liefert ebenfalls null
zurück. Unter WIN10 kein Problem, aber das nutzt mir nichts.

Ich könnte jetzt WIN8.1 und den ganzen sonstigen Krempel nochmals neu
installieren und hoffen, daß das dann doch noch funktionieren könnte, aber
soviel Zeit habe ich nicht mal als Rentner :-), also entfällt in meinem Prog
halt das Feature "DesktopIcons".

Mein nächster neuer Rechner wird sowieso nicht mehr unter Windows laufen,
und WINE wird wahrscheinlich noch viel mehr Probleme machen mit Windows-DLLs
(was mich bisher vom Umstieg auf Linux abgehalten hat, gibt's eigentlich
eine WINE-NG?).

Gruß
wuez

Subject: Re: Desktop handle
From: Klaus Ketelaer
Newsgroups: de.comp.lang.vbclassic
Date: Fri, 19 Apr 2024 22:43 UTC
References: 1 2 3 4 5
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From: use...@ketelaer.de (Klaus Ketelaer)
Newsgroups: de.comp.lang.vbclassic
Subject: Re: Desktop handle
Date: Sat, 20 Apr 2024 00:43:02 +0200
Message-ID: <uvus1n$5lob$1@solani.org>
References: <uv954n$1pung$1@dont-email.me> <uvo3es$4dgq$3@solani.org>
<uvop9m$1luck$2@dont-email.me> <uvp0ve$2he9$1@solani.org>
<uvu7j6$33qbv$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 19 Apr 2024 22:43:03 -0000 (UTC)
Injection-Info: solani.org;
logging-data="186123"; mail-complaints-to="abuse@news.solani.org"
User-Agent: Mozilla/2.0 (compatible; MSIE 3.0; Windows 3.1)
Cancel-Lock: sha1:140492ebATVccMk0LzWno++ioRg=
X-User-ID: eJwNxsERACEIA8CWzAFByxEl/ZdwzuxjwwiedAY9FCroBj4+XWOibWVhUIOnxan3y52+4b7afhHREJo=
In-Reply-To: <uvu7j6$33qbv$2@dont-email.me>
View all headers

Am 19.04.2024 um 13:44 schrieb Wendelin Uez:
>
> Danke Klaus, aber da liegt ja mein Eingangs-Problem, daß das bei mir
> unter WIN8.1 nicht funktioniert, hTemp=0 und Err.dllError liefert
> ebenfalls null zurück. Unter WIN10 kein Problem, aber das nutzt mir nichts.
>
> Ich könnte jetzt WIN8.1 und den ganzen sonstigen Krempel nochmals neu
> installieren und hoffen, daß das dann doch noch funktionieren könnte,
> aber soviel Zeit habe ich nicht mal als Rentner :-), also entfällt in
> meinem Prog halt das Feature "DesktopIcons".

Das ist ja Quark. Deine Probleme können eigentlich garnicht bestehen.
Irgend etwas machst Du falsch. Würde FindWindowEx bei dir nicht
funktionieren, oder es gäbe kein "SHELLDLL_defVIEW" dann würde dein
ganzes System nicht laufen. Ich würde einfach noch mal alle Api-
Deklarationen prüfen.

> Mein nächster neuer Rechner wird sowieso nicht mehr unter Windows
> laufen, und WINE wird wahrscheinlich noch viel mehr Probleme machen mit
> Windows-DLLs (was mich bisher vom Umstieg auf Linux abgehalten hat,

Ich halte das für eine wirklich gut durchdachte Idee, auf Linux
umzusteigen, wenn man den ganzen Tag mit VB codet. Unter Wine
läuft sicherlich alles viel besser...

> gibt's eigentlich eine WINE-NG?).
Natürlich...


rocksolid / de.comp.lang.vbclassic / Re: Desktop handle

Pages:12
server_pubkey.txt

rocksolid light 0.9.136
clearnet tor