|
Tipp 048: Systemordner und Systemdialoge aufrufen per Shell und RunDLL32
Autor: Alexander Kopatz VB-Version: Visual Basic 6.0 Download: Beispielprojekt Tipp-048
Beschreibung
Mit Hilfe der Shell-Funktion und der rundll32.exe können Sie leicht und ohne großen Aufwand eine Reihe an interessanten Systemdialogen oder wichtigen Systemordner aufrufen, zum Beispiel den Hardware Assistenten oder die Systemsteuerung. Für den Programmierer als besonders angenehm erweist sich dabei die Tatsache, dass die eigentliche Ausführung und Verarbeitung der gewünschten Aktionen vollständig durch das Windows-Dienstprogramm rundll32.exe übernommen wird, eine größerer Programmieraufwand ist nicht erforderlich.
Tipp: Bedenken Sie allerdings auch, dass Sie auf diese Weise einen gewissen Teil der Kontrolle über den Ablauf Ihres Programms aus der Hand geben. Wenn Sie beispielsweise den Benutzer auffordern in den "Eigenschaften von Anzeige" die Auflösung des Systems zu ändern können Sie nicht unbedingt davon ausgehen, dass der Benutzer diese Bitte sowohl versteht, als ihr auch korrekt Folge leistet. Es empfiehlt sich daher Systemanpassungen und Konfigurationen welche für die Ausführung der eigenen Software zwingend erforderlich sind trotz der einfachen Verwendung der rundll32.exe nicht an diese auszulagern, sondern stets selbst per Software zu implementieren.
Neben den hier gezeigten Anweisungen verfügt die rundll32.exe noch über ein wahres Füllhorn an weiteren nützlichen Funktionen. Eine gute Übersicht der übrigen Funktionen finden Sie in der Wikipedia, der entsprechende Artikel ist im Folgenden verlinkt. Dort können Sie auch nachvollziehen welche Anweisung unter den jeweiligen Versionen von Windows funktioniert.
Zusatzinformationen
» Wikipedia-Artikel: Liste der Funktionen der rundll32.exe
Quellcode
runDll.frm
CommandButton cmdAusführen (Array)
' VISUAL BASIC WORLD
' ===========================================
' Das große Portal zum Thema Visual Basic.
'
' Wenn Ihnen dieser Source Code gefallen hat,
' dann empfehlen Sie Visual Basic World bitte
' weiter und/oder setzen Sie einen Link auf:
'
' http://www.visualbasicworld.de/
'
' Vernetzen Sie sich mit uns:
'
' http://twitter.com/visualbasicwrld
Option Explicit
Private Sub cmdAusführen_Click(Index As Integer)
Select Case Index
Case 0
Call Shell("rundll32.exe shell32.dll,Control_RunDLL", vbNormalFocus)
Case 1
Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1", vbNormalFocus)
Case 2
Call Shell("rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl @1", vbNormalFocus)
Case 3
Call Shell("rundll32.exe shell32.dll,Control_RunDLL netcpl.cpl", vbNormalFocus)
Case 4
Call Shell("rundll32.exe url.dll,TelnetProtocolHandler www.visualbasicworld.de", vbNormalFocus)
Case 5
Call Shell("rundll32.exe diskcopy.dll,DiskCopyRunDll", vbNormalFocus)
Case 6
Call Shell("rundll32.exe shell32.dll,SHFormatDrive", vbNormalFocus)
Case 7
Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1", vbNormalFocus)
Case 8
Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2", vbNormalFocus)
Case 9
Call Shell("rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,3", vbNormalFocus)
Case 10
Call Shell("Rundll32.exe user,ExitWindows", vbNormalFocus)
End Select
End Sub
|
Visual Basic World @ Twitter
Folgen Sie Visual Basic World!
Wenn Ihnen Visual Basic World gefällt, dann folgen Sie uns doch bei
Twitter
(@visualbasicwrld).
Vielen Dank!
|