WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 12.09.2004, 22:00   #1
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard WSH (VBScript) - API Call....

Ich will von einem VB Script eine API Funktion aufrufen.

Nur irgendwie bekomm ich das nicht hin....

z.B. will ich folgende Funktion verwenden und so wird sie deklariert:
Declare Function LoadCursor Lib "user32.dll" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Any) As Long

Jedoch meldet der WSH beim Ausführen sofort einen Fehler.

Weiß jemand was ich falsch mache?

PS: es geht darum, den Mauszeiger auf die Sanduhr zu setzen, bzw. wenn das Script fertig ist, wieder auf den normalen Zeiger zurück zu setzen!
renew ist offline   Mit Zitat antworten
Alt 12.09.2004, 22:46   #2
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

hi !

für javascript hab ich dazu folgendes (bei www.codeproject.com) befunden:

JavaScript can be used to do some nifty client-side things, like changing the cursor. In fact, the solution is so simple, it's only about 2 lines of code.

All you need to do is to write a function like this:

function doHourglass()
{
document.body.style.cursor = 'wait';
}
Quite simple huh?

The next step is to get the web form to call that function when a post back occurs. Well, that is another very simple addition. This time, just add an event handler to your body tag in your page.

<body onbeforeunload="doHourglass();" onunload="doHourglass();">

Points of Interest
The first question you're probably asking is, "Why is there both an onbeforeunload and an onunload event handler?"
The reason for that is that if your app is being viewed in IE, it seems to prefer the onbeforeunload, whereas other browsers seem to prefer the onunload.

You might also be asking why there is no code to set the cursor back. Well, mainly because there is no need for it. As far as the browser is concerned, this is a new page, so it sets the mouse cursor back to the default pointer.
Biri ist offline   Mit Zitat antworten
Alt 12.09.2004, 23:08   #3
_m3
Inventar
 
Registriert seit: 24.09.2001
Beiträge: 7.335


Standard

@Biri: WSH != Internet Explorer

@Renew: Welchen Fehler?
____________________________________
Weiterhin zu finden auf http://martin.leyrer.priv.at , http://twitter.com/leyrer , http://www.debattierclub.net/ , http://www.tratschen.at/ und via Instant Messaging auf Jabber: m3 <ät> cargal.org .
_m3 ist offline   Mit Zitat antworten
Alt 13.09.2004, 08:51   #4
Hussl
Veteran
 
Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320


Standard

Hi, hab in den Google-Groups grad folgendes gefunden:
Zitat:
Würde gerne den Mauszeiger in eine Sanduhr verwandeln, während mein VBScript
Dateien kopiert:
const vbDefault=0, vbHourglass=11
Mousepoint=vbHourglass
...
usw.
WSH meldet zwar keinen Fehler, aber ändert den Mauszeiger auch nicht.
MfG
hermann
Die Antwort:
Zitat:
Hallo Hermann,

das von Dir beobachtete Verhalten ist ziemlich logisch. Ganz kurz: WSH
besitzt keine Benutzeroberfläche! Alle Aktivitäten bzw. Eigenschaften wie
Fenster hat Fokus, Mauszeigerform etc. beziehen sich aber immer auf
Anwendungsfenster. Wenn Dein Script also abläuft, von was sollte es denn den
Mauszeiger umschalten. Im Idealfall ist noch ein Windows-Desktop zu sehen.
Nun trifft aber Windows intern Vorkehrungen, dass nicht jedes Programm mal
kurz den Mauszeiger ändern kann, sondern nur für seinen eigenen Kontext. Das
kannst Du beobachten, wenn die Sanduhr bei einem Programm erscheint. Bewegst
Du den Mauszeiger aus dem Fenster, sollte die Sanduhr verschwinden
(andernfalls ist Windows abgestürzt).
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur.

http://www.chili-it.at
Hussl ist offline   Mit Zitat antworten
Alt 13.09.2004, 22:11   #5
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

oje, das WHS (Windwos Scripting Host, ich weiß, dass das nicht IE ist ), hab ich übersehen.

fg
-hannes
Biri ist offline   Mit Zitat antworten
Alt 14.09.2004, 10:11   #6
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Zitat:
Original geschrieben von Biri
oje, das WHS (Windwos Scripting Host, ich weiß, dass das nicht IE ist ), hab ich übersehen.

fg
-hannes
Naja, VBScript auf einer Website für Client-Side Scripts zu verwenden is ja eine Totsünde - oder?

@_m3
Sorry, hat ein bissl gedauert, da ich gestern ehrlich gesagt, vergessen habe.
Fehler ist der "Standard-WSH-Fehler":
Zitat:
Skript: ...\Desktop\outlook.vbs
Zeile: 1
Zeichen: 9
Fehler: Syntaxfehler
Code: 800A03EA
Quelle: Kompilierungsfehler in Microsoft VBScript
Und Zeile 1 ist natürlich die Deklaration der API Funktion.

Aber mich interessierts immer noch, wie ich aus VBS eine API Funktion aufrufen kann! (egal ob man damit jetzt das Problem lösen kann od. nicht )

@Hussl
Danke.
Das heißt wahrscheinlich ich könnte den Mauszeiger gar nicht verändern, weil Windows das unterbindet.
Den Code den du gepostet hast hab ich auch schon probiert - mit dem gleichen Ergebnis.

Hmm, evt. sollt ich eine Anwendung aus dem Ding machen. (VB 6.0 od VB.NET?!)
Nur hätt ich da gleich eine viel bessere Idee: Nämlich die Sanduhr soll während eines Kopiervorgangs übers Netzwerk angezeigt werden.
Da wärs ja viel besser ich hätt einen Progress-Bar.
Nur wie bekomm ich mit, wie weit der Kopiervorgang schon ist, um den Progressbar mit den richtigen Daten zu befüllen.....?
renew ist offline   Mit Zitat antworten
Alt 14.09.2004, 10:35   #7
Hussl
Veteran
 
Registriert seit: 08.02.2001
Alter: 41
Beiträge: 320


Standard

API-Funktionen lassen sich IMHO nicht von VBS aus aufrufen. Dazu müsste man ein VB-Prog schreiben, um es dann von da aus in VBS zu verwenden.
____________________________________
Nein, ich bin nicht die Signatur, ich putz hier nur.

http://www.chili-it.at
Hussl ist offline   Mit Zitat antworten
Alt 14.09.2004, 11:19   #8
renew
Inventar
 
Registriert seit: 22.10.2000
Alter: 41
Beiträge: 5.552


Standard

Zitat:
Original geschrieben von Hussl
API-Funktionen lassen sich IMHO nicht von VBS aus aufrufen. Dazu müsste man ein VB-Prog schreiben, um es dann von da aus in VBS zu verwenden.
Naja, da kann ich dann gleich bei dem VB Programm bleiben.

Weil in meinem Fall würde es keinen Sinn machen, ein selbst geschriebenes Programm mit VBS zu steuern.

Aber danke, ich hab mir sowas schon fast gedacht, aber war aber absolut nicht sicher.
renew ist offline   Mit Zitat antworten
Alt 14.09.2004, 13:32   #9
Biri
Hero
 
Registriert seit: 04.09.2001
Beiträge: 894


Standard

Zitat:
Naja, VBScript auf einer Website für Client-Side Scripts zu verwenden is ja eine Totsünde - oder?
stimmt, wenns wo anders außer am IE funktionieren soll.
Biri ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 22:26 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag