Position von MsgBox verschieben
Hi,
Immer wenn ich eine MsgBox-vbs aus führe, kommt das Dialogfenster in der Mitte vom Bildschirm.
Kann ich die Position verändern?
Wie?
Hier der MsgBox Code:
Danke im voraus
bennib22
Immer wenn ich eine MsgBox-vbs aus führe, kommt das Dialogfenster in der Mitte vom Bildschirm.
Kann ich die Position verändern?
Wie?
Hier der MsgBox Code:
x=MsgBox("Trink ein Glas Wasser",290+14,"Titel")
Danke im voraus
bennib22
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 128116
Url: https://administrator.de/contentid/128116
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
22 Kommentare
Neuester Kommentar
Hi,
schau dir mal das an. ist zwar für VB. Soll aber anscheinend so ähnlich auch in VBS zu realisieren sein.
Gruß
Tom
schau dir mal das an. ist zwar für VB. Soll aber anscheinend so ähnlich auch in VBS zu realisieren sein.
Gruß
Tom
<HTA:APPLICATION
Hallo,
hier wird es verraten. Es ist eine HTML-Applikation. Wenn du denn Sourcecode in den Editor deiner Wahl abspeichert dann mußt du die Dateierweiterung .hta benutzen.
TST
PS.: hier noch ein Link zu HTA
http://technet.microsoft.com/de-de/scriptcenter/dd742317(en-us).aspx
Hallo bennib22!
Wo genau ist das Problem?
Der von ZAFAS und Tommy70 verlinkte "VB-fun.de"-Tipp ist leider für VBS nicht verwendbar, da er auf Funktionen der Windows-API zurückgreift, die in VBS nicht angesprochen werden können ...
... aber der im von mir verlinkten Forumsbeitrag dargestellte Ansatz sollte eigentlich funktionieren.
Grüße
bastla
Wo genau ist das Problem?
Der von ZAFAS und Tommy70 verlinkte "VB-fun.de"-Tipp ist leider für VBS nicht verwendbar, da er auf Funktionen der Windows-API zurückgreift, die in VBS nicht angesprochen werden können ...
... aber der im von mir verlinkten Forumsbeitrag dargestellte Ansatz sollte eigentlich funktionieren.
Grüße
bastla
@Tommy70
Dann einigen wir und am besten auf: "In native VBS können keine API-Calls verwendet werden" ...
Grüße
bastla
Dann einigen wir und am besten auf: "In native VBS können keine API-Calls verwendet werden" ...
Kann mir bitte mal jemand gaaaanz ausführlich den Syntax zum Ändern der Position der MsgBoX per vbs sagen!
Sagst Du es dann bennib22? Grüße
bastla
Zitat von @bastla:
@Tommy70
Dann einigen wir und am besten auf: "In
native VBS können keine API-Calls verwendet
werden" ...
@Tommy70
Dann einigen wir und am besten auf: "In
native VBS können keine API-Calls verwendet
werden" ...
OK
> Kann mir bitte mal jemand gaaaanz ausführlich den Syntax
zum Ändern der Position der MsgBoX per vbs sagen!
Sagst Du es dann bennib22?
zum Ändern der Position der MsgBoX per vbs sagen!
Sagst Du es dann bennib22?
Ist eigentlich in deinem Beispiel schon ausführlich beschrieben. Was soll man da noch mehr sagen.
Einfach den Code den du oben bereits gepostet hast in einer .hta Datei abspeichern. Dann müsste es funktionieren.
Hallo zusammen!
Hier ein VB-Script (*.vbs), das eine Hta-MsgBox in Abhängigkeit der Konstanten ausgibt.
Die Konstanten können selbstverständlich auch in die Funktion als Übergabeparameter eingebunden werden.
Die HtaBox enthält einen OK und einen Cancel-Button und gibt auf Umwege vbOK oder vbCancel zurück.
Das Ganze kann eigentlich relativ einfach an eigene Vorstellungen angepasst werden.
Die zwei Kommentarzeilen in Msg.WriteLine enthalten mit Screen.Width und Screen.Height die Bildschirmgröße.
Den Quelltext kopieren und unter *.vbs abspeichern und starten.
Das sieht dann - je nach Bildschirmdarstellung - in etwa so aus:
Gruß Dieter
[edit] In Zeile 59 noch die Parameter für die Buttons Fenster Mini/Maximize yes/no eingefügt [/edit]
[edit] In Zeile 63 hatte ich den Tag "</head>" auch noch vergessen [/edit]
Hier ein VB-Script (*.vbs), das eine Hta-MsgBox in Abhängigkeit der Konstanten ausgibt.
Die Konstanten können selbstverständlich auch in die Funktion als Übergabeparameter eingebunden werden.
Die HtaBox enthält einen OK und einen Cancel-Button und gibt auf Umwege vbOK oder vbCancel zurück.
Das Ganze kann eigentlich relativ einfach an eigene Vorstellungen angepasst werden.
Die zwei Kommentarzeilen in Msg.WriteLine enthalten mit Screen.Width und Screen.Height die Bildschirmgröße.
Den Quelltext kopieren und unter *.vbs abspeichern und starten.
Das sieht dann - je nach Bildschirmdarstellung - in etwa so aus:
Option Explicit
Const BoxTop = 200
Const BoxLeft = 200
Const BoxWidth = 300
Const BoxHeight = 120
Const FontType = "Arial"
Const FontSize = 12
'Main Beg
Dim Return
Return = HtaBox("Mein Text", "Mein Titel")
If Return = vbOK Then MsgBox "Rückgabe OK"
If Return = vbCancel Then MsgBox "Rückgabe Cancel"
Wscript.Quit
'Main End
Private Function HtaBox(ByRef Text, ByRef Titel)
Dim Fso, Shell, Msg, Path
Set Fso = CreateObject("Scripting.FileSystemObject")
Path = Fso.GetParentFolderName(WScript.ScriptFullName) & "\Msg.Hta"
Set Msg = Fso.CreateTextFile(Path)
With Msg
.WriteLine "<html>"
.WriteLine "<head>"
.WriteLine "<title>" & Titel & "</title>"
.WriteLine "<SCRIPT Language='VBScript'>"
'.WriteLine "BoxLeft = (Screen.Width - " & BoxWidth & ") / 2" 'Ohne Const BoxLeft = Horizontal Zentriert
'.WriteLine "BoxTop = (Screen.Height - " & BoxHeight & ") / 2" 'Ohne Const BoxTop = Vertikal Zentriert
.WriteLine "Window.ResizeTo " & BoxWidth & ", " & BoxHeight
.WriteLine "Window.MoveTo " & BoxLeft & ", " & BoxTop
.WriteLine "Dim Fso, Hta, HtaPath"
.WriteLine "Set Fso = CreateObject(""Scripting.FileSystemObject"")"
.WriteLine "HtaPath = Window.Location.Pathname"
.WriteLine "Set Hta = Fso.CreateTextFile(HtaPath)"
.WriteLine "Sub RetOK"
.WriteLine "Hta.WriteLine vbOK"
.WriteLine "Hta.Close"
.WriteLine "Close"
.WriteLine "End Sub"
.WriteLine "Sub RetCancel"
.WriteLine "Hta.WriteLine vbCancel"
.WriteLine "Hta.Close"
.WriteLine "Close"
.WriteLine "End Sub"
.WriteLine "</SCRIPT>"
.WriteLine "<HTA:APPLICATION"
.WriteLine "ID='objMsg'"
.WriteLine "APPLICATIONNAME='Msg-Ausgabe'"
.WriteLine "MaximizeButton='no'"
.WriteLine "MinimizeButton='no'"
.WriteLine "SCROLL='no'"
.WriteLine "SINGLEINSTANCE='yes'>"
.WriteLine "</head>"
.WriteLine "<body bgcolor='buttonface' style='font-family:" & FontType & ";font-size:" & FontSize & "px'>"
.WriteLine "<p>" & Text & "</p>"
.WriteLine "<table border='0' width='100%'><tr>"
.WriteLine "<td width='50%' align='center'>"
.WriteLine "<input type='button' value=' OK ' tabindex='1' onClick='RetOK'></td>"
.WriteLine "<td width='50%' align='center'>"
.WriteLine "<input type='button' value='Cancel' tabindex='2' onClick='RetCancel'></td>"
.WriteLine "</tr></table></body></html>"
.Close
End With
Set Shell = CreateObject("Wscript.Shell"): Shell.Run Path, 1, True
Set Msg = Fso.OpenTextFile(Path)
If Msg.AtEndOfStream Then HtaBox = vbCancel Else HtaBox = CInt(Msg.ReadLine)
Msg.Close: Fso.DeleteFile Path
End Function
Gruß Dieter
[edit] In Zeile 59 noch die Parameter für die Buttons Fenster Mini/Maximize yes/no eingefügt [/edit]
[edit] In Zeile 63 hatte ich den Tag "</head>" auch noch vergessen [/edit]
Hallo bennib22!
Freut mich, wenn's endlich klappt
Gruß Dieter
Freut mich, wenn's endlich klappt
Gruß Dieter
Hallo bennib22!
Ist das jetzt ne Scherzfrage
Ich habe zwar keine Ahnung, was Du genau meinst. Aber ich rate mal und nehme an, dass Du die Position für Left und Top als Übergabeparameter an die Funktion HtaBox meinst. Wenn dem so ist, dann den Code folgendermaßen anpassen:
Die Konstanten in Zeile 3 und 4 entfernen
Die Zeile 25 durch diese Zeile ersetzen:
Den Aufruf in Zeile 14 ändern in z.B.:
Wenn das nicht gemeint war, dann bitte etwas genauer formulieren
Gruß Dieter
Ist das jetzt ne Scherzfrage
Ich habe zwar keine Ahnung, was Du genau meinst. Aber ich rate mal und nehme an, dass Du die Position für Left und Top als Übergabeparameter an die Funktion HtaBox meinst. Wenn dem so ist, dann den Code folgendermaßen anpassen:
Die Konstanten in Zeile 3 und 4 entfernen
Die Zeile 25 durch diese Zeile ersetzen:
Private Function HtaBox(ByRef Text, ByRef Titel, ByVal BoxLeft, ByVal BoxTop)
Return = HtaBox("Mein Text", "Mein Titel", 200, 200)
Gruß Dieter