INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

HWND auslesen, funktioniert nicht mit jedem PC



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

18.04.2012, 13:14
Beitrag #1

Mischa E Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2012

2010
2010
DE


Deutschland
HWND auslesen, funktioniert nicht mit jedem PC
Hallo zusammen,

das angehängte Vi. funktioniert nicht auf jedem PC mit LabVIEW 2010 SP1.
Wenn es nicht funktioniert wird eine 0 ausgegeben.

Es wird die User32.dll eingebunden und mit FindWindowA soll der HWND Wert zurückgegeben werden.

Hat einer von euch eine Idee warum, es auf manchen PCs funktioniert und auf manchen nicht?
Ist dies ein bekanntes Windows oder LabVIEW Problem?
Wisst ihr einen Lösungsansatz?

Vielen vielen Dank!

Gruß
Mischa


Angehängte Datei(en)
10.0 .vi  HWND.vi (Größe: 8,01 KB / Downloads: 328)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.04.2012, 13:30
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: HWND auslesen, funktioniert nicht mit jedem PC
Ich tippe mal darauf, dass das ganze unter Windows Vista oder Win 7 nicht funktioniert, wenn die Benutzer-Rechte nicht ausreichen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.04.2012, 14:36
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: HWND auslesen, funktioniert nicht mit jedem PC
Ein weiterer Punkt könnte der Umstand sein dass Du es auf einer 64 Bit Installation versuchst. Dort sind alle Pointer (und auch Windows Handles) 64 Bit, sodass der erste Parameter lpszClassName der mit einer 32Bit Null initialisiert wird, die anderen 32 Bit undefiniert (und sehr wahrscheinlich nicht NULL) hat, sodass Windows versucht diesen String zu interpretieren was dann natürlich fehlschlagen muss. Dazu sollte man sowohl den Returnwert der Funktion als auch diesen ersten Parameter als Pointersized Integer konfigurieren.

Wenn ein NULL Handle zurückkommt ist ein Fehler aufgetreten den man mit GetLastError() abfragen kann. Aber das ist in LabVIEW nicht ganz trivial. Den GetLastError() muss unmittelbar nach der Funktion die den Fehler erzeugt hat im selben Thread aufgerufen werden. Die einzige Möglichkeit um zu garantieren, dass zwei Call Library Nodes im gleichen Thread und ohne dass dazwischen andere Interaktionen von anderen Teilen von LabVIEW aufgerufen werden, ist um die Call Library Nodes auf reentrant zu setzen und das SubVI als Subroutine zu konfigurieren. Dazu muss man aber auch die VI Server Funktionaliteit herausnehmen, denn das ist in einer Subroutine nicht gestattet.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.04.2012, 16:48
Beitrag #4

Mischa E Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2012

2010
2010
DE


Deutschland
RE: HWND auslesen, funktioniert nicht mit jedem PC
Ich habe natürlich vergessen mein Betriebssystem zu nennen. Ich nutze Windows XP SP3 als 32Bit Version
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.04.2012, 17:24
Beitrag #5

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: HWND auslesen, funktioniert nicht mit jedem PC
(18.04.2012 16:48 )Mischa E schrieb:  Ich habe natürlich vergessen mein Betriebssystem zu nennen. Ich nutze Windows XP SP3 als 32Bit Version

Dann versuch es mal hiermit und sage uns was für ein Fehler da auf diesen Maschinen zurückgegeben wird.


10.0 .vi  HWND.vi (Größe: 14,14 KB / Downloads: 309)

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.04.2012, 18:04
Beitrag #6

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: HWND auslesen, funktioniert nicht mit jedem PC
Hallo Rolf,

ich wollte Dein VI gerade auch testen, aber man kann es leider nicht ausführen, erstens da der Run-Button fehlt und er sich auch nicht einblenden lässt (ist in den LabVIEW-Properties ausgegraut Blink) und zweitens auch nicht mit CTRL+R.

Gruß Markus

(18.04.2012 17:24 )rolfk schrieb:  
(18.04.2012 16:48 )Mischa E schrieb:  Ich habe natürlich vergessen mein Betriebssystem zu nennen. Ich nutze Windows XP SP3 als 32Bit Version

