Supportnet Computer
Planet of Tech

Supportnet / Forum / Skripte(PHP,ASP,Perl...)

Programmfester auf normale Größe bringen





Frage

Hallo VBS-Experten! Ich habe ein Programmfester, welches durch ein VBS-Script in den Vordergrund gebracht wurde. Mit welcher VBS-Anweisung würde das Fester wieder in normaler Größe erscheinen, auch wenn es mittlerweile minimiert wurde Mit diesen Anweisungen (von ArnoNym) ist das Fenster schon aktiv, [code] Set WShell = CreateObject("WScript.Shell") if WShell.AppActivate("D:\Daten") = FALSE then WShell.run "explorer.exe " & "D:\Daten", 1 [/code] ...und wie bekommt es jetzt normale Größe?... wäre elegant ;-[b])[/b] Habe zwar schon gestöbert, aber nachdem ich nicht weiß, wonach ich eigentlich suchen muß, wende ich mich an Euch! Besten Dank im Vorraus LG[code] buzz[/code]

Antwort 1 von Marie

mit ws.AppActivate "Fenstername" aktivieren und dann

'Alle Fenster maximieren
Set shella = WScript.CreateObject ("Shell.Application")
shella.UndoMaximizeAll

probier mal, habsch gerade gefunden.

Gruß mariechen :-))

Antwort 2 von Bussard

Hallo Mariechen ;-)

erstmal Danke für diesen Vorschlag
und Danke an alle die sich Zeit nehmen :-)


nun das Problem:

mit
ws.AppActivate "D:\Daten"
bekomm ich folgende Fehlermeldung:
Fehler: Objekt erforderlich: 'WS'
Code: 800A01A8


Habe draufhin mal in diese Richtung gebastelt

Set WShell = CreateObject("WScript.Shell")
if WShell.AppActivate("D:\Daten") = FALSE then WShell.run "explorer.exe " & "D:\Daten", 1

WShell.AppActivate("D:\Daten")
set shella = WScript.CreateObject ("D:\Daten")
shella.UndoMaximizeAll 


Worauf ich folgende Fehlermeldung erhielt:
Fehler: Eine Automatisierungsklassemit dem Namen "D:\Daten"wurde nicht gefunden
Fehlercode: 80020006


Jetzt die Frage: was ist daran falsch?

LG
buzz


PS: war der meinung es wäre leichter zu durchschauen *verlegen*

Antwort 3 von Marie

Ja Herzilein,wWat willste denn aktivieren???
Du hast geschrieben
Set WShell = CreateObject("WScript.Shell")

ich hab geschrieben
mit ws.AppActivate "Fenstername" aktivieren

Dat heisst für Dich dann übersetzt: WShell.AppActivate "Fenstername"
-------------------------------------------------------

Dann habsch Dir kopiert:
'Alle Fenster maximieren
Set shella = WScript.CreateObject ("Shell.Application")
shella.UndoMaximizeAll


Dat heisst für Dichdann, weil Du ja
Zitat:
Set WShell = CreateObject("WScript.Shell")
geschrieben hast:

WShell.UndoMaximizeAll

Sorry, habsch gedacht Du hättest das kapiert. :-((

Gruß marie

PS: Hab Dir doch vor zwei Stunden schon Nacht gesagt :-(

Antwort 4 von Bussard

Bevor wir uns aneinader vorbeireden...

Bei mir ist der WindowsExplorer drauf eingestellt,
den "kompletten Pfad in der Titelleiste anzuzeigen"

Durch eine Verknüpfung in der Scnellstartleiste
- welche eben das VBS-script aufruft -
wird mir nun der Explorer aufgerufen,
der eben den Ordner "D:\Daten" öffnet.

Wurde der Explorer bzw der Ordner "D:\Daten" schon aufgemacht,
wird mir eben dieses Fenster in den Vordergrund gerückt,
auch wenn ich in einem Unterordner dieses Ordners bin.

Set WShell = CreateObject("WScript.Shell")
if WShell.AppActivate("D:\Daten") = FALSE then WShell.run "explorer.exe " & "D:\Daten", 1


soweit funktioniert das Script ja anstandslos

Meine Frage wäre, wie ich nun dieses Script ergänzen kann,
damit mir das Fenster "D:\Daten" wieder normal dargestellt wird,
sollte es mittlerweile minimiert oder maximiert worden sein.

Das ganze hat den Sinn,
bestimmte Ornder nur einmal am Desktop zu haben

Ich setzte den Text mal als allgemeine Erklärung,
damit es vlt.klarer wird was ich meine.

LG
buzz


Antwort 5 von Bussard

Für Marie!

nun, am anfang glaubte ich es ja auch es soweit kapiert zu haben.

Habe mich an die Vorlagen gehalten
und auch deine letzte anwort beachtet

aber diese Versuche scheitern bei mir leider.
soll aber kein Vorwurf sein! ;-)

vlt findet sich noch eine Idee
ansonst lasse ich es sein

LG buzz

Antwort 6 von Arno_Nym

Man könnte die SendKeys-Methode dazu gebrauchen, z.B. so:

if WShell.AppActivate("D:\Daten") = FALSE then
   WShell.run "explorer.exe " & "D:\Daten", 1
else
   WShell.SendKeys "%( w)"
end if


Beachte:
Zwischen den () befindet sich ein Leerzeichen und ein w.

Erklärung:
Schickt die Tastenfolge ALT + LEERTASTE zur Aktivierung des Systemmenüs gefolgt von W zum "Wiederherstellen"

Arno

Antwort 7 von Bussard

Hallo Arno!

Tja ich muß sagen PERFEKT!
genau das was ich mir eigentlich vorgestellt habe!

*THUMBS UP*
Dankeschön ;-)

LG
buzz


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: