Microsoft Excel

Herbers Excel/VBA-Archiv

Refresh Desktop per VBA

Betrifft: Refresh Desktop per VBA von: Peter
Geschrieben am: 22.08.2014 16:16:23

Hallo Zusammen

Wie kann ich den Desktop per VBA 'refreshen' (F5)?
Auch mit dem Code von :
http://www.visualbasicscript.com/Refresh-Active-Desktop-m28195.aspx

geht es nicht (Fehlermeldung 'Variable' auf WScript.Sleep 100).

Ein Beispiel würde mir sehr helfen.
Bedanke mich zum voraus.

  

Betrifft: Eventuell... von: Case
Geschrieben am: 22.08.2014 20:17:17

Hallo, :-)

... so?

Option Explicit
Sub Main()
    Dim objTMP As Object
    Set objTMP = CreateObject("Shell.Application").Namespace(0)
    With objTMP
        .Self.InvokeVerb "R&efresh"
    End With
    Set objTMP = Nothing
End Sub
Servus
Case



  

Betrifft: AW: Eventuell... von: Peter
Geschrieben am: 25.08.2014 12:11:25

Hallo Zusammen - ich bitte nochmals um Hilfe :

Danke für den Lösungsvorschlag ! Leider funktioniert er nicht.
Einfachshalber möchte ich den Code (gem. Link) noch vollständig darstellen.
wie gesagt - es gibt eine Fehlermeldung 'Variable' auf WScript.Sleep100 :

Benötigte Deklaration für Sleep :

Option Explicit

#If VBA7 Then
Public Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 'For 64 Bit Systems
#Else
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 'For 32 Bit Systems
#End If

'.. und jetzt zur eigentlichen Sub :

Public Sub Explorer_command_File()
'http://www.visualbasicscript.com/Refresh-Active-Desktop-m28195.aspx

Dim oFSO As Object
Dim sSCFFile As String

 'Explorer Command File erzeugen um den Fokus auf den Desktop zu bringen
 'C:\Users\u4898\AppData\Local\Temp
 Set oFSO = CreateObject("Scripting.FileSystemObject")
 sSCFFile = oFSO.BuildPath(oFSO.GetSpecialFolder(2), oFSO.GetTempName & ".scf")
 
 With oFSO.CreateTextFile(sSCFFile, True)
 .WriteLine ("[Shell]")
 .WriteLine ("Command=2")
 .WriteLine ("[Taskbar]")
 .WriteLine ("Command=ToggleDesktop")
 .Close
 End With
  
 ' Toggle desktop and send F5 (refresh)
 With CreateObject("WScript.Shell")
 .Run """" & sSCFFile & """"
 .Sleep 100
 .SendKeys "{F5}"
 End With

 ' Delete explorer command file
 oFSO.DeleteFile sSCFFile

Set oFSO = Nothing

End Sub



  

Betrifft: Desktop refresh - aber wie ? von: Peter
Geschrieben am: 25.08.2014 12:14:41

Hallo Zusammen
Ja ich bitte nochmals um Hilfe - alle Codes stehen zum testen zur Verfügung.
Ich danke Euch im Voraus - Peter.


  

Betrifft: AW: Desktop refresh - aber wie ? von: Jürgen V.
Geschrieben am: 25.08.2014 14:28:21

Hallo Peter,

entferne den Punkt vor sleep - sonst wird es als Methode des WScript.Shell-Objekts interpretiert.

Gruß, Jürgen


  

Betrifft: AW: Desktop refresh - aber wie ? von: Peter
Geschrieben am: 25.08.2014 16:12:34

Hallo Lieber Jürgen - Der Punkt weggelassen führt zu keinem Ergebnis.
Ich habe folgenden Code gefunden unter
(http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_22728805.html):

Ist dieser gefahrlos anwendbar? (überschreibe ich da nichts?)
Falls jemand diesen getestet hat, kann er mir diesen dann vollständig zur Verfügung stellen ?
Das würde mir sehr helfen - Danke zum voraus - Peter.

Option Explicit

Sub Aktualisieren ()
 Dim objShell as Object
 Dim strCommand as string

 Set objShell = CreateObject("WScript.Shell")
 strCommand = objShell.SpecialFolders("AppData") & "\Microsoft\Internet Explorer\Quick Launch\ _
Show Desktop.scf"
 objShell.Run """" & strCommand & """", 1, False
 objShell.SendKeys "{F5}"
 Set objShell = Nothing
 WScript.Quit
End Sub



 

Beiträge aus den Excel-Beispielen zum Thema "Refresh Desktop per VBA"