AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

W7/64bit: osk.exe mit ShellExecute starten

Ein Thema von iphi · begonnen am 6. Jun 2011 · letzter Beitrag vom 29. Dez 2011
Antwort Antwort
Seite 1 von 2  1 2      
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#1

W7/64bit: osk.exe mit ShellExecute starten

  Alt 6. Jun 2011, 09:29
Hallo,

weiß jemand eine Lösung, wie man das virtuelle Keyboard von Windows (osk.exe) aus Delphi heraus in Win7/64 bit starten kann?

ShellExecute geht für osk.exe auf W7/64bit nicht:
Code:
ShellExecute(Handle,'open', 'osk.exe',nil, nil, SW_SHOWNORMAL) ;
=> "Windows Fehler Meldung: Das virtuelle Keyboard kann nicht gestartet werden."

Auf XP geht das hingegen problemlos.
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.746 Beiträge
 
Delphi 2007 Professional
 
#2

AW: W7/64bit: osk.exe mit ShellExecute starten

  Alt 6. Jun 2011, 09:48
ShellExecute geht für osk.exe auf W7/64bit nicht:
Code:
ShellExecute(Handle,'open', 'osk.exe',nil, nil, SW_SHOWNORMAL) ;
=> "Windows Fehler Meldung: Das virtuelle Keyboard kann nicht gestartet werden."
Ich hab beim Googeln folgendes gefunden:
http://blog.delphi-jedi.net/2010/11/...creenkeyboard/
http://blog.delphi-jedi.net/2008/05/...ss-and-oskexe/

HTH,
Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.081 Beiträge
 
Delphi 12 Athens
 
#3

AW: W7/64bit: osk.exe mit ShellExecute starten

  Alt 6. Jun 2011, 13:54
PS: Seit mindestens D2009 (oder war's D2010) gibt es im Delphi auch eine eigene Bildschirmtastaturkomponente.
In den JEDI ist (glaub ich) auch Eine drin und ebenfalls gibt es soeine Komponente von TMS (AdvTouchKeyboard).

(falls jemand auch mal nicht direkt das OSK nutzen möchte)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: W7/64bit: osk.exe mit ShellExecute starten

  Alt 6. Jun 2011, 14:20
Hallo iphi,

unter W7 schau Dir mal das ITextInputPanel interface an. Dazu mußt Du das Microsoft PenInputPanel als Typbibliothek importieren und Dir so die Interface-Unit erstellen lassen.
Damit funktioniert das eigentlich ganz gut.

Hier mal etwas Code:
Delphi-Quellcode:
    try
      FTextInputPanel := CoTextInputPanel.Create;
      if FTextInputPanel <> nil then
      begin
        SiUnit.LogDebug('Interface created');
        FTextInputPanel.Set_AttachedEditWindow(AEditorHandle);
        FTextInputPanel.Set_DefaultInPlaceState(InPlaceState_Expanded);
        FTextInputPanel.Set_DefaultInputArea(PanelInputArea_Keyboard);
        FTextInputPanel.Set_InPlaceVisibleOnFocus(Integer(true));
        FTextInputPanel.Set_PreferredInPlaceDirection(InPlaceDirection_Top);
      end;
    except
      on E: Exception do
      begin
        if SiUnit.IsOn(lvDebug) then
          SiUnit.LogException(E, 'Creating TextInputPanel Interface failed');
      end;
    end;
Damit springt das Keyboard an, sobald Du in ein Editfeld gehst.


Grüße,
Uli

Geändert von ULIK ( 6. Jun 2011 um 14:24 Uhr)
  Mit Zitat antworten Zitat
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#5

AW: W7/64bit: osk.exe mit ShellExecute starten

  Alt 6. Jun 2011, 19:51
Hallo Uli,

Zitat:
unter W7 schau Dir mal das ITextInputPanel interface an
Das hört sich interessant an! Gibt es dazu eine Delphi-Komponente?

Irgendwie stehe ich mit den Jedi-Komponenten auf Kriegsfuss.
Z.B, übersetzt die JwaShlOj.pas nicht, weil in untiger Zeile die Unit nicht gefunden wird:
Delphi-Quellcode:
uses
...
CommCtrl, {$IFDEF DELPHI6_UP}msxml,{$ENDIF DELPHI6_UP}
Wo bekomme ich denn die msxml.dcu her?

Zitat:
PS: Seit mindestens D2009 (oder war's D2010) gibt es im Delphi auch eine eigene Bildschirmtastaturkomponente.
Ich habe Delphi6 Personal. Kennt jemand eine Freeware-Tastaturkomponente dafür?

Danke, Thomas
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.081 Beiträge
 
Delphi 12 Athens
 
#6

AW: W7/64bit: osk.exe mit ShellExecute starten

  Alt 6. Jun 2011, 20:35
Wenn die MSXML-Unit fehlt, dann kannst/mußt du sie selber importieren.

Irgendwo im Delphi-Menü gibt es einen Punkt "Komponente importieren", wo du dir dann eine Typbibliothek ala "Microsoft XML ..." importierst und die erstellte PAS entsprechend abspeicherst.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: W7/64bit: osk.exe mit ShellExecute starten

  Alt 6. Jun 2011, 21:03
Fertige Delphi Komponente kenn ich für ITextInputPanel nicht. Aber Du mußt nur die entsprechende Typbibliothek importieren (das sollte auch mit D6 gehen).
Die Dll nach der Du schauen mußt heißt Microsoft PenInputPanel (tiptis.dll, wenn mich mein Gedächtnis nicht täuscht.) Ansonsten kann ich Dir morgen mal die von Delphi 2007 erzeugte Unit schicken. Könnte vieleicht auch noch funktionieren.

Grüße,
Uli
  Mit Zitat antworten Zitat
Steve1024

Registriert seit: 7. Sep 2008
3 Beiträge
 
Turbo Delphi für Win32
 
#8

AW: W7/64bit: osk.exe mit ShellExecute starten

  Alt 7. Jun 2011, 09:46
Ggf kann man das ShellExecute auch mit ausgeschaltetem WOW64 auprobieren. Da gibt es einen Windows Befehl. Mit diesem kann man die WOW64 Ordnerumleitungen ausschalten und somit wird dann die 64bit Version der Tastatur gestartet.
Wenn meine Vermutung richtig liegt, ist das ggf ein 32bit/64bit Problem.

Leider kenn ich den genauen Befehl gerade nicht (irgendwas mit DisableWOW64FolderRedirection oder so). Aber die MSDN hilft da gerne

Viel Glück noch.
  Mit Zitat antworten Zitat
iphi

Registriert seit: 13. Feb 2009
262 Beiträge
 
Delphi 7 Personal
 
#9

AW: W7/64bit: osk.exe mit ShellExecute starten

  Alt 9. Jun 2011, 10:57
Zitat:
Aber Du mußt nur die entsprechende Typbibliothek importieren (das sollte auch mit D6 gehen).
Die Dll nach der Du schauen mußt heißt Microsoft PenInputPanel (tiptis.dll, wenn mich mein Gedächtnis nicht täuscht.) Ansonsten kann ich Dir morgen mal die von Delphi 2007 erzeugte Unit schicken. Könnte vieleicht auch noch funktionieren.
Hallo Uli,

danke für die Tipps und das Angebot.

Ich habe nur Delphi6 Personal und bisher keine Möglichkeit gefunden, Type Libraries zu importieren. Da müsste es doch einen Wizzard geben. Wenn ja, wo müsste sich der denn verstecken?

Und ja, bitte schicke mir die von Delphi 2007 erzeugte Unit zu.

Gruß, Thomas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: W7/64bit: osk.exe mit ShellExecute starten

  Alt 9. Jun 2011, 11:01
IIRC war das in Delphi 6 unter "Komponente - ActiveX importieren", aus der Liste dann das Microsoft PenInputPanel auswählen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz