Allgemeine Fragen zur PROFAN Programmierung
Views (Heute): 249464 (10900)
  Suchen
 Zurück zur Übersicht
 AutorThema: Exception wenn SendString unter Windows 2000
Andy Marschner
Datum:17.09.01 08:12 Antwortenals Email verschicken (asmars@gmx.net) 


Wenn man das Beispiel "Notepad.prf" unter Windows 2000 laufen lässt, erzeugt der Befehl (z.B.) "SendString(0,"Hallo Welt!\n")" eine Exception - leider - unter Windows 98 funktioniert er wunderbar.

Ich habe schon versucht meine Anforderung via Zwischenablage zu lösen:

PutClip Text$
@External "USER32","SendMessageA",Handle&,$0302,0,0)

oder

PutClip Text$
@SendMessage(Handle&,$0302,0,0)

Doch scheint die Message WM_Paste nicht zu funktionieren, wenn sie von einem fremden Thread kommt.

Hat jemand eine Idee wie ich diese Funktion anders programieren könnte?


Roland G. Hülsmann
Datum:17.09.01 09:22 Antwortenals Email verschicken (rgh-soft@t-online.de) 


Hallo, würde es Dir etwas ausmachen, das Ganze mal mit der neuesten Betaversion (Interpreter) von 7.5 zu testen. Gerade "Sendstring" habe ich dort (bereits Beta II, wenn ich nicht irre) verbessert. Hier gibt es den Download dieser Betaversion. LIESMICH.TXT beachten!

http://www.rgh-soft.de/prof75.zip


Andy Marschner
Datum: 17.09.01 11:44 Antwortenals Email verschicken (asmars@gmx.net) 


Hi Roland

Danke für deinen Hinweis - das hab ich vergessen zu posten: ich habe gestern die Beta (ich glaub Beta 3) heruntergeladen und ausprobiert - dasselbe Ergebnis...
Habe die Beta nochmal runtergeladen, ist jetzt die 4 - ebenfalls eine Exception.

Ich hab dann nochmal etwas rumexperimentiert und habe anstatt
SendString(NotepadWin%,"Hallo Welt!")
dies geschrieben
SendString(%hwnd,"Hallo Welt!")

- und es ging! Profan sendete den String an das Fenster, welches gerade den Fokus hatte. Das war übrigens auch schon bei der Version 7 von Profan so: es war egal, was für ein Handle man sendstring angab...

Übrigens: um den Fokus auf ein bestimmtes Fenster zu bringen, verwendete ich @External("USER32","SetForegroundWindow",NotepadWin%).

Es ist wunderbar, denn nun kann ich mein Programm wahrscheinlich weiter entwickeln. Dennoch: So wie ich den Befehl Sendstring von der Beschreibung her verstehe, gibt man als Parameter das Fensterhandle wo man den String hin senden will an. Ich würde jedoch (jetzt) verstehen, dass nur ein Fenster, welches den Focus hat, auch "Tastatureingaben" empfangen kann. Setzt Sendstring den Fokus kurz um?



 Zurück zur Übersicht