none
Aufruf einer HTA aus Excel und WSH-Fehler bei deren Ablauf unter Windows 8 RRS feed

  • Allgemeine Diskussion

  • Hallo!

    1. Die Anwendung läuft (Stand-Alone) unter Windows 7 fehlerfrei!
    2. Beim Aufruf aus Excel 2007 über "ActiveWorkbook.FollowHyperlink Address:=....hta" nicht!
    3. Wenn ich jedoch in Excel 2007 über "ActiveWorkbook.FollowHyperlink Address:=....lnk" starte, also eine Verknüpfung auf die betreffende Datei (....hta) unter Windows 7 fehlerfrei!

    Daraus resultierend meine 1. Frage:

    Was ist da anders und wieso?

    Nun mein eigentliches Problem:

    Unter Windows 8 erzeugt die HTA Datei(n) Stand-Alone oder aus Excel 2007 (s.o.) vom Desktop gestartet bei

    ...
    Sub Warnungen1
    	Set WshShell = CreateObject("WScript.Shell")
    	Return = WshShell.Run("Warnung15min.hta",5,False)
    End Sub
    ...

    eine Fehlermeldung immer dann wenn, aus welchem Grund auch immer (Ein Spielchen nebenbei!), etwas anderes über diese komischen Kacheln gestartet wurde!

    Wie bekomme ich das zum Laufen? Das die da so nebenbei Spielchen machen kann ich leider schlecht verhindern!

    Vielen Dank im Vorraus

    Andreas

    • Typ geändert Ionut DumaModerator Dienstag, 24. September 2013 07:04 Keine Rueckmeldung des Fragenstellender
    Dienstag, 17. September 2013 09:54

Alle Antworten

  • *****************************************************************************************************
    Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
    Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
    *****************************************************************************************************

    Ionut Duma, MICROSOFT   Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-PrinzipEntwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Dienstag, 24. September 2013 07:04
    Moderator
  • *****************************************************************************************************
    Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
    Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
    *****************************************************************************************************

    Hallo!

    Ich konnte leider nicht eher! Tschuldigung!

    also der Fehler lautet:

    Webseitenfehler

    Das System konnte die Datei nicht finden.

    Zwischenzeitlich habe ich festgestellt, das der Fehler unter Windows 8.1 (hier allerdings ein anderer Compuer) nicht auftritt und man vielleicht das offizielle Update abwarten sollte!
    Vielleicht ist dann alles schick?!

    Ich meld mich dann im nächsten Monat!

    Andreas

    Freitag, 27. September 2013 15:34
  • Hallo!

    Weil, "Vielleicht ist dann alles schick?!" ist nicht so! Leider!!

    Als erstes hier mal die ganze HTA

    <head>
    
    
    <HTA:APPLICATION
      APPLICATIONNAME="Zeitnahme_Vereinsskat"
      ID="MyCommandApp"
      BORDER="thin"
      SYSMENU="no"
      MAXIMIZEBUTTON="no"
      MINIMIZEBUTTON="no"
      ICON="Timer.ico"
      SCROLL="no"
      SINGLEINSTANCE="yes"
      CONTEXTMENU="no"
      SELECTION="no"
    />
    
    <title>Zeitnahme Vereins-Skat</title>
    
    <SCRIPT language="VBScript">
    
    	Dim SpielStunden 	: SpielStunden = 1		' Spielzeit Stunden
    	Dim SpielMinuten 	: SpielMinuten = 45		' Spielzeit Minuten
    	Dim SpielzeitRunden : SpielzeitRunden  = 5	' 1, 5, 10, 15, 30  nie 0
    	Dim PBHTML 									' Fortschritsanzeige (rProgressbar)
    	Dim PBWartezeit
    	Dim PBHoehe
    	Dim PBBreite
    	Dim PBText
    	Dim PBRahmen
    	Dim PBUnloadedColor
    	Dim PBLoadedColor
    	Dim PBWarnung
    	Dim PBStartZeit
    	Dim PBMinuten 		: PBMinuten = Round((Minute(Now()) + (SpielzeitRunden / 2))  / SpielzeitRunden)  * SpielzeitRunden	' aufrunden auf "SpielzeitRunden"
    	Dim PBTimerID1
    	Dim StartMinute 	: StartMinute = Minute(Now())
    	Dim StartZeit 		: StartZeit = CDate(Time)
    	Dim EndZeit 		: EndZeit = DateAdd("n",((SpielStunden * 60) - StartMinute + PBMinuten + SpielMinuten), StartZeit)	
    	Dim EndMusik		: EndMusik = "Ende" & (Round(CDate(Now() + Hour(Now())))) Mod 5 & ".mp3" 							
    	
    	Sub Window_OnLoad
    		window.resizeTo 500,200
    		' Progress Bar Settings
    		PBWartezeit = ((SpielStunden * 3600) + (SpielMinuten * 60)  - (Minute(Now()) * 60) + (PBMinuten * 60)) 		
    		PBHoehe = 40						' Progress Höhe
    		PBText = 20							' Text Höhe
    		PBBreite= 380 						' Progress Breite
    		PBUnloadedColor="ForestGreen"		' Farbe noch vorhandene Zeit
    		PBLoadedColor="Blue"				' Farbe abgelaufene Zeit
    		PBRahmen="DimGray"					' Farbe Rahmen
    		
    		' Bitte nie ändern!
    		PBStartZeit = Now						
    		rProgressbar
    		PBTimerID1 = window.setInterval("rProgressbar", 1000)
    		End Sub
    
    	Sub rProgressbar
    		PBHTML = ""
    		PBSecsPassed = DateDiff("s",PBStartZeit,Now)
    		PBHouersToGo = Int((PBWartezeit - PBSecsPassed) / 3600)
    		PBMinsToGo =  Int(((PBWartezeit - PBSecsPassed) / 60) - (PBHouersToGo *60))
    		PBSecsToGo = Int((PBWartezeit - PBSecsPassed) - (PBMinsToGo * 60) - (PBHouersToGo *3600))
     		
    		PBWarnung = "Blue" & ">"
    		
    		if PBHouersToGo < 10 then
    			PBHouersToGo = "0" & PBHouersToGo 
    		end if
    		if PBMinsToGo < 10 then
    			PBMinsToGo = "0" & PBMinsToGo 
    		end if
    		if PBSecsToGo < 10 then
    			PBSecsToGo = "0" & PBSecsToGo 
    		end if
    		if PBHouersToGo <= 0 and PBMinsToGo < 15 then
    			PBWarnung = "red" & ">" & " <strong>"
    			PBLoadedColor="red"
    		end if
    		if PBHouersToGo <= 0 and PBMinsToGo < 5 then
    			PBWarnung = "FireBrick" & ">" & " <strong>"
    			PBLoadedColor="FireBrick"
    		end if
    		PBLoadedWidth = (PBSecsPassed / PBWartezeit) * PBBreite
    		PBUnloadedWidth = PBBreite - PBLoadedWidth
    		PBHTML = PBHTML & "<table border=1 bordercolor=" & PBRahmen & " cellpadding=0 cellspacing=0 width=" & PBBreite & "><tr>"
    		PBHTML = PBHTML & "<th width=" & PBLoadedWidth & " height=" & PBHoehe & "align=left bgcolor="  & PBLoadedColor & "></th>"
    		PBHTML = PBHTML & "<th width=" & PBUnloadedWidth & " height=" & PBHoehe & "align=left bgcolor="  & PBUnLoadedColor & "></th>"
    		PBHTML = PBHTML & "</tr></table><br>"
    		PBHTML = PBHTML & "<table border=0 cellpadding=0 cellspacing=0 width=" & PBBreite & "><tr>"
    		PBHTML = PBHTML & "<td align=center width=" & PBBreite & "% height=" & PBText & ">" & "<font color=" & PBWarnung & PBHouersToGo & ":" & PBMinsToGo & ":" & PBSecsToGo & " Zeit bis Ende!</td>"
    		PBHTML = PBHTML & "</tr></table>"
    		progressbar.InnerHTML = PBHTML
    		PBHTML = PBHTML & "<table border=0 cellpadding=0 cellspacing=0 width=" & PBBreite & "><tr>"
    		PBHTML = PBHTML & "<td align=center width=" & PBBreite & "% height=" & PBText & ">" & "<strong>" & FormatDateTime(EndZeit, 4) &" Uhr" & " ist Schluß!" & " Es wird " & FormatDateTime(PBWartezeit / 86400, 4) & " gespielt!</td>"
    		PBHTML = PBHTML & "</tr></table>"
    		progressbar.InnerHTML = PBHTML
    		If PBHouersToGo = 0 AND PBMinsToGo = 15 AND PBSecsToGo = 1 then
    			Warnungen1
    		end if
    
    		If PBHouersToGo = 0 AND PBMinsToGo = 5 AND PBSecsToGo = 1 then
    			Warnungen2
    		end if
    
    		If PBHouersToGo = 0 AND PBMinsToGo = 0 AND PBSecsToGo = 1 then
    			Warnungen3
    		end if
    
    		if DateDiff("s",PBStartZeit,Now) >= PBWartezeit then
    			StopTimer
    			DoAction
    		end if
    	End Sub
    	Sub Warnungen1
    		Set WshShell = CreateObject("WScript.Shell")
    		Return = WshShell.Run("Noch15Minuten.mp3",0,False)
    		Return = WshShell.Run("Warnung15min.hta",5,False)
    	End Sub
    	Sub Warnungen2
    		Set WshShell = CreateObject("WScript.Shell")
    		Return = WshShell.Run("Noch5Minuten.mp3",0,False)
    		Return = WshShell.Run("Warnung5min.hta",5,False)
    		End Sub
    	Sub Warnungen3
    		Set WshShell = CreateObject("WScript.Shell")
    		Return = WshShell.Run("Spielzeitbeendet.hta",5,False)
    	End Sub
    	Sub StopTimer
    		window.clearInterval(PBTimerID)
    	End Sub
    	Sub DoAction
    		Set WshShell = CreateObject("WScript.Shell")
    		Return = WshShell.Run(EndMusik,0,False)
    		Self.close
    	End Sub
    	Sub CancelAction
    		On Error Resume Next
    		Self.Close
    	End Sub
    </SCRIPT>
    <body>
    <!--Verhindert HTML-Aktualisierung und/oder Beenden mit ESC; F5 und/oder AltF4-->
    <SCRIPT LANGUAGE="JavaScript"> 
    function document.onkeydown() {  
    	var alt=window.event.altKey; 
    		if (event.keyCode==116 || event.keyCode==27 || alt && event.keyCode==115) { 
    		event.keyCode=0; 
    		event.cancelBubble=true; 
    		return false; 
    	} 
    } 
     </SCRIPT> 
     
    <div align="center">
    <strong><font color="yellow"> &diams; <font color="red"> &hearts; <font color="green"> &spades; <font color="black"> &clubs; Zeitnahme Vereins-Skat!<font color="black"> &clubs; <font color="green"> &spades; <font color="red"> &hearts; <font color="yellow"> &diams; </strong><br>.
    <span id = "progressbar"></span><br>
    </div>
    </body>

    Auf Empfehlung, wenn auch nur ähnlich, einer Seite (die ich hier nicht posten darf)

    habe ich

    .hta statt mit "mshta.exe in c:\windows\sysWOW64" mit "mshta.exe in c:\windows\system32" verknüpft!

    Jetzt bekomme ich keine Fehlermeldungen!

    Leider bleibt sie jetzt bei 15:01, also bei

    <...
    		If PBHouersToGo = 0 AND PBMinsToGo = 15 AND PBSecsToGo = 1 then
    			Warnungen1
    		end if
    
    ...


    oder

    ...
    	Sub Warnungen1
    		Set WshShell = CreateObject("WScript.Shell")
    		Return = WshShell.Run("Noch15Minuten.mp3",0,False)
    		Return = WshShell.Run("Warnung15min.hta",5,False)
    	End Sub...

    stehen, einfach stehen ohne Fehlermeldung!

    Die MP3´s und HTA´s befinden sich im selben Verzeichnis!

    Leider habe ich nur einmal die Woche Zugriff auf diesen Computer!

    Die Frage die ich mir immer noch stelle ist:

    Warum geht es bei mir (X86; alter PC (Pentium 4); WIN XP und WIN7 und WIN8 und WIN 8.1) und dort (64Bit; neuer PC; WIN8 und WIN 8.1) nicht???

    Eigentlich habe ich aufgegeben, aber vielleicht hat ja einer eine Idee!

    Andreas

    Mittwoch, 30. Oktober 2013 07:23
  • Hallo!

    Auf dem Computer keine Fehlermeldung!

    Der bleibt einfach stehen bei 15:01; 1. WSH Aufruf; einfach stehen!

    0Ahnung!

    Andreas

    Mittwoch, 6. November 2013 07:32