Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 240845 (2281)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Scandisk, Defragmentieren
Frank Kirchler
| Datum:24.09.02 23:24 (compy@onlinehome.de) |
vProfan 5.0 möchte diese beiden tools unter windows98 & xp aufrufen. unter 98 gehts mit Defrag.EXE,Scandskw.EXE aber unter xp funktioniert das nicht wie kann ich in beiden "os" diese funktionen nutzen??
Martin Pohl
| Datum:25.09.02 06:27 (martin_pohl@msn.com) |
1. Unter XP gibt es Scandisk auch nicht. Dort heißt es CheckDisk (chkdsk.exe - oder so ähnlich) 2. Zum Defragmentieren gibt es die Datei (unter XP): dfrg.msc
Frank Kirchler
| Datum:25.09.02 12:48 (compy@onlinehome.de) |
also, geht das scheinbar nicht - danke -/ aber wenn einer noch eine idee dazu hat würde ich mich drüber freuen danke
Stefan M. Caillet
| Datum:25.09.02 13:19 (desitron_5@bluewin.ch) |
Idee: Windows Version prüfen (W9x od XP). Name der beiden tools jeweils als String festlegen (einmal für Win 9x und einmal für Win XP), dann entsprechend Win-Version die jeweligen Strings an den Aufruf übergeben. Weiss im Moment leider nicht mehr wie die Funktion zur Windows-Versions-Abfrage in PROFAN heisst. Vieleicht hilft Dir dies weiter!??
Frank Kirchler
| Datum:25.09.02 14:40 (compy@onlinehome.de) |
das hört sich gut an aber leider bin ich auch erst seit kurtzen dabei und habe keine idee wie man sowas macht könnte einer mal so ein demo script für defgagmentieren hier zeigen?? danke euch schon mal mfg
Jörg Sellmeyer
| Datum:25.09.02 14:55 (joerse@gmx.de) |
Hallo Frank, Das Ganze ist weniger ein Programmierproblem als ein OS-Problem. Unter Win9X heißt Dein Aufruf: Shell "Defrag.exe C:\" und die Defragmentierung startet kommentarlos. Es gibt noch ein paar Parameter, die das Beenden automatisieren, aber die hab' ich im Moment nicht parat. Unter XP benutzt MS ein anderes Programm. Das mußt Du erst mal herausfinden und dann sehen ob Du es auch mit Parametern starten kannst. Gruß Jör
Frank Kirchler
| Datum:25.09.02 15:31 (compy@onlinehome.de) |
hatt den einer ne idee wie man *.mrc dateien unter xp aufruft?? und wie das mit dem beispiel von "Stefan M. Caillet" funktioniert ?? danke mfg profan 5.0
Alexander Schoenfeld
| Datum:25.09.02 16:57 (alexander.schoenfeld@chronologic.de) |
Hallo Frank, du meinst sicher .msc dateien, oder? wenn ja kannst du sie mit folgendem Aufruf starten:
    mmc %windir%\System32\dfrg.msc
-- Mit freundlichem Gruss / kind regards, Alexander Schoenfeld Email: alexander.schoenfeld@chronologic.de
Frank Kirchler
| Datum:25.09.02 18:58 (compy@onlinehome.de) |
hi Alexander ja, meinte "dfrg.msc" sorry, jau prima funktioniert !! wie mach ich das jetzt mit der abfrage des os?? (beschreibung von Stefan M. Caillet)
Stefan Schnell
| Datum:25.09.02 22:05 (mail@stschnell.de) |
Hallo Frank, versuchs mal mit der Variable $WinVer, die liefert die Windows Version zurück. Tschüss Stefan
Frank Kirchler
| Datum:25.09.02 23:02 (compy@onlinehome.de) |
kann mir das einer mal genauer beschreiben wie das geht?? profan 5.0
Alexander Schoenfeld
| Datum:26.09.02 10:36 (alexander.schoenfeld@chronologic.de) |
Hallo Frank, hier ein kleines Beispiel, wie man die einzelnen Windowsversionen unterscheiden kann. Leider weiss ich nicht, ob das Beispiel auch unter Profan 5 funktioniert, da ich selbst 7.5 verwende. Wenn du noch Probleme/Fragen hast, meld dich einfach nochmal :)
     Declare VER_PLATFORM_WIN32s&
     Let VER_PLATFORM_WIN32s& = 0
     Declare VER_PLATFORM_WIN32_WINDOWS&
     Let VER_PLATFORM_WIN32_WINDOWS& = 1
     Declare VER_PLATFORM_WIN32_NT&
     Let VER_PLATFORM_WIN32_NT& = 2

     Declare OSVERSIONINFO#
     Dim OSVERSIONINFO#, 148
     Long OSVERSIONINFO#, 0 = 148

     Def @GetVersionEx(1) !"KERNEL32.DLL", "GetVersionExA"
     GetVersionEx(OSVERSIONINFO#)
     Cls

     Declare Version$, PlatformId&, MajorVersion&, MinorVersion&
     Let PlatformId&   = Long(OSVERSIONINFO#, 16)
     Let MajorVersion& = Long(OSVERSIONINFO#, 4)
     Let MinorVersion& = Long(OSVERSIONINFO#, 8)

     If PlatformId& = VER_PLATFORM_WIN32s&
       Let Version$ = "Win3.11"

     ElseIf PlatformId& = VER_PLATFORM_WIN32_WINDOWS&

       If MinorVersion& = 0
         Let Version$ = "Windows 95"

       ElseIf MinorVersion& = 10
         Let Version$ = "Windows 98"

       ElseIf MinorVersion& = 90
         Let Version$ = "Windows ME"

       Else
         Let Version$ = "unbekannt"

       EndIf

     ElseIf PlatformId& = VER_PLATFORM_WIN32_NT&

       If MajorVersion& = 3
         Let Version$ = "Windows NT 3.51"

       ElseIf MajorVersion& = 4
         Let Version$ = "Windows NT 4.0"

       ElseIf MajorVersion& = 5
         If MinorVersion& = 0
           Let Version$ = "Windows 2000"

         ElseIf MinorVersion& = 1
           Let Version$ = "Windows XP"

         ElseIf MinorVersion& = 2
           Let Version$ = "Windows .NET Server"

         EndIf

       Else
         Let Version$ = "unbekannt"

       EndIf

     Else
       Let Version$ = "unbekannt"

     EndIf

     Declare OSInfo$
     OSInfo$ = "Platform: " + Version$+"\n" + \
               "Version: "  + Str$(MajorVersion&)+"."+Str$(MinorVersion&)+"\n" + \
               "Build: "    + Str$(Word(OSVERSIONINFO# ,12))+"."+Str$(Word(OSVERSIONINFO# ,14))+"\n" + \
               "Weiteres: " + String$(OSVERSIONINFO#,20)
     MessageBox(OSInfo$, "Versionsinfo", 64)

     Dispose OSVERSIONINFO#
     End
-- Mit freundlichem Gruss / kind regards, Alexander Schoenfeld Email: alexander.schoenfeld@chronologic.de
Frank Kirchler
| Datum:26.09.02 12:48 (compy@onlinehome.de) |
leider geht funzt er nicht unter Profan 5.0 ,aber trotzdem danke mfg
Alexander Schoenfeld
| Datum:26.09.02 14:04 (alexander.schoenfeld@chronologic.de) |
Sorry, hatte vergessen das es da die Operatoren noch nicht gibt, hier eine Version, die funktioniert ( hab mir extra Profan 5.0 gezogen ;) )
     Declare VER_PLATFORM_WIN32s&
     Let VER_PLATFORM_WIN32s& = 0
     Declare VER_PLATFORM_WIN32_WINDOWS&
     Let VER_PLATFORM_WIN32_WINDOWS& = 1
     Declare VER_PLATFORM_WIN32_NT&
     Let VER_PLATFORM_WIN32_NT& = 2

     Declare OSVERSIONINFO#
     Dim OSVERSIONINFO#, 148
     Long OSVERSIONINFO#, 0 = 148

     Def @GetVersionEx(1) !"KERNEL32.DLL", "GetVersionExA"
     GetVersionEx(OSVERSIONINFO#)
     Cls

     Declare Version$, PlatformId&, MajorVersion&, MinorVersion&
     Let PlatformId&   = Long(OSVERSIONINFO#, 16)
     Let MajorVersion& = Long(OSVERSIONINFO#, 4)
     Let MinorVersion& = Long(OSVERSIONINFO#, 8)

     If Equ(PlatformId&, VER_PLATFORM_WIN32s&)
       Let Version$ = "Win3.11"

     ElseIf Equ(PlatformId&, VER_PLATFORM_WIN32_WINDOWS&)

       If Equ(MinorVersion&, 0)
         Let Version$ = "Windows 95"

       ElseIf Equ(MinorVersion&, 10)
         Let Version$ = "Windows 98"

       ElseIf Equ(MinorVersion&, 90)
         Let Version$ = "Windows ME"

       Else
         Let Version$ = "unbekannt"

       EndIf

     ElseIf Equ(PlatformId&, VER_PLATFORM_WIN32_NT&)

       If Equ(MajorVersion&, 3)
         Let Version$ = "Windows NT 3.51"

       ElseIf Equ(MajorVersion&, 4)
         Let Version$ = "Windows NT 4.0"

       ElseIf Equ(MajorVersion&, 5)
         If Equ(MinorVersion&, 0)
           Let Version$ = "Windows 2000"

         ElseIf Equ(MinorVersion&, 1)
           Let Version$ = "Windows XP"

         ElseIf Equ(MinorVersion&, 2)
           Let Version$ = "Windows .NET Server"

         EndIf

       Else
         Let Version$ = "unbekannt"

       EndIf

     Else
       Let Version$ = "unbekannt"

     EndIf

     Print "Platform: "; Version$
     Print "Version : "; Str$(MajorVersion&);".";Str$(MinorVersion&)
     Print "Build   : "; Str$(Word(OSVERSIONINFO# ,12));".";Str$(Word(OSVERSIONINFO# ,14))
     Print "Weiteres: "; String$(OSVERSIONINFO#,20)
     Waitkey

     Dispose OSVERSIONINFO#
     End
-- Mit freundlichem Gruss / kind regards, Alexander Schoenfeld Email: alexander.schoenfeld@chronologic.de
Frank Kirchler
| Datum:26.09.02 15:38 (compy@onlinehome.de) |
oh, klasse das du dir so viel mühe machst und der geht *freu könntest du mir jetzt noch helfen den code einzubinden ?? das währe echt supi von dir !! um unter win98 Defrag. zu starten gehtdieser code: @WinExec("Defrag.EXE",1) unter win xp geht dieser : shell "mmc %windir%\System32\dfrg.msc" wie müssen diese befehle eingebunden werden das sie im richtigen os (also bei xp :shell "mmc %windir%\System32\dfrg.msc" / und bei w98 @WinExec("Defrag.EXE",1) funktionieren und nochmals ein dickes danke !!
Sven Schmidts
| Datum:26.09.02 16:12 (schmidts@flat2serv.de) |
Bitte nicht vergessen: Viele User nutzen unter Windows 2000 nicht die Windows-eigene Software, sondern OODefrag: C:\WINNT\system32\mmc.exe "C:\Programme\OOSoftware\OODefrag\OOD2KNET.MSC" /s Mfg. Sven Schmidts
Frank Kirchler
| Datum: 28.09.02 21:18 (compy@onlinehome.de) |
könnte mir hier bei einer helfen?? bekomme das leider nicht hin das er funktioniert mfg Profan 5.0

| Zurück zur Übersicht