Unidades | | | |  Andre Rohland | ¡Hola liebe Comunidad,
Yo bin ya una bastante alter Profano - Dino ( seit Versión 5.5 ). El Desarrollo de Profano Yo a a aktuellen Versión stets aufmerksam y begeistert verfolgt, allerdings siempre sólo en el Background, porque Yo mich veces con Thomas Hölzer gefetzt y me dafür no wirklich Komplimente el damaligen Profanergruppe eingefangen habe... .
En el momento bastle Yo a una Programa, welches erfordert, dass el Systemzeit möglichst genau aktualisiert, o. abgerufen se.
Dafür Yo ya mehrere Lösungsansätze gesehen, allerdings kamen ellos me para Teil como: 1. a kompliziert y 2. a groß antes, besonders si uno sólo el aktuelle Tiempo beötigt.
Gott sei Dank hay siempre todavía Server, el el aktuelle Tiempo y el Datum encima el sogenannte Daytime-Protocol como String zurückgeben. Der Nachteil es sólo, dass dieses Protokoll no eindeutig definiert es, así dass verschiedene Server auch verschiedene Cuerdas zurückgeben... .
Tal vez kann alguien de Euch esta Unit gebrauchen, Yo sería mich darüber freuen. Ver código fuente hay natürlich en Anfrage... .
Viele Grüße André Rohland |
 | | | | |
| |  | | | | | |
| |  Andre Rohland | Pida a los Ver código fuente todavía una wenig kommentiert.
Inettime
$L
Def WSAStart(2) !wsock32.dll,WSAStartup
Def socket(3) !wsock32.dll,socket
Def WSAAsyncSelect(4) !wsock32.dll,WSAAsyncSelect
Def htons(1) !wsock32.dll,htons
Def connect(3) !wsock32.dll,connect
Def gethostbyname(1) !wsock32.dll,gethostbyname
Def recv(4) !wsock32.dll,recv
Def ioctlsocket(3) !wsock32.dll,ioctlsocket
Def closesocket(1) !wsock32.dll,closesocket
Def WSAClean(0) !wsock32.DLL,WSACleanup
Def WSAGetLastError(0) !wsock32.dll,WSAGetLastError
Def RtlMoveMemory(3) !kernel32,RtlMoveMemory
Def InternetGetConnectedState(2) !WININET.DLL,InternetGetConnectedState
Def SetSystemTime(1) !KERNEL32,SetSystemTime
Def SetLocalTime(1) !KERNEL32,SetLocalTime
USERMESSAGES 4100 Message, el auftritt, si una Netzwerkereignis stattfindet (WSAAsyncSelect)
proc ?_getTime
parámetros netadr$,netport&,count&,pointer&,erlaubt&
Winsock - Variables
declarar wsaerror&,Inetadresse#,sockaddr_in#,zwbuf#,avdat&
declarar dummy&,hostent#,xnetport&,xnetorderadr&,wsadata#,mysocket&
dim Inetadresse#,255
dim wsadata#,526
dim sockaddr_in#,16
dim hostent#,$5000
Kontrolle y Steuerung
declarar ende%,ergebnis$,tstring$
Systemzeit etc
declarar wYear%,wMonth%,wDay%,wHour%,wMinute%,wSecond%
ergebnis$ =
Bich Yo (ya) drin ???
ifnot InternetGetConnectedState(0,0)
ergebnis$ = error 1
volver ergebnis$
endif
Winsock.dll inicializar
clear wsadata#
if WSAStart($101,wsadata#)
ergebnis$ = error 2
volver ergebnis$
endif
Streamsocket erzeugen
P1: (AF_INET = 2) Internet Protokoll version 4 (IPv4) Adressfamilie/// P2: (SOCK_STREAM = 1)
lo se una Streamsocket producido voluntad/// P3: 0 - Provider determinado el Protokoll
mysocket&=socket(2,1,0)
if mysocket& = -1
ergebnis$ = error 3
WSAClean()
volver ergebnis$
endif
Nonblocking modus / Usermessage übergeben
if WSAAsyncSelect(mysocket&,%hwnd,4100,$1) <> 0
ergebnis$ = error 4
closesocket(mysocket&)
WSAClean()
volver ergebnis$
endif
clear Inetadresse#
cadena Inetadresse#,0=netadr$
dummy&=gethostbyname(Inetadresse#) liefert Pointer en Hostent - Struktur
if dummy& = 0 Internetadresse podría no gefunden/ aufgelöst voluntad
ergebnis$ = error 5
closesocket(mysocket&)
WSAClean()
volver ergebnis$
endif
clear hostent#
Kopieren el Infos de el hostent - Struktur ( dummy& ) en el propio Bereichsvariable hostent#
RtlMoveMemory(hostent#,dummy&,16)
dummy&=long(hostent#,12)
RtlMoveMemory(hostent#,dummy&,4)
dummy&=long(hostent#,0)
RtlMoveMemory(hostent#,dummy&,255)
xnetorderadr&=long(hostent#,0)
xnetport&=htons(netport&)
Struktur para winsock connect (Protokoll, Port, Adresse ) füllen
word sockaddr_in#,0=2 AF_inet
word sockaddr_in#,2=xnetport&
long sockaddr_in#,4=xnetorderadr&
Streamsocket verbinden...
wsaerror& = connect(mysocket&,sockaddr_in#,16)
if wsaerror& = -1
wsaerror& = WSAGetLastError()
ifnot (wsaerror& = 10035) | (wsaerror& = 0) 0 = kein Fehler, 10035 = WSAWOULDBLOCK, esta
ergebnis$ = error 6 Meldung es wegen el NonBlocking - Modus,
closesocket(mysocket&) es aber para uns unbeachtlich
WSAClean()
volver ergebnis$
endif
endif
El nachfolgende Bucle podría abgeändert voluntad, indem por ejemplo SLEEP count& (= Parámetro P3)
verwendet y el Anzahl el Durchläufe herabgesetzt se
ebenso podría auch el USERMESSAGE 4100 abgefragt voluntad, para el de me beabsichtigten Zweck
genügte esta Variante ( i.d.R. liegt una Ergebnis después de etwa 50 Durchläufen antes ).
if ergebnis$ =
avdat&=0
Whileloop count&
ioctlsocket(mysocket&,$4004667F,addr(avdat&)) $4004667F = FIONREAD - prüft si Daten empfangen
if avdat& > 0 fueron y son el Anzahl en avdat& zurück
dim zwbuf#,avdat&
clear zwbuf#
recv(mysocket&,zwbuf#,avdat&,0) liest el Anzahl el empfangenen Daten (avdat&)
romper en zwbuf# una
endif
endwhile
if avdat& > 0
ergebnis$ = cadena$(zwbuf#,0)
ergebnis$=translate$(ergebnis$,chr$(13)+chr$(10),) Carriage volver / Line Feed entfernen
ifnot pointer&=0 Parámetro 4 el Unit, pointer& es el Adresse
wYear% = val(right$(ergebnis$,4)) uno übergebenen SystemTime - Struktur
RtlMoveMemory(pointer&,addr(wYear%),2) Struktur se gefüllt....
caso instr(JAN,Upper$(ergebnis$)) : wMonth% = 1
caso instr(FEB,Upper$(ergebnis$)) : wMonth% = 2
caso instr(MAR,Upper$(ergebnis$)) : wMonth% = 3
caso instr(APR,Upper$(ergebnis$)) : wMonth% = 4
caso instr(MAY,Upper$(ergebnis$)) : wMonth% = 5
caso instr(JUN,Upper$(ergebnis$)) : wMonth% = 6
caso instr(JUL,Upper$(ergebnis$)) : wMonth% = 7
caso instr(AUG,Upper$(ergebnis$)) : wMonth% = 8
caso instr(SEP,Upper$(ergebnis$)) : wMonth% = 9
caso instr(OCT,Upper$(ergebnis$)) : wMonth% = 10
caso instr(NOV,Upper$(ergebnis$)) : wMonth% = 11
caso instr(DEC,Upper$(ergebnis$)) : wMonth% = 12
RtlMoveMemory(pointer&+2,addr(wmonth%),2)
wDay% = val(substr$(ergebnis$,3,chr$(32)))
RtlMoveMemory(pointer&+6,addr(wDay%),2)
tstring$ = substr$(ergebnis$,4,chr$(32))
wHour% = val(substr$(tstring$,1,:))
RtlMoveMemory(pointer&+8,addr(wHour%),2)
wMinute% = val(substr$(tstring$,2,:))
RtlMoveMemory(pointer&+10,addr(wMinute%),2)
wSecond% = val(substr$(tstring$,3,:))
RtlMoveMemory(pointer&+12,addr(wSecond%),2)
más
erlaubt& = 0 Keine Struktur übergeben, also no Erlaubnis para
endif Setzen el Systemzeit = ignoriere Parámetro 5
más
ergebnis$ = error 7 lo fueron no Daten empfangen
endif
closesocket(mysocket&)
WSAClean()
endif
if erlaubt& Parámetro 5 el Unit: Setzen el Systemzeit erlaubt
SetSystemTime(pointer&)
dummy& = SetLocalTime(pointer&)
casenot dummy& : ergebnis$ = error 8 Fehler beim Setzen el Sistema ( lokalen ) Tiempo
endif
volver ergebnis$
ENDPROC
|
| | | | |
| |  Andre Rohland | Nanüchen...
Unit wurde 10 veces heruntergeladen, kommentierter Ver código fuente wurde a Disposición gestellt.
Wirklich no Bemerkungen, Hinweise o.ä. ? |
| | | | |
| |  RGH | ¡Hola Andre,
gib el Leuten doch ewas Tiempo, se así a befassen. Yo lade oft qué herunter, en entonces sólo muy viel später - manchmal son lo Monate - dazu a kommen, mich así a befassen. Und manches se geladen, kommt aber mangels Gelegenheit nie para Einsatz. Sind sólo no alles Schüler, Studenten oder Rentner con viel Tiempo hier ... 
Saludo Roland (el befürchtet, auch dereinst como Rentner no así viel Tiempo a haben, como gerne hätte y como Student no el nötige Geld hatte, a Tiempo así a nutzen, como lo damals gerne getan hätte) |
| | | Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 04.02.2009 ▲ |
| |
| |  | Yo lehne el Gedanken de, dass Roland jemals Rentner es. 
@Andre: Mit el Tiempo voluntad el sicher dutzende Downloads. Dennoch, wir brauchen una más Schlachtplan, viel viel mehr XProfan a gewinnen.  |
| | | | |
| |  | | | | | |
| |  Andre Rohland | O.k., O.k. Yo kapiert...
Yo quería wirklich no rumningeln y drängeln, Yo hatte mich sólo una wenig gewundert. IF hatte doch en media ersten Post ( Ver código fuente gibts en Anfrage ) prompt con Anfrage! geantwortet y yo hatte nun irgendwie una wenig Bammel, daß tal vez algo no funzt.
@Roland: Toll, Usted otra vez persönlich a lesen. Bitte aber no vom alten Profano - Dino de el ersten Post irreführen dejar, Yo bin ( con viel Glück ) tal vez en 23 Jahren Mitglied Deiner dritten Kategorie (Rentner) . Bis dahin arbeite Todavía como Trainer a Grundschulen con Kindern. En el momento son aquí en Berlin-Brandenburg Schulferien, qué tal vez media augenblicklich übermäßigen Zeitfonds erklärt... .
@IF: Lo ging me wirklich weniger el número el Downloads, como vielmehr por lo tanto, daß el Unit auch correcto funkioniert y brauchbar es. Bezüglich Schlachtplan : Ist una bastante komplexes Thema, a el Yo durchaus interessiert bin. Schlage antes, wir belasten esta Contribución así no, pero hacer entweder una neuen Contribución en, oder unterhalten uns direkt por eMail. Wir könnten así para Ejemplo Vorstellungen austauschen, gemeinsam darüber lachen y en el Ergebnis tal vez doch una gute Strategie encontrar... . |
| | | | |
| |  Andre Rohland | Doch todavía una wichtiger Referencia...
In mi Programa, en welchem Yo el Unit verwende, voluntad todos drei Zeitserver el Uni Braunschweig abgefragt. Im Falles uno Mißerfolgs se el Abfrage todos drei Minuten erneut durchgeführt.
Nach Kompilieren y Linken a ausführbaren *.exe Expediente podría auch después de 20 Minuten todavía no Verbindung a Zeitservern producido voluntad, obwohl en el Interpreter alles tadellos klappte.
El Ursache: Yo verwende Total Care de GDATA (Antivirus + Firewall). Nach el Linken con el Runtime-Modul blockte el Firewall el Verbindung, qué ellos me gemeinerweise natürlich no anzeigte... .
Solltet Ihr also solche Problemas haben überprüft Por favor, zuerst Eure Einstellungen para Euer Antivirusprogramm, o. el Firewall(s).
In mi Falle genügte una einfacher Scan con el Antivirus-Komponente de GDATA Total Care, en mein fertiges Programa como vertrauenswürdig einzustufen, danach klappte otra vez alles beim ersten Intento.
mfG André |
| | | | |
| |  E.T. | Moin, tener dies veces ausgegraben, porque Yo después de genau así algo búsqueda. Bringe aber el Ejemplo irgendwie no para laufen 
Oder alguien 'ne otro Concepto, el Systemzeit por Internet a stellen ??
Hintergrund: Mein Rechner para mi Wetterstation ha una Neustart (o. kurzzeitigem Stromausfall) siempre unsinnige Tiempo-Einstellungen. Wohl el Akku hin, lässt se en 'nem Mini-PC (Orbsmart) auch no así simplemente wechseln). Mit Win-eigenen Mitteln komm Yo no zuverlässig más, el Systemzeit sicher después de el Rechner-Start a stellen: veces klappts, öffters aber auch no.
Como el Software para mi Wetterstation (y Auswertung etc.) eh después de el Start de WIN 8.1 de una XProfan-Programa el Reihe después de comenzó se, war así el Gedanke, doch antes el starten el relevanten Programas igual el Tiempo vorher con irgendeinem Server a syncronisieren. |
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 15.06.2020 ▲ |
| |
| |  Matthias Arlt | Das obige Ejemplo voluntad en me auch no así bastante... Otro Möglichkeit bestünde en Kommandozeile como folgt:
net time /setsntp:ptbtime2.ptb.de w32tm /resync
Der Zeitserver es natürlich variabel (no todos trabajo siempre). Das lässt se entonces en diferente Weise automatisieren. |
| | | WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 15.06.2020 ▲ |
| |
| |  E.T. | Matthias Arlt (15.06.2020)
net time /setsntp:ptbtime2.ptb.de w32tm /resync
Funktioniert auch no, como se. Irgendwie startet mein 8.1 el "Zeitdienst" sólo etliche Tiempo después de el Start / Neustart, el lässt se bajo Dienste auch no ändern (trotz "Start sofort" siempre ni Ewigkeit später). Deshalb funzt esta Variante auch no sicher, y Erfolg oder Misserfolg kann auch no kontrolliert voluntad. |
| | | XProfan X3Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 15.06.2020 ▲ |
| |
|
RespuestaTema opciones | 16.871 Views |
ThemeninformationenDieses Thema ha 6 subscriber: |