Deutsch
Forum

Updatechecker

 
- Seite 1 -



Gary12345
Servus,
KompilierenMarkierenSeparieren
Window %MaxX*0.1,%Maxy*0.1-%MaxX*0.3,%MaxX*0.3
WindowTitle "Updatechecker"
WindowStyle 31
declare Ende&,Diskgröße!

Proc DiskGröße

    Parameters Laufwerkbuchstabe$'String
    set("decimals",2)
    Diskgröße!=DiskSize(Laufwerkbuchstabe$)/(1024*1024*1024) + " GB"
    ROUND(Diskgröße!,3)

    If Diskgröße!=0

        print %Error
        MESSAGEBOX("Laufwerk nicht vorhanden oder nicht lesbar!","Error X0001",0)

    Else

        Return Diskgröße!

    EndIf

EndProc

'#################################
'APPENDMENU
PopUp "&Programm"
AppendMenu 101, "Updatestatus ermitteln"
AppendMenu 102, "Festplattenstatus ermitteln"
AppendMenu 103, "AutoStartLister"
AppendMenu 104, "Aktuelle Updates"
PopUp "&Sonstiges"
SubPopUp "Sonstiges"
AppendMenu 105, "Über den Autor"
AppendMenu 106, "Über das Programm"
AppendMenu 107, "Spende"
EndSub
AppendMenu 108, "Beenden"
'################################
print %Error
DiskGröße("C:")
print %Error

Whilenot Ende&=1

EndWhile


Was geht da schief? Blöde Frage, aber ich weiß nicht weiter. Könnte evtl. ein Sammelthread werden, da dies ein größeres Projekt ist.

Danke!
 
XProfan X2
MfG
Gary12345
18.02.2013  
 



 
- Seite 2 -



Gary12345
Das bedeutet, dass es auf 64bit Systeme mit max. 4GB läuft oder nur auf 32bit systeme? Bin dem Englischen mit meinen 15 nicht übermächtig, bwohl ich komischerweise eine englische Ausbildung habe xD

Win XP 32bit mit 2GB Ram geht auch nicht.
 
MfG
Gary12345
18.02.2013  
 




Julian
Schmidt
hmmm...sind hier doch noch ein paar in meiner Alterklasse unterwegs. Bin 16. :O :O
Müsste sowohl auf 64Bit-Systemen mit weniger bzw. gleich 4 GB RAM oder 32Bit-Systemen funzen, solange die Quelle stimmt ^^
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
18.02.2013  
 




Gary12345
32bit funzt nicht. 64bit habe ich keinen Testpc da,da mein PC mehr als 4GB Ram hat . Das Komische ist ja, dass ich einer der wenigen bin, der sich nur für Malware interessiert und da auch eine Ausbildung macht.(Und auch nur gegen Malware Tools schreiben will - 0 Interesse für Spiele - ok sometimes zocke ich mal FIfa, aber nicht oft) Wenn Du Probleme hast, kannste Dich immer melden . Nun aber zurück zum Ernst der Sache, wat geht da schief?
 
MfG
Gary12345
18.02.2013  
 




Julian
Schmidt
Habs mal schnell in ner VM probiert. WinXP x86 mit 3300MB Ram.



Auf meinen Rechner mit Win8 x64 mit 16GB Ram kommen auch nur 0MB.

36 kB
Hochgeladen:18.02.2013
Ladeanzahl189
Herunterladen
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
18.02.2013  
 




Gary12345
Unsichere API. Gibt es da eine sichere Lösung?

Paar Tips von Bekannten bekommen:
64 bit = GlobalMemoryStatusEx
32bit = ?
 
MfG
Gary12345
18.02.2013  
 




Julian
Schmidt
Steht in den oben geposteten Link in PseudoCode


if comp64 then begin
GlobalMemoryStatusex
....
end
else begin
GlobalMemoryStatus
....
end;
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
18.02.2013  
 




Gary12345
Alles viel zu kompliziert. Werde es mal vorübergehen so belassen.
 
