| |
|
|
- page 1 - |
|
Walter | allô! Habe folgendes Problem: je voudrais verhindern, dass dans un Eingabefeld Text hineinkopiert volonté peux. Lösche en supplément dans mon Programme qui Zwischenablage mittels clearclip, sobald cela Eingabefeld den Concentrer erhält. cela funktioniert. Doch scheint es quand même possible trop son, sur un d'autre Programme une Text (mittels DDE? ) dans cet champ einzufügen. Ist cela possible? comment peux je cela verhindern? |
|
|
| |
|
|
|
« cette Beitrag wurde comme Solution gekennzeichnet. » |
|
Matthias Arlt | autre Possibilité: Éditer subclassen et WM_PASTE intercepter
proc EditSubclass
parameters edit&, Msg&, wParam&, lParam&
set("Fastmode",1)
si Msg& = 770''WM_PASTE
return
endif
return external("User32","CallWindowProcA",owp&,edit&, Msg&, WParam&, LParam&)
set("Fastmode",0)
endproc
declare owp&,edit&
cls
edit& = create("MultiEdit",%hwnd,»,100,30,200,100)
owp&=external("User32","SetWindowLongA",edit&,-4, ProcAddr(EditSubclass,4))
tandis que 1
waitinput
Wend
Salut Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 15.03.2020 ▲ |
|
|
|
|
|
p.specht
| Verstehe je toi richtig: Text mais devrait weiterhin eingegeben volonté peut. ou bien?
Mir fällt momentan seulement le vieux aus BASIC abgeleitete Befehl Contribution un
cls:declare x$:imprimer " Text: "; Contribution x$ imprimer x$:waitinput:end
un. dans XProfan-11.2a peux on là nix aus qui Zwischenablage reintun. Klappt simple pas! |
|
|
| Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 14.03.2020 ▲ |
|
|
|
|
Walter | oui, un Text soll eingegeben volonté peut. und dir dabei um un multiedit, dans cela aussi un längerer Text eingetragen volonté peux. Allerdings soll rien hineinkopiert volonté peut. qui Zwischenablage ist c'est pourquoi blockiert. maintenant hab je gesehen, il y a z.B. une "Clipboardmaster" [...] qui Textes évident selbständig (sans qui Zwischenablage) dans Felder eines anderen Programms transportiert. Könnte sur DDE courir (wird ici oui aussi comme Possibilité zum Fernsteuern beschrieben) - doch mon Programme soll sich plan vers "Fernsteuern" / Text hineinkopieren wehren peut. alors Anti-DDE, sozusagen... |
|
|
| |
|
|
|
Matthias Arlt | autre Possibilité: Éditer subclassen et WM_PASTE intercepter
proc EditSubclass
parameters edit&, Msg&, wParam&, lParam&
set("Fastmode",1)
si Msg& = 770''WM_PASTE
return
endif
return external("User32","CallWindowProcA",owp&,edit&, Msg&, WParam&, LParam&)
set("Fastmode",0)
endproc
declare owp&,edit&
cls
edit& = create("MultiEdit",%hwnd,»,100,30,200,100)
owp&=external("User32","SetWindowLongA",edit&,-4, ProcAddr(EditSubclass,4))
tandis que 1
waitinput
Wend
Salut Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 15.03.2020 ▲ |
|
|
|
|
Walter | de Subclassing hab je bisher malheureusement je n'en sais rien. Nehme es mais juste comme Anlass, mich avec cela trop beschäftigen. Probiere je aujourd'hui encore aus! merci! |
|
|
| |
|
|
|
Walter | Funktioniert bestens! Herzlichen Dank!
maintenant muss je es seulement encore comprendre... |
|
|
| |
|
|
|
Matthias Arlt | c'est eigentlich droite simple. Beim insérer erhält cela Éditer-Contrôle qui Message WM_PASTE et qui la fenêtre-Procédure des Éditer-Controls reagiert ensuite entsprechend puis. ca soll im konkreten le cas verhindert volonté. alors tauschen wir qui originale la fenêtre-Procédure des Éditer-Controls entier simple aus, laisser là qui Message WM_PASTE quasi unbehandelt. Pour alle anderen Éditer-Messages greift ensuite wieder qui originale la fenêtre-Procédure...
Salut Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 15.03.2020 ▲ |
|
|
|
|
Walter | |
|
| |
|
|
|
E.T. |
proc EditSubclass
parameters edit&, Msg&, wParam&, lParam&
set("Fastmode",1)
si Msg& = 770''WM_PASTE
return
endif
return external("User32","CallWindowProcA",owp&,edit&, Msg&, WParam&, LParam&)
set("Fastmode",0)
endproc
dans cette Procédure wird mais qui "Fastmode" nie wieder abgeschaltet, là oui selbige toujours avant set("Fastmode",0) avec return sortir de wird |
|
|
| XProfan X3Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 15.03.2020 ▲ |
|
|
|
|
Matthias Arlt | Stimmt...cela set("Fastmode",0) ist à cette Stelle wirkungslos et entbehrlich. important ist oui seulement, qui set("Fastmode",1) erforderlich ist, quoi wiederum [avant dem SubClassing] aussi à anderer Stelle im Programme gesetzt volonté peux...et ggf. aussi sollte
Salut Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 15.03.2020 ▲ |
|
|
|
|
Walter | là je chez den Windows Api-Aufrufen gar pas durchblicke, habe je inzwischen aus qui Aider une weitere Version mittels subclass, subclassproc et Set("WinProc", 0) zustande gebracht, qui également funktioniert:
Lt. Aider wird qui SubClassProc defaultmäßig im FastMode aufgerufen, weswegen ici set("Fastmode",1) entfallen konnte.
merci nochmals à Matthias pour den Hinweis, dass cela Problem mittels Subclassing trop lösen ist! |
|
|
| |
|
|