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 

WinAPI Aufruf funktioniert nicht unter Win7



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!

02.11.2011, 17:02
Beitrag #1

Lessy2205 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2010

2011
2011
DE



WinAPI Aufruf funktioniert nicht unter Win7
Liebe Profis in der Labview-Programmierumgebung,

ich brauche dringend eure Hilfe!!!

Ich habe ein VI, das stellt bei Programmstart die RechnerZeit auf die aktuelle GPS-Zeit ein. Das ging ohne Probleme unter Win XP, aber es funktioniert unter Win7 nicht mehr (Last error 1314). Dort wird eine WIN API-Funktion aus Kernel32-DLL aufgerufen, die unter Win7 aus Sicherheitsgründen geblockt wird.
Wie soll ich weiter gehen?
Wo bzw. welche Einstellungen im System soll ich ändern, um die Funktion (WIN API aus DLL-Datei) unter Windows 7 in Labview aufzurufen???
Das Blockdiagramm im Anhang. Es funktionierte unter XP fehlerfrei!


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
02.11.2011, 18:36
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Schnittstellen RS 232 abfragen
Hallo Lessy,

dass das VI unter XP fehlerfrei läuft, glauben wir dir gerne...
Das MS seit WinVista mächtig an den User-Rechten geschraubt hat, sollte dir aber auch bewußt sein. Also solltest du dich mit Themen wie UAC, Admin-Rechten etc. beschäftigen und die MSDN-Doku dazu durchlesen. Ist schließlich ein MS-Thema!

Manchmal hilft es auch, im Forum zu stöbern...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.11.2011, 08:40
Beitrag #3

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: WinAPI Aufruf funktioniert nicht unter Win7
(02.11.2011 17:02 )Lessy schrieb:  Liebe Profis in der Labview-Programmierumgebung,

ich brauche dringend eure Hilfe!!!

Ich habe ein VI, das stellt bei Programmstart die RechnerZeit auf die aktuelle GPS-Zeit ein. Das ging ohne Probleme unter Win XP, aber es funktioniert unter Win7 nicht mehr (Last error 1314). Dort wird eine WIN API-Funktion aus Kernel32-DLL aufgerufen, die unter Win7 aus Sicherheitsgründen geblockt wird.
Wie soll ich weiter gehen?
Wo bzw. welche Einstellungen im System soll ich ändern, um die Funktion (WIN API aus DLL-Datei) unter Windows 7 in Labview aufzurufen???
Das Blockdiagramm im Anhang. Es funktionierte unter XP fehlerfrei!

Also wenn die Call Library Node in Deinem Diagram direct der Kernelaufruf ist, dann hat das unter XP wahrscheinlich nur funktioniert weil Du als Administrator angelogt warst! Pfui!!!!

Die Veränderung der Systemzeit ist seit Windows NT4 eine priviligierte Aktion, die man nur machen darf wenn der aktuelle Prozess sich explizit die entsprechenden Rechte kurzfristig von Windows erteilen lässt. Windows bestimmt dann ob der Prozess überhaupt dazu berechtigt ist, erteilt das entsprechende Privileg, das der Prozess dann gefälligst schnellstmöglich wieder zurückgibt.

Vor Vista waren einige priviligierte Aktionen scheinbar implizit erlaubt für Administratoren, seit Vista ist das alles viel strikter. So darf auch ein Administrator nicht mehr einfach eine Applikation installieren, ohne sich zuvor noch einmal explizit authentifiziert zu haben.

Um das entsprechende Privileg zu erhalten muss man eine Anzahl weiterer Kernelfunktionen aufrufen, um SE_SYSTEMTIME_NAME zu enablen. Das wird auf LabVIEW Diagramniveau schnell sehr komplex und unübersichtlich, so dass hier eigentlich eine externe DLL angesagt wäre.

Und ein Knowledgebasearticle mit einer anderen möglichen Lösung.

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
04.11.2011, 09:14 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2011 09:16 von Lessy2205.)
Beitrag #4

Lessy2205 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2010

2011
2011
DE



RE: Schnittstellen RS 232 abfragen
(02.11.2011 18:36 )GerdW schrieb:  Also solltest du dich mit Themen wie UAC, Admin-Rechten etc....
Ist schließlich ein MS-Thema!

Danke GerdW für den Tipp,
mit UAC und Admin-Rechten funktioniert echt gut!
Einpaar Internetlinks von mir, die anderen bei der Freischaltung des DLL-Zugriffs unter Win 7 helfen könnten:

http://www.computerbase.de/forum/showpos...stcount=22

http://www.computerbase.de/forum/showpos...stcount=43

Der Zugang zur dll-Dateien von Win 7 habe ich freigeschaltet!

Aber das Problem wurde nicht ganz erledigt, beim Massenkompilierung tritt folgender Fehler auf (ich weiß nicht, ob das zu dem Beitrag gehört Blush):

DLL wurde unter "C:\Windows\System32\kernel32.dll" erwartet, aber von "kernel32.dll" geladen.

das VI findet diese DLL-Datei wieder nicht. Die Datei kann nicht richtig geladen werden((
Woran liegt das Problem? (Im Internet habe ich wenig gefunden). Wie kann ich den Fehler beheben??
Für eure Hilfe bedanke ich mich sehr!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.11.2011, 12:10
Beitrag #5

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
RE: Schnittstellen RS 232 abfragen
(04.11.2011 09:14 )Lessy schrieb:  Aber das Problem wurde nicht ganz erledigt, beim Massenkompilierung tritt folgender Fehler auf (ich weiß nicht, ob das zu dem Beitrag gehört Blush):

DLL wurde unter "C:\Windows\System32\kernel32.dll" erwartet, aber von "kernel32.dll" geladen.

das VI findet diese DLL-Datei wieder nicht. Die Datei kann nicht richtig geladen werden((
Woran liegt das Problem? (Im Internet habe ich wenig gefunden). Wie kann ich den Fehler beheben??
Für eure Hilfe bedanke ich mich sehr!

Gehe in die Call Library Node Configuration und entferne beim Library Namen alles ausser dem DLL Namen selber. Also keinen Pfad mehr. Abschliessen, speichern, et voila!

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
15.11.2011, 13:03
Beitrag #6

Lessy2205 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 65
Registriert seit: Oct 2010

2011
2011
DE



RE: WinAPI Aufruf funktioniert nicht unter Win7
Danke Rolf,

es funktioniert!!!

Grüß

Lessy
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Einbindung DLL funktioniert nicht Schrankwand 1 4.111 10.03.2023 18:50
Letzter Beitrag: GerdW
  WinAPI CreateProcess am Bsp. cmd.exe Frank M-F 4 7.635 07.10.2013 21:20
Letzter Beitrag: rolfk
  HWND auslesen, funktioniert nicht mit jedem PC Mischa E 10 12.926 23.04.2012 13:31
Letzter Beitrag: rolfk
  GetSnapshot-Funktion funktioniert in While-Schleife nicht richtig labrat 6 7.757 09.02.2012 09:26
Letzter Beitrag: Hook1986
  VI mit .net dll's funktioniert nur als exe, nicht im Entwicklungsmodus markus321 7 7.978 31.01.2012 15:31
Letzter Beitrag: markus321
  Paralleles Abarbeiten während einer WinAPI-Funktion Almi 2 4.407 02.12.2009 08:47
Letzter Beitrag: Almi

Gehe zu: