PDA

Vollständige Version anzeigen : vb-script: fenster mit 3 buttons erstellen


puntipik
02.07.2010, 08:25
hallo,

ich habe noch nicht viel mit wscript programmiert, deshalb vielleicht die banale frage (habe aber nach langem nichts in google gefunden):

ich brauche eine script-datei (...vbs) die ein fenster öffnet (popup), welches 3 von mir beschriftete buttons anzeigt. je nach dem, welchen button ich drücke wird eine batch-datei ausgeführt/aufgerufen.

leider finde ich keine allgemeine hilfe/beschreibung zu wscript. im goolge habe ich nicht gefunden, wie man ein fenster/popup/dialog erstellt, in dem man eigene buttons geben kann. habe bis jetzt nur die msgbox gefunden, die aber nur die ok, cancel,... buttons anbietet.

mfg puntipik

puntipik
02.07.2010, 12:39
hallo,

ich habe mein script im moment so gelöst:

Option Explicit

Dim WshShell
Dim iReturn
Dim sMessage, sTitel
Dim FSO
DIM CRLF, wait

CRLF = Chr(13) & chr(10)

sMessage = "Spielereinstellung für XBOX 360 Controller Emulator: " & CRLF & CRLF & "4 Player = JA" & CRLF & "2 Player = NEIN" & CRLF & "1 Player = ABBRECHEN"
sTitel = "Blur - XBox 360 Game Controller"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set WshShell = CreateObject("WScript.Shell")
iReturn = WshShell.Popup(sMessage,, sTitel , vbYesNoCancel + vbExclamation )

Select Case iReturn
Case vbYes
FSO.CopyFile "c:\test.txt", "c:\test_neu.txt"
Case vbNo
FSO.CopyFile "c:\test.txt", "c:\test_neu.txt"
Case vbCancel
FSO.CopyFile "c:\test.txt", "c:\test_neu.txt"
End select

i = WshShell.Run("abc.exe",1, True)

es wäre aber besser, wenn ich statt den button YES, NO und CANCEL andere namen vergäben könnte bzw. einen vierten button hinzufügen könnte.

mfg

_anton_
02.07.2010, 15:45
Hallo puntipik,

folgenden Text als xbox.hta speichern und ausführen:
<HTML>
<HEAD>
<TITLE>Spielereinstellung für XBOX 360</TITLE>
<HTA:APPLICATION
ID = "htaXBox"
APPLICATIONNAME = "htaXBox"
BORDER="dialog"
BORDERSTYLE="complex"
CAPTION="yes"
SHOWINTASKBAR="yes"
SYSMENU="yes"
INNERBORDER = "no"
MAXIMIZEBUTTON = "no"
MINIMIZEBUTTON = "no"
WINDOWSTATE="normal"
SINGLEINSTANCE="yes"
CONTEXTMENU = "no"
SYSMENU = "no">
<STYLE type="text/css">
body {font-family:Tahoma,Verdana,Arial,Geneva;font-size:12;background-color:Buttonface;}
table {font-family:Tahoma,Verdana,Arial,Geneva;font-size:12;background-color:Buttonface;}
.button {width:100;cursor:hand;}
</STYLE>
<script language="VBScript">
'|--------------------------------------------------------------------------------------------------|'
Dim fensterhoehe
Dim fensterbreite
Dim WSHShell, AppShell,fso
Set AppShell = CreateObject("Shell.Application")
Set WSHShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
'|--------------------------------------------------------------------------------------------------|'
Sub SubInitFenster
fensterhoehe = 110
fensterbreite = 450
window.resizeTo fensterbreite,fensterhoehe
window.MoveTo (screen.width - fensterbreite)/2,(screen.height - fensterhoehe)/2
End Sub
'|--------------------------------------------------------------------------------------------------|'
Sub Sub1_Player
msgbox "1 Player"
End Sub
'|--------------------------------------------------------------------------------------------------|'
Sub Sub2_Player
msgbox "2 Player"
End Sub
'|--------------------------------------------------------------------------------------------------|'
Sub Sub4_Player
msgbox "4 Player"
End Sub
'|--------------------------------------------------------------------------------------------------|'
Sub SubQuit
Set AppShell = Nothing
Set WSHShell = Nothing
Set fso = Nothing
Window.Close
End Sub
</script>
</HEAD>

<BODY onload="SubInitFenster" scroll="auto">
<table>
<tr>
<tr valign=middle>
<td align=right>
<INPUT TYPE='button'
ONCLICK='Sub1_Player'
CLASS = 'button'
Value = '1 Player'
Title = '1 Player'>
</td>
<td align=right>
<INPUT TYPE='button'
ONCLICK='Sub2_Player'
CLASS = 'button'
Value = '2 Player'
Title = '2 Player'>
</td>
<td align=right>
<INPUT TYPE='button'
ONCLICK='Sub4_Player'
CLASS = 'button'
Value = '4 Player'
Title = '4 Player'>
</td>
<td align=right>
<INPUT TYPE='button'
ONCLICK='SubQuit'
CLASS = 'button'
Value = 'Abbrechen'
Title = 'Applikation beenden'>
</td>
</tr>
</table>
</BODY>
</HTML>
Statt msgbox schreibst du deinen Code in die Sub's rein.

mfg Anton

puntipik
02.07.2010, 22:21
hallo,

ist ne schöne lösung - hätte nur noch 2 fragen:

1. kann man auch das aussehen der buttons ändern? moderner - sind im moment bei mir im windows 2000 stil (eckig).
2. so kann ich es nicht verwenden, da ich es für meinen mediacenter brauche, wo ich die buttons mit der fernsteuerung (coursertasten) auswählen muss. das geht hier aber nicht, da ich die buttons nur mit der tab-taste anwählen kann. gibt es hier noch ne möglichkeit, dass das auch mit den normalen coursertasten funktioniert? (die tabellen aufteilung hätte ich schon entfernt, geht trotzdem nur mit tabulator).

mfg puntipik

_anton_
03.07.2010, 12:06
Hallo ,

zu 1.
Du kannst das Aussehen der Buttons gestalten wie du willst (HTML Kenntnisse vorausgesetzt).
zu 2.
Man kann jedem Button eine Tastenkombi zuweisen.
Ein kleines Beispiel:
<HTML>
<HEAD>
<TITLE>Solitär</TITLE>
<HTA:APPLICATION
ID = "htaXBox"
APPLICATIONNAME = "htaXBox"
BORDER="dialog"
BORDERSTYLE="complex"
CAPTION="yes"
SHOWINTASKBAR="yes"
SYSMENU="yes"
INNERBORDER = "no"
MAXIMIZEBUTTON = "no"
MINIMIZEBUTTON = "no"
WINDOWSTATE="normal"
SINGLEINSTANCE="yes"
CONTEXTMENU = "no">
<script language="VBScript">
'|------------------------------------------------------------------------------|'
Dim fensterhoehe
Dim fensterbreite
'|------------------------------------------------------------------------------|'
Sub SubInitFenster
fensterhoehe = 160
fensterbreite = 450
window.resizeTo fensterbreite,fensterhoehe
window.MoveTo (screen.width - fensterbreite)/2,(screen.height - fensterhoehe)/2
End Sub
'|------------------------------------------------------------------------------|'
Sub SubQuit
Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run "sol.exe",1,false
Set WSHShell = Nothing
Window.Close
End Sub
</script>
</HEAD>

<BODY onload="SubInitFenster" scroll="no" bgcolor="#CCFFFF">
<center>Drücke Alt+p , um das Spiel zu beginnen</center>
<INPUT TYPE='image' src = 'http://cdn.zehn.de/app/13.0b10/images/play_button_neu.png'
style ="cursor: hand;"
TITLE = "Drücke Alt+p , um das Spiel zu beginnen"
accesskey = 'p'
onClick = SubQuit>
</BODY>
</HTML>

mfg Anton

puntipik
03.07.2010, 14:12
danke für die info.

das problem ist aber, dass ich das ganze mit der fernsteuerung steuern muss - da hab ich nicht wirklich viel auswahl - quasi nur die coursertasten.

gibt es da auch ein möglichkeit.

gibt es keine möglichkeit, dass direkt im wscript zu machen? das fenster/den dialog...

mfg