Einfüg-Modus beim Starten eines Programmes
Moderator: Moderatoren
-
- Rekursionen-Architekt
- Beiträge: 237
- Registriert: Do, 14. Aug 2008 14:59
- Wohnort: Straelen
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 3 Mal
Einfüg-Modus beim Starten eines Programmes
Wie schalte ich den Einfügmodus beim Starten eines xbase-Programmes ein? Standardmäßig ist ja der Überschreibmodus eingeschaltet.
Viele Grüße
Dieter
Was man nicht versteht, besitzt man nicht.
Dieter
Was man nicht versteht, besitzt man nicht.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2825
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 96 Mal
- Danksagung erhalten: 13 Mal
Re: Einfüg-Modus beim Starten eines Programmes
Hallo, Dieter -
arbeitest Du mit XbpCRT() oder XbpDialog()? Bei reinen PM-Programmen läuft das Programm immer im Einfügemodus (Windows-Standard).
arbeitest Du mit XbpCRT() oder XbpDialog()? Bei reinen PM-Programmen läuft das Programm immer im Einfügemodus (Windows-Standard).
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
-
- Rekursionen-Architekt
- Beiträge: 237
- Registriert: Do, 14. Aug 2008 14:59
- Wohnort: Straelen
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 3 Mal
Re: Einfüg-Modus beim Starten eines Programmes
Hallo Georg,
ich arbeite im Gui-Modus mit xbpDialog-Fenstern.
Wenn ich bei Programmstart mit x= AppKeyState(xbeK_INS, TRUE ) den Einfügstatus prüfe, dann erhalte ich für x kein APPKEY_TOGGLED = 2. Das bedeutet, dass sich das Programm im Überschreibmodus befindet.
ich arbeite im Gui-Modus mit xbpDialog-Fenstern.
Wenn ich bei Programmstart mit x= AppKeyState(xbeK_INS, TRUE ) den Einfügstatus prüfe, dann erhalte ich für x kein APPKEY_TOGGLED = 2. Das bedeutet, dass sich das Programm im Überschreibmodus befindet.
Viele Grüße
Dieter
Was man nicht versteht, besitzt man nicht.
Dieter
Was man nicht versteht, besitzt man nicht.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Einfüg-Modus beim Starten eines Programmes
das ist wohl wegen Cl*pper so ...Dieter hat geschrieben:Wie schalte ich den Einfügmodus beim Starten eines xbase-Programmes ein? Standardmäßig ist ja der Überschreibmodus eingeschaltet.
versuche es mal damit ( evtl. 2 x aufrufen )
Code: Alles auswählen
#Define VK_INSERT 0x2D
DLLFUNCTION GetKeyState( nVirtKey ) USING STDCALL FROM USER32.DLL
FUNCTION InsertLock()
LOCAL aByte := GetKeyState( VK_INSERT )
RETURN aByte[ 1 ]
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 237
- Registriert: Do, 14. Aug 2008 14:59
- Wohnort: Straelen
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 3 Mal
Re: Einfüg-Modus beim Starten eines Programmes
Hallo Jimmy,
deine Function InsertLock() liefert bei jedem Aufruf .f. ( das 1. Bit von aByte ist 0 ). Das bedeutet hier nur, dass der Insert-Modus ausgeschaltet ist. Mit dieser Function kann man meiner Meinung nach den Insert-Modus nicht einschalten.
deine Function InsertLock() liefert bei jedem Aufruf .f. ( das 1. Bit von aByte ist 0 ). Das bedeutet hier nur, dass der Insert-Modus ausgeschaltet ist. Mit dieser Function kann man meiner Meinung nach den Insert-Modus nicht einschalten.
Viele Grüße
Dieter
Was man nicht versteht, besitzt man nicht.
Dieter
Was man nicht versteht, besitzt man nicht.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Einfüg-Modus beim Starten eines Programmes
hi,
es scheint als wenn ich bei "Insert" den Rest "vergessen" habe ...
hier ein Beispiel mit Numlock
statt VK_NUMLOCK 0x90
was gegen VK_INSERT 0x2D
getauscht werden müsste
https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
es scheint als wenn ich bei "Insert" den Rest "vergessen" habe ...
hier ein Beispiel mit Numlock
statt VK_NUMLOCK 0x90
was gegen VK_INSERT 0x2D
getauscht werden müsste
https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
Code: Alles auswählen
#define KEYEVENTF_EXTENDEDKEY 0x01
#define KEYEVENTF_KEYUP 0x02
DLLFUNCTION keybd_event( nVirtKey, nScanCode, nFlags, nExtra ) USING STDCALL FROM USER32.DLL
FUNCTION Numlock( lLock )
LOCAL nByte := GetKeyState( VK_NUMLOCK )
// if nByte[1] then NumLock is ON
IF lLock == NIL
RETURN nByte[ 1 ]
ELSEIF lLock .AND. !nByte[ 1 ] // Turn NumLock ON
keybd_event( VK_NUMLOCK, 69, KEYEVENTF_EXTENDEDKEY, 0 )
keybd_event( VK_NUMLOCK, 69, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0 )
ELSEIF !lLock .AND. nByte[ 1 ] // Turn NumLock OFF
keybd_event( VK_NUMLOCK, 69, KEYEVENTF_EXTENDEDKEY, 0 )
keybd_event( VK_NUMLOCK, 69, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0 )
ENDIF
RETURN nByte[ 1 ]
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 237
- Registriert: Do, 14. Aug 2008 14:59
- Wohnort: Straelen
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 3 Mal
Re: Einfüg-Modus beim Starten eines Programmes
Hallo Jimmy,
vielen Dank, damit ist das Problem gelöst!
vielen Dank, damit ist das Problem gelöst!
Viele Grüße
Dieter
Was man nicht versteht, besitzt man nicht.
Dieter
Was man nicht versteht, besitzt man nicht.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Einfüg-Modus beim Starten eines Programmes
Nachtrag : es scheint so als wenn die Function keybd_event() und mouse_event() nun endgültig unter Win 10 nicht mehr funktionieren.
statt dessen soll die Function SendInput() https://msdn.microsoft.com/de-de/librar ... 85%29.aspx verwendet werden mit den Structure(n)
MOUSEINPUT https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
INPUT https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
HARDWAREINPUT https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
statt dessen soll die Function SendInput() https://msdn.microsoft.com/de-de/librar ... 85%29.aspx verwendet werden mit den Structure(n)
MOUSEINPUT https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
INPUT https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
HARDWAREINPUT https://msdn.microsoft.com/de-de/librar ... 85%29.aspx
gruss by OHR
Jimmy
Jimmy
-
- Rekursionen-Architekt
- Beiträge: 237
- Registriert: Do, 14. Aug 2008 14:59
- Wohnort: Straelen
- Hat sich bedankt: 2 Mal
- Danksagung erhalten: 3 Mal
Re: Einfüg-Modus beim Starten eines Programmes
Hallo Jimmy,
das ist keine gute Nachricht, das riecht nach unnötiger Arbeit, wenn im alten Code viele API-Funktionen mit keybd_event() und mouse_event() eingesetzt werden. Ich muss meinen Code wohl schleunigst auf einem Win10-Rechner testen!
Warum wird die Abwärtskompatibilität von Software von Seiten Microsoft einfach so geopfert?
das ist keine gute Nachricht, das riecht nach unnötiger Arbeit, wenn im alten Code viele API-Funktionen mit keybd_event() und mouse_event() eingesetzt werden. Ich muss meinen Code wohl schleunigst auf einem Win10-Rechner testen!
Warum wird die Abwärtskompatibilität von Software von Seiten Microsoft einfach so geopfert?
Viele Grüße
Dieter
Was man nicht versteht, besitzt man nicht.
Dieter
Was man nicht versteht, besitzt man nicht.
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Einfüg-Modus beim Starten eines Programmes
naja ... Petzold ist ja noch NT Standard ...Dieter hat geschrieben:Warum wird die Abwärtskompatibilität von Software von Seiten Microsoft einfach so geopfert?
und NEIN ich ändere NICHT alle keybd_event() Aufrufe sondern ändere meinen DLLCALL ( den es nur 1 x gibt )
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Einfüg-Modus beim Starten eines Programmes
siehe Wissensbasis http://www.xbaseforum.de/viewtopic.php?f=16&t=8763
gruss by OHR
Jimmy
Jimmy