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