XProfan X2
MfG
Gary12345
18.02.2013  
 




Andreas
Miethe


Wenn ich mich mal einmischen darf.

Der Fehler beim Aufruf von GlobalMemoryStatus oder GlobalMemoryStatusEx liegt in der Strukturgrösse. Hier werden teilweise 64Bit-Integer erwartet. Die Strukturgrösse stimmt also nicht überberein. Hier mal ein altes Bespiel, das zeigt wie es richtig geht, egal wieviel Arbeitsspeicher installiert ist, 32-Bit oder 64-Bit Betriebssystem.
KompilierenMarkierenSeparieren
Struct MEMORYSTATUSEX = \
dwLength&,\
dwMemoryLoad&,\
ullTotalPhysLow&,\
ullTotalPhysHi&,\
ullAvailPhysLow&,\
ullAvailPhysHi&,\
ullTotalPageFileLow&,\
ullTotalPageFileHi&,\
ullAvailPageFileLow&,\
ullAvailPageFileHi&,\
ullTotalVirtualLow&,\
ullTotalVirtualHi&,\
ullAvailVirtualLow&,\
ullAvailVirtualHi&,\
ullAvailExtendedVirtualLow&,\
ullAvailExtendedVirtualHi&
Var Memory# = New(MEMORYSTATUSEX)
Memory#.dwLength& = SizeOf(Memory#)
External("Kernel32.dll","GlobalMemoryStatusEx",Memory#)
Var TotalMem! = 0
Var AvailMem! = 0
Var PagefileMem! = 0
Var APagefileMem! = 0
cls
Totalmem! = Memory#.ullTotalPhysLow&
case Memory#.ullTotalPhysLow& < 0: TotalMem! =  Memory#.ullTotalPhysLow& + (2^32)
TotalMem! = (Memory#.ullTotalPhysHi& * (2^32)) + TotalMem!
Availmem! = Memory#.ullAvailPhysLow&
case Memory#.ullAvailPhysLow& < 0: AvailMem! =  Memory#.ullAvailPhysLow& + (2^32)
AvailMem! = (Memory#.ullAvailPhysHi& * (2^32)) + AvailMem!
PagefileMem! = Memory#.ullTotalPageFileLow&
case Memory#.ullTotalPageFileLow& < 0: PageFileMem! =  Memory#.ullTotalPageFileLow& + (2^32)
PageFileMem! = (Memory#.ullTotalPageFileHi& * (2^32)) + PageFileMem!
APagefileMem! = Memory#.ullAvailPageFileLow&
case Memory#.ullAvailPageFileLow& < 0: APageFileMem! =  Memory#.ullAvailPageFileLow& + (2^32)
APageFileMem! = (Memory#.ullAvailPageFileHi& * (2^32)) + APageFileMem!
Print Format$("#####.00 MB total zur Verfügung stehender Arbeitsspeicher",(TotalMem!) / 1024^2)
Print Format$("#####.00 MB momentan zur Verfügung stehender Arbeitsspeicher",(AvailMem!) / 1024^2)
Print Format$("#####.00 MB benutzter Arbeitsspeicher",(TotalMem!-AvailMem!) / 1024^2)
Print Format$("#####.00 MB Auslagerungsdatei total",PageFileMem! / 1024^2)
Print Format$("#####.00 MB Auslagerungsdatei frei",APageFileMem! / 1024^2)
Print Format$("#####.00 MB Auslagerungsdatei benutzt",(PageFileMem!-APageFileMem!) / 1024^2)
Print Format$("##### % benutzter Speicher",(Memory#.dwMemoryLoad&))
Waitinput
end
 
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
18.02.2013  
 



 
- Seite 3 -



Gary12345
Vielen Dank!
 
XProfan X2
MfG
Gary12345
18.02.2013  
 




Gary12345

KompilierenMarkierenSeparieren
Window %MaxX*0.1,%Maxy*0.1-%MaxX*0.3,%MaxX*0.3
WindowTitle "Updatechecker"
WindowStyle 31
declare Ende&,Diskgröße&,Memstat#,IEVers$,Skype$,FireFox$,FlashPlayer$, Opera$,OperaVersion$,Chrome$,ChromeVersion$,datei1$

Proc DiskGroeße

    Parameters Laufwerkbuchstabe$'String
    set("decimals",2)
    Diskgröße&=DiskSize(Laufwerkbuchstabe$)/(1024*1024*1024)

    If Diskgröße&=0

        MESSAGEBOX("Laufwerk nicht vorhanden oder nicht lesbar!","Error X0001",0)'Error X0001= Laufwerk nicht vorhanden oder nicht lesbar!

    Else

        Return ROUND(Diskgröße&,3)

    EndIf

EndProc

Proc MemoryStatus

    Struct MEMORYSTATUSEX = \
    dwLength&,\
    dwMemoryLoad&,\
    ullTotalPhysLow&,\
    ullTotalPhysHi&,\
    ullAvailPhysLow&,\
    ullAvailPhysHi&,\
    ullTotalPageFileLow&,\
    ullTotalPageFileHi&,\
    ullAvailPageFileLow&,\
    ullAvailPageFileHi&,\
    ullTotalVirtualLow&,\
    ullTotalVirtualHi&,\
    ullAvailVirtualLow&,\
    ullAvailVirtualHi&,\
    ullAvailExtendedVirtualLow&,\
    ullAvailExtendedVirtualHi&
    Var Memory# = New(MEMORYSTATUSEX)
    Memory#.dwLength& = SizeOf(Memory#)
    External("Kernel32.dll","GlobalMemoryStatusEx",Memory#)
    Var TotalMem! = 0
    Var AvailMem! = 0
    Var PagefileMem! = 0
    Var APagefileMem! = 0
    cls
    Totalmem! = Memory#.ullTotalPhysLow&
    case Memory#.ullTotalPhysLow& < 0: TotalMem! =  Memory#.ullTotalPhysLow& + (2^32)
    TotalMem! = (Memory#.ullTotalPhysHi& * (2^32)) + TotalMem!
    Availmem! = Memory#.ullAvailPhysLow&
    case Memory#.ullAvailPhysLow& < 0: AvailMem! =  Memory#.ullAvailPhysLow& + (2^32)
    AvailMem! = (Memory#.ullAvailPhysHi& * (2^32)) + AvailMem!
    PagefileMem! = Memory#.ullTotalPageFileLow&
    case Memory#.ullTotalPageFileLow& < 0: PageFileMem! =  Memory#.ullTotalPageFileLow& + (2^32)
    PageFileMem! = (Memory#.ullTotalPageFileHi& * (2^32)) + PageFileMem!
    APagefileMem! = Memory#.ullAvailPageFileLow&
    case Memory#.ullAvailPageFileLow& < 0: APageFileMem! =  Memory#.ullAvailPageFileLow& + (2^32)
    APageFileMem! = (Memory#.ullAvailPageFileHi& * (2^32)) + APageFileMem!
    Print Format$("#####0.# MB total zur Verfügung stehender Arbeitsspeicher",(TotalMem!) / 1024^2)
    Print Format$("#####0.# MB momentan zur Verfügung stehender Arbeitsspeicher",(AvailMem!) / 1024^2)
    Print Format$("#####0.# MB benutzter Arbeitsspeicher",(TotalMem!-AvailMem!) / 1024^2)
    Print Format$("#####0.# MB Auslagerungsdatei total",PageFileMem! / 1024^2)
    Print Format$("#####0.# MB Auslagerungsdatei frei",APageFileMem! / 1024^2)
    Print Format$("#####0.# MB Auslagerungsdatei benutzt",(PageFileMem!-APageFileMem!) / 1024^2)
    Print Format$("#####0 % benutzter Speicher",(Memory#.dwMemoryLoad&))

EndProc

'###################################################
'Updatestatus ermitteln
Set("Errorlevel", -1)
IEVers$ = ReadINI$("HKEY_2","SOFTWARE\Microsoft\Internet Explorer","Version")
Skype$ = ReadINI$("HKEY_1","Software\Skype\Phone\UI","StatsSentVersion")
FireFox$ = ReadINI$("HKEY_2","Software\Mozilla\Mozilla Firefox", "CurrentVersion")
FlashPlayer$ = ReadIni$("HKEY_2","SOFTWARE\Macromedia\FlashPlayer","CurrentVersion")
Opera$ = ReadINI$("HKEY_1","Software\Opera Software","Last Install Path") + "opera.exe"
OperaVersion$ = Resource.HoleResourceInfo(Opera$, "ProductVersion")
Chrome$ = ReadIni$("HKEY_1","SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome","InstallLocation") + "\Chrome.exe"
ChromeVersion$ = Resource.HoleResourceInfo(Chrome$, "ProductVersion")
Set("Errorlevel", 0)
datei1$=$TempDir + "Updatestatus.txt"
'#################################
'APPENDMENU
PopUp "&Programm"
AppendMenu 101, "Updatestatus ermitteln"
AppendMenu 102, "Festplattenstatus ermitteln"
AppendMenu 103, "AutoStartLister"
AppendMenu 104, "Aktuelle Updates"
PopUp "&Sonstiges"
SubPopUp "Sonstiges"
AppendMenu 105, "Über den Autor"
AppendMenu 106, "Über das Programm"
AppendMenu 107, "Spende"
EndSub
AppendMenu 108, "Beenden"
'################################
'################################
'Erstellung des Fensters
CLS rgb(150,250,350)
var button1&=CREATE("Button",%HWND,"Updatestatus ermitteln",110,10,190,50):CREATE("Tooltip",%HWND,button1&,"Ermittelt den zurzeitigen Updatestatus")
var button2&=CREATE("Button",%HWND,"Festplattenstatus ermitteln",110,80,190,50):CREATE("Tooltip",%HWND,button2&,"Ermittelt den aktuellen Festplatten- und Arbeitsspeicherstatus")
var button3&=CREATE("Button",%HWND,"AutoStartLister",110,150,190,50):CREATE("Tooltip",%HWND,button3&,"Listet alle vorhandenen Autostarts auf")
var button4&=CREATE("Button",%HWND,"Aktuelle Updates",110,220,190,50):CREATE("Tooltip",%HWND,button4&,"Zeigt Dir die aktuellen Updates")
var button5&=CREATE("Button",%HWND,"Schließen",110,290,190,50):CREATE("Tooltip",%HWND,button5&,"Beendet das Programm")
Memorystatus

Whilenot Ende&=1

    WaitInput

    If clicked(button1&)

        If FileExists(datei1$)

            Assign #1, datei1$
            Rewrite #1
            Print #1, "Test"
            Close #1
            ShellExec(datei1$,"open",1)

        Else

            print %Error
            MESSAGEBOX("Datei nicht vorhanden oder beschädigt!","Error X0002",0)
            Ende&=1

        EndIf

    EndIf

    If clicked(button5&) OR MenuItem(108)

        MESSAGEBOX("Das Programm wird jetzt beendet","INFO",0)
        Ende&=1

    EndIf

EndWhile


So - kommt bei euch auch Fehlermeldung wenn ihr button1& anklicken wollt? Wenn ja, warum? Ich glaub mein Hirn arbeitet zu dieser Zeit nit mehr so wie es sollte
 
MfG
Gary12345
18.02.2013  
 




E.T.

...Wenn ja, warum?...


... na weil du es so programmiert hast
 
XProfan X2
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...
18.02.2013  
 




Gary12345
Fehler schon längst gefunden. Bin jetzt viel weiter. Jetzt kommt der schwierigste Part.
 
XProfan X2
MfG
Gary12345
19.02.2013  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

20.244 Betrachtungen

Unbenanntvor 0 min.
Gast.081516.07.2024
Peter Max Müller13.11.2017
Claus de Lieth18.10.2017
Herby15.08.2017
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie