XProfan & PHP Version/Update abfragen

[ Nach unten  |  Zum letzten Beitrag  |  Thema abonnieren  |  Neueste Beiträge zuerst ]


Paradox
Administrator

60, Männlich

Beiträge: 23

XProfan & PHP Version/Update abfragen

von Paradox am 26.02.2009 19:41

Folgenden PHP Code auf PHP-fähigen Webspace hochladen und nach version.php benennen.

<?
$ver = $HTTP_GET_VARS[ver];

// hier immer die aktuelle Version eintragen
$version_aktuell = "1.1";

// Versionsvergleich
if($version_aktuell != $ver) {
echo "0";
}
else {
echo "1";
}

?>


Folgender XProfan Code ist von Uwe 'Pascal' Niemeyer (tomcatsoft):

$H Windows.ph

Proc StringToGUID
Parameters GUID$,GUID&
Declare Temp$
Temp$=space$(80)
~MultiByteToWideChar(1,1,addr(GUID$),-1,addr(Temp$),80)
external("ole32","CLSIDFromString",addr(Temp$),GUID&)
EndProc

Proc CallMethod
Parameters IFace&,Method&
Declare VTable&
VTable&=long(IFace&,0)
Method&=long(VTable&,Method&*4)
case %pcount=2:return call( Method&,IFace& )
case %pcount=3:return call( Method&,IFace&,&(3) )
case %pcount=4:return call( Method&,IFace&,&(3),$(4) )
case %pcount=5:return call( Method&,IFace&,&(3),&(4),&(5) )
EndProc

Proc Quelltext_Lesen
Parameters WebCtrl&
Declare IID#,Error&,IUnknown&,IWebBrowser&,Status&,IHTMLDocument2&,IHTMLElement&,Text&
Declare Size&,Text#,Text$
Dim IID#,16
external("ole32","CoInitialize",0)
Error&=external("atl","AtlAxGetControl",WebCtrl&,addr(IUnknown&))
StringToGUID("{D30C1661-CDAF-11d0-8A3E-00C04FC9E26E}",IID#)
Error&=CallMethod(IUnknown&,0,IID#,addr(IWebBrowser&))

While 1
Sleep 300
Error&=CallMethod(IWebBrowser&,31,addr(Status&))
CaseNot Status&:Break
EndWhile

Error&=CallMethod(IWebbrowser&,18,addr(IHTMLDocument2&))
Error&=CallMethod(IHTMLDocument2&,9,addr(IHTMLElement&))
Error&=CallMethod(IHTMLElement&,62,addr(Text&))
Size&=external("oleaut32","SysStringLen",Text&)
Dim Text#,Size&
~WideCharToMultiByte(0,0,Text&,-1,Text#,Size&,0,0)
external("oleaut32","SysFreeString",Text&)
Text$=string$(Text#,0)
CallMethod(IHTMLElement&,2)
CallMethod(IHTMLDocument2&,2)
Dispose Text#
Dispose IID#
external("ole32","CoUninitialize")
Return Text$
EndProc

Def AtlAxWinInit(0) ! "atl.dll","AtlAxWinInit"
Def AtlAxCreateControl(4) ! "atl.dll","AtlAxCreateControl"

Declare Atl&,Web&,a$,version$

Window 200,400-800,030
UserMessages 16

Atl& = Usedll("atl.dll")
AtlAxWinInit()

Version$="1.1"
a$ = "http://paradox.bplaced.net/version.php?ver="+version$'- Pfad oder URL zum PHP Script
'Diese URL kann und darf zum testen verwendet werden.
Web& = control("AtlAxWin",a$,$50300000,0,0,0,0,%hwnd,0,0,$200)'-HTML-Contol anlegen

a$ = Quelltext_Lesen(Web&)
a$ = Translate$(a$,"<BODY>","")
a$ = Translate$(a$,"</BODY>","")

If Right$(a$,1) ="1"
SetText %hwnd,"Software aktuell"
Else
SetText %hwnd,"Bitte Software aktualisieren"
EndIf

While 1
Waitinput
Case %umessage=16:Break
EndWhile

DestroyWindow(Web&)
Freedll Atl&


Das XProfan Programm sendet die Anfrage zum PHP Script. Dort werden die Versionen verglichen.
Es wird eine "0" für eine nicht aktuelle Version und eine "1" für eine aktuelle Version zurückgeliefert.
Das Ergebnis wird von den Proceduren ausgelesen und im weiteren Programmverlauf darauf reagiert.
In diesem Beispiel mit SetText %hwnd.
Schade finde ich das man das XProfan eigene @Create("HTMLWin" nicht so einfach auslesen kann.

Gruß

Antworten

« zurück zum Forum