Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Position von MsgBox verschieben

Frage Entwicklung

Mitglied: bennib22

bennib22 (Level 1) - Jetzt verbinden

28.10.2009, aktualisiert 18.10.2012, 5635 Aufrufe, 22 Kommentare

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:

x=MsgBox("Trink ein Glas Wasser",290+14,"Titel")


Danke im voraus
bennib22
Mitglied: bastla
28.10.2009, aktualisiert 18.10.2012
Hallo bennib22!

Schau mal hier vorbei ...

Grüße
bastla
Bitte warten ..
Mitglied: Tommy70
28.10.2009 um 11:45 Uhr
Hi,

schau dir mal das an. ist zwar für VB. Soll aber anscheinend so ähnlich auch in VBS zu realisieren sein.

Gruß
Tom
Bitte warten ..
Mitglied: bennib22
28.10.2009 um 12:00 Uhr
Ich hab trotzdem ne Frage.
Ist das eine vbs oder html datei?
Bei html sperrt der Internet Explorer den Zugriff,
bei vbs kommtv Anweisung erwartet Zeile 1 Zeichen 1.
Der Code:
<html>
<head>

<SCRIPT Language="VBScript">
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor")
For Each objItem in colItems
intHorizontal = objItem.ScreenWidth
intVertical = objItem.ScreenHeight
Next
intLeft = (intHorizontal - 800) / 2
intTop = (intVertical - 600) / 2
window.resizeTo 800,600
window.moveTo intLeft, intTop
</SCRIPT>
<HTA:APPLICATION
ID="objHTA"
APPLICATIONNAME="Centered HTA"
SCROLL="yes"
SINGLEINSTANCE="yes">

</head>
<body></body>
</html>
Bitte warten ..
Mitglied: ZAFAS
28.10.2009 um 12:17 Uhr
Zitat von bennib22:
Ist das eine vbs oder html datei?
<SCRIPT Language="VBScript">
Bitte warten ..
Mitglied: 5t8d1e
28.10.2009 um 13:40 Uhr
<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
Bitte warten ..
Mitglied: bastla
28.10.2009 um 15:15 Uhr
@ZAFAS & Tommy70

In VBS können keine API-Calls verwendet werden.

Grüße
bastla
Bitte warten ..
Mitglied: bennib22
28.10.2009 um 15:20 Uhr
Ich versteh garnixmehr!

bennib22
Bitte warten ..
Mitglied: bastla
28.10.2009 um 15:40 Uhr
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
Bitte warten ..
Mitglied: Tommy70
28.10.2009 um 15:56 Uhr
Zitat von bastla:
@ZAFAS & Tommy70

In VBS können keine API-Calls verwendet werden.

Grüße
bastla

Stimmt so nicht ganz Link ;)
Man muss "nur" die benötigten Funktionn als VB ActiveX DLL implementieren und dann aus VBScript heraus wrappen.

Gruß
Tom
Bitte warten ..
Mitglied: bennib22
28.10.2009 um 16:17 Uhr
Kann mir bitte mal jemand gaaaanz ausführlich den Syntax zum Ändern der Position der MsgBoX per vbs sagen!

Danke im Voraus
bennib22
Bitte warten ..
Mitglied: bastla
28.10.2009 um 17:06 Uhr
@Tommy70

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
Bitte warten ..
Mitglied: Tommy70
29.10.2009 um 06:31 Uhr
Zitat von bastla:
@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?

Ist eigentlich in deinem Beispiel schon ausführlich beschrieben. Was soll man da noch mehr sagen.
Bitte warten ..
Mitglied: bennib22
29.10.2009 um 10:48 Uhr
Mein Beispiel funktioniert nicht!
Hilft mir bitte!

benni
Bitte warten ..
Mitglied: Tommy70
29.10.2009 um 11:18 Uhr
Zitat von bennib22:
Mein Beispiel funktioniert nicht!
Hilft mir bitte!

benni

Einfach den Code den du oben bereits gepostet hast in einer .hta Datei abspeichern. Dann müsste es funktionieren.
Bitte warten ..
Mitglied: 76109
29.10.2009 um 11:26 Uhr
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: dec15281220bbd00df337b793c143372-htabox - Klicke auf das Bild, um es zu vergrößern

01.
Option Explicit 
02.
 
03.
Const BoxTop = 200 
04.
Const BoxLeft = 200 
05.
Const BoxWidth = 300 
06.
Const BoxHeight = 120 
07.
 
08.
Const FontType = "Arial" 
09.
Const FontSize = 12 
10.
 
11.
'Main Beg 
12.
    Dim Return 
13.
 
14.
    Return = HtaBox("Mein Text", "Mein Titel") 
15.
 
16.
    If Return = vbOK Then MsgBox "Rückgabe OK" 
17.
 
18.
    If Return = vbCancel Then MsgBox "Rückgabe Cancel" 
19.
 
20.
    Wscript.Quit 
21.
 
22.
'Main End 
23.
 
24.
 
25.
Private Function HtaBox(ByRef Text, ByRef Titel) 
26.
    Dim Fso, Shell, Msg, Path 
27.
 
28.
    Set Fso = CreateObject("Scripting.FileSystemObject") 
29.
    Path = Fso.GetParentFolderName(WScript.ScriptFullName) & "\Msg.Hta" 
30.
    Set Msg = Fso.CreateTextFile(Path) 
31.
 
32.
    With Msg 
33.
        .WriteLine "<html>" 
34.
        .WriteLine "<head>" 
35.
        .WriteLine "<title>" & Titel & "</title>" 
36.
        .WriteLine "<SCRIPT Language='VBScript'>" 
37.
        '.WriteLine "BoxLeft = (Screen.Width - " & BoxWidth & ") / 2"  'Ohne Const BoxLeft = Horizontal Zentriert 
38.
        '.WriteLine "BoxTop = (Screen.Height - " & BoxHeight & ") / 2" 'Ohne Const BoxTop = Vertikal Zentriert 
39.
        .WriteLine "Window.ResizeTo " & BoxWidth & ", " & BoxHeight 
40.
        .WriteLine "Window.MoveTo " & BoxLeft & ", " & BoxTop 
41.
        .WriteLine "Dim Fso, Hta, HtaPath" 
42.
        .WriteLine "Set Fso = CreateObject(""Scripting.FileSystemObject"")" 
43.
        .WriteLine "HtaPath = Window.Location.Pathname" 
44.
        .WriteLine "Set Hta = Fso.CreateTextFile(HtaPath)" 
45.
        .WriteLine "Sub RetOK" 
46.
        .WriteLine "Hta.WriteLine vbOK" 
47.
        .WriteLine "Hta.Close" 
48.
        .WriteLine "Close" 
49.
        .WriteLine "End Sub" 
50.
        .WriteLine "Sub RetCancel" 
51.
        .WriteLine "Hta.WriteLine vbCancel" 
52.
        .WriteLine "Hta.Close" 
53.
        .WriteLine "Close" 
54.
        .WriteLine "End Sub" 
55.
        .WriteLine "</SCRIPT>" 
56.
        .WriteLine "<HTA:APPLICATION" 
57.
        .WriteLine "ID='objMsg'" 
58.
        .WriteLine "APPLICATIONNAME='Msg-Ausgabe'" 
59.
        .WriteLine "MaximizeButton='no'" 
60.
        .WriteLine "MinimizeButton='no'" 
61.
        .WriteLine "SCROLL='no'" 
62.
        .WriteLine "SINGLEINSTANCE='yes'>" 
63.
        .WriteLine "</head>" 
64.
        .WriteLine "<body bgcolor='buttonface' style='font-family:" & FontType & ";font-size:" & FontSize & "px'>" 
65.
        .WriteLine "<p>" & Text & "</p>" 
66.
        .WriteLine "<table border='0' width='100%'><tr>" 
67.
        .WriteLine "<td width='50%' align='center'>" 
68.
        .WriteLine "<input type='button' value='    OK    ' tabindex='1' onClick='RetOK'></td>" 
69.
        .WriteLine "<td width='50%' align='center'>" 
70.
        .WriteLine "<input type='button' value='Cancel' tabindex='2' onClick='RetCancel'></td>" 
71.
        .WriteLine "</tr></table></body></html>" 
72.
        .Close 
73.
    End With 
74.
    Set Shell = CreateObject("Wscript.Shell"):  Shell.Run Path, 1, True 
75.
    Set Msg = Fso.OpenTextFile(Path) 
76.
    If Msg.AtEndOfStream Then HtaBox = vbCancel Else HtaBox = CInt(Msg.ReadLine) 
77.
    Msg.Close:  Fso.DeleteFile Path 
78.
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]
Bitte warten ..
Mitglied: bennib22
29.10.2009 um 11:33 Uhr
Ich hab den Code von oben als *.hta gespeichrt & ausgeführt.
Es kommt ne Fehlermeldung:
"Typkonflikt: Zeile:15 Zeichen:1
Möchten sie fortfahren?"
Es gibt ja und nein zur Auswahl
Nach der Bestätigung komm ein weißes Fenster mit *.hta in der Kopfzeile.

Gruß
benni
Bitte warten ..
Mitglied: bennib22
29.10.2009 um 11:49 Uhr
Eeendlich klappts!
Danke Dieter!
Danke auch an alle Andern die mir (wenigstens ein bisschen ) geholfen haben!


Mit freundlichen Grüßen
bennib22
Bitte warten ..
Mitglied: 76109
29.10.2009 um 12:27 Uhr
Hallo bennib22!

Freut mich, wenn's endlich klappt

Gruß Dieter
Bitte warten ..
Mitglied: bennib22
29.10.2009 um 15:22 Uhr
Noch eine Frage.
Wo ist der Parameter wohin das Fenster verschoben wird??

bennib22
Bitte warten ..
Mitglied: 76109
29.10.2009 um 15:53 Uhr
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:
01.
Private Function HtaBox(ByRef Text, ByRef Titel, ByVal BoxLeft, ByVal BoxTop) 
Den Aufruf in Zeile 14 ändern in z.B.:
01.
Return = HtaBox("Mein Text", "Mein Titel", 200, 200) 
Wenn das nicht gemeint war, dann bitte etwas genauer formulieren

Gruß Dieter
Bitte warten ..
Mitglied: bennib22
29.10.2009 um 16:13 Uhr
Das hat mir geholfen!

Danke nochmal.
bennib22

PS: Du kannst gut raten!
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(2)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...