Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 241735 (3171)
  Suchen
 Zurück zur Übersicht
 AutorThema: Scandisk, Defragmentieren
Frank Kirchler
Datum:24.09.02 23:24 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (compy@onlinehome.de) 


kann mir das einer mal genauer beschreiben wie das geht??

profan 5.0


Alexander Schoenfeld
Datum:26.09.02 10:36 Antwortenals Email verschicken (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 Antwortenals Email verschicken (compy@onlinehome.de) 


leider geht funzt er nicht unter Profan 5.0 ,aber trotzdem danke
mfg


Alexander Schoenfeld
Datum:26.09.02 14:04 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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 Antwortenals Email verschicken (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