Dann versuch es mal hiermit und sage uns was für ein Fehler da auf diesen Maschinen zurückgegeben wird.

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
18.04.2012, 19:38
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: HWND auslesen, funktioniert nicht mit jedem PC
(18.04.2012 18:04 )Y-P schrieb:  ich wollte Dein VI gerade auch testen, aber man kann es leider nicht ausführen, erstens da der Run-Button fehlt und er sich auch nicht einblenden lässt (ist in den LabVIEW-Properties ausgegraut Blink) und zweitens auch nicht mit CTRL+R.
@Markus: Dann geh mal in die "Execution"-Abteilung der VI-Properties.
Das VI steht auf Priority = subroutine, deshalb kein Run-Button.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2012, 06:03 (Dieser Beitrag wurde zuletzt bearbeitet: 19.04.2012 06:04 von rolfk.)
Beitrag #8

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: HWND auslesen, funktioniert nicht mit jedem PC
(18.04.2012 18:04 )Y-P schrieb:  Hallo Rolf,

ich wollte Dein VI gerade auch testen, aber man kann es leider nicht ausführen, erstens da der Run-Button fehlt und er sich auch nicht einblenden lässt (ist in den LabVIEW-Properties ausgegraut Blink) und zweitens auch nicht mit CTRL+R.

Natürlich! Das VI ist als Subroutine gesetzt. Aber, bitte nicht ausschalten! Sonst liest die GetLastError() Funktion irgendwas aber nicht den Error der durch FindWindow() erzeugt wurde. Das habe ich in meinem ersten Post zu erklären versucht.

Was Du machen musst ist ein zweites, normales VI wo Du auch die VI Server Property Node hineinlegen kannst um den Namen dieses VI Windows zu erhalten, diesen an das Subroutine VI übergeben und dann den HWND und den Error Cluster auf das Frontpanel dieses neuen VIs führen.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
19.04.2012, 08:46
Beitrag #9

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
RE: HWND auslesen, funktioniert nicht mit jedem PC
Wall Klar. Danke.

Gruß Markus

(18.04.2012 19:38 )jg schrieb:  @Markus: Dann geh mal in die "Execution"-Abteilung der VI-Properties.
Das VI steht auf Priority = subroutine, deshalb kein Run-Button.

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.04.2012, 10:30 (Dieser Beitrag wurde zuletzt bearbeitet: 23.04.2012 10:31 von Mischa E.)
Beitrag #10

Mischa E Offline
LVF-Neueinsteiger


Beiträge: 8
Registriert seit: Mar 2012

2010
2010
DE


Deutschland
RE: HWND auslesen, funktioniert nicht mit jedem PC
Hallo zusammen,

Vielen Dank für die rege Beteiligung!!

Ich habe die Routine wie im Bild gezeigt eingebunden. Ich erhalte als FehlerCode eine Null zurück.
Das ist glaube ich nicht das gewünschte Ergebnis. Confused

Habe ich die Subroutine falsch eingebunden? Muss ich sonst etwas einstellen?

Vielen Dank!

Gruß
Mischa


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Einbindung DLL funktioniert nicht Schrankwand 1 4.105 10.03.2023 18:50
Letzter Beitrag: GerdW
  GetSnapshot-Funktion funktioniert in While-Schleife nicht richtig labrat 6 7.726 09.02.2012 09:26
Letzter Beitrag: Hook1986
  VI mit .net dll's funktioniert nur als exe, nicht im Entwicklungsmodus markus321 7 7.969 31.01.2012 15:31
Letzter Beitrag: markus321
  WinAPI Aufruf funktioniert nicht unter Win7 Lessy2205 5 8.159 15.11.2011 13:03
Letzter Beitrag: Lessy2205
  HWND von Frontpanel Stefan616 1 5.132 18.08.2010 07:42
Letzter Beitrag: Stefan616
  nach jedem Schleifendurchlauf aktuellen Wert ausgeben christ1806 6 7.227 07.07.2009 17:06
Letzter Beitrag: Lucki

Gehe zu: