User Passwort
 Passwort speichern Passwort vergessen?
 
 
 
 Alle Foren
 PDA-Dev :: Windows Mobile
 Windows Mobile - Allgemeines
 Tastatur (SIP) einblenden ohne Menü
Vorherige Seite
Autor Vorheriges Thema Thema Nächstes Thema
Seite: von 3

nr76

PDA-Programmierer


23 Beiträge

Erstellt  am: 04.02.2008 :  14:40:24 Uhr  Profil anzeigen  Besuche nr76's Homepage  Antwort mit Zitat
Danke. War ich zu ungenau, brauchst du noch weitere Informationen?
Gruß
NR
Zum Anfang der Seite

robert.wachtel

robert.wachtel

PDA-Spezialist


301 Beiträge

Erstellt  am: 04.02.2008 :  15:09:46 Uhr  Profil anzeigen  Autor eine Email senden  Besuche robert.wachtel's Homepage  Antwort mit Zitat
Nun ja, ich kann ja nicht in Deinen Code reinsehen.
Ich kann nur sagen, dass ich in meinen Anwendungen keine Probleme habe, die Tastatur mit der geposteten Methode ein- oder auszublenden - und halt auch nur das. Das restliche Verhalten meiner Applikationen zeigt sich davon ansonsten unbeeindruckt...

Viele Grüße aus Köln
Robert Wachtel
http://blog.robertsoft.de
Zum Anfang der Seite

nr76

PDA-Programmierer


23 Beiträge

Erstellt  am: 04.02.2008 :  15:26:50 Uhr  Profil anzeigen  Besuche nr76's Homepage  Antwort mit Zitat
Hallo!
Zum Testen habe ich die Messageboxen mitreingenommen. Je nachdem ob ich die Tastatur jetzt anzeigen oder ausblenden möchte, führe ich show bzw. hide durch.
Hier meine Klasse:
public class Sip
{
[DllImport("coredll.dll")]
private static extern int SipShowIM(SIPStatus i);
[DllImport("coredll.dll")]
private static extern bool SipSetInfo(ref SIPINFO pSipInfo);
[DllImport("coredll.dll")]
private static extern bool SipGetInfo(ref SIPINFO pSipInfo);
private bool pvtVisible = false;
private enum SIPStatus
{
SIPF_OFF = 0,
SIPF_ON
}
private struct SIPINFO
{
public Int32 cbSize;
public Int32 fdwFlags;
public RECT rcVisibleDesktop;
public RECT rcSipRect;
public Int32 dwImDataSize;
public Int32 pvImData;
}
private struct RECT
{
public Int32 left;
public Int32 top;
public Int32 right;
public Int32 bottom;
}
// Mostrar el SIP
public static void Show()
{
MessageBox.Show("SHOW:" + SIPStatus.SIPF_ON);
SipShowIM(SIPStatus.SIPF_ON);
}
// Ocultar el SIP
private static void Hide()
{
MessageBox.Show("HIDE:" + SIPStatus.SIPF_OFF);
SipShowIM(SIPStatus.SIPF_OFF);
}
public void SetPosition(Int32 top)
{
SIPINFO mySi = new SIPINFO();
bool result = true;
mySi.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(typeof(SIPINFO));
result = SipGetInfo(ref mySi);
mySi.rcSipRect.top = top;
mySi.rcSipRect.bottom = top + 80;
result = SipSetInfo(ref mySi);
}
public bool Visible
{
get
{
return pvtVisible;
}
set
{
if (value == true)
{
SipShowIM(SIPStatus.SIPF_ON);
}
else
{
SipShowIM(SIPStatus.SIPF_OFF);
}
pvtVisible = value;
}
}
}
Gruß
NR
Zum Anfang der Seite

robert.wachtel

robert.wachtel

PDA-Spezialist


301 Beiträge

Erstellt  am: 04.02.2008 :  16:09:56 Uhr  Profil anzeigen  Autor eine Email senden  Besuche robert.wachtel's Homepage  Antwort mit Zitat
In dem geposteten Code-Abschnitt kann ich keinen gravierenden Fehler sehen (bis auf die Tatsache, dass die Methode Hide nicht public ist).
Wie rufst Du denn die Methoden auf?
Hier mal ein auf die Kernfunktionalität gekürztes und getestetes Beispiel (mit einer Form mit zwei Buttons - btnShowSIP und btnHideSIP )
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace TestSIP.CE {
public partial class frmMain : Form {
public frmMain() {
InitializeComponent();
}
private void btnShowSIP_Click(object sender, EventArgs e) {
Sip.Show();
}
private void btnHideSIP_Click(object sender, EventArgs e) {
Sip.Hide();
}
}
public class Sip {
[DllImport("coredll.dll")]
private static extern int SipShowIM(SIPStatus i);
private enum SIPStatus {
SIPF_OFF = 0,
SIPF_ON
}
public static void Show() {
SipShowIM(SIPStatus.SIPF_ON);
}
public static void Hide() {
SipShowIM(SIPStatus.SIPF_OFF);
}
}
}

Viele Grüße aus Köln
Robert Wachtel
http://blog.robertsoft.de

Bearbeitet von: robert.wachtel am: 04.02.2008 16:51:02 Uhr
Zum Anfang der Seite

nr76

PDA-Programmierer


23 Beiträge

Erstellt  am: 04.02.2008 :  16:30:07 Uhr  Profil anzeigen  Besuche nr76's Homepage  Antwort mit Zitat
Besten Dank, ich komme der Sache schon näher. Ich hatte statt Sip.show() nur hide() und show() angegeben. Bei mir wird aber immer noch nicht die Tastatur ausgeblendet. Ich schaue mir das morgen weiter an.
Gruß
NR
Zum Anfang der Seite

nr76

PDA-Programmierer


23 Beiträge

Erstellt  am: 05.02.2008 :  08:46:33 Uhr  Profil anzeigen  Besuche nr76's Homepage  Antwort mit Zitat
Guten Morgen!
Das Beispiel funktioniert wunderbar, nur leider gibt es hier wohl ein Mißverständnis. Das Ein- und Ausblenden der Tastatur selbst funktioniert auch, wenn ein InputPanel eingefügt wird und die Eigenschaft Enabled auf true bzw. false gesetzt wird. Ich brauche die Tastatur aber gar nicht und möchte daher das Symbol dafür ausblenden. Geht das auch mit einer SIP-Funktion? Danke.
Gruß
Nadine
Zum Anfang der Seite

Aikieugen

PDA-Spezialist


435 Beiträge

Erstellt  am: 05.02.2008 :  10:30:02 Uhr  Profil anzeigen  Autor eine Email senden  Besuche Aikieugen's Homepage  Antwort mit Zitat
Zum Anfang der Seite

nr76

PDA-Programmierer


23 Beiträge

Erstellt  am: 05.02.2008 :  11:03:40 Uhr  Profil anzeigen  Besuche nr76's Homepage  Antwort mit Zitat
Hallo!
Danke, aber kann ich das nicht auch aus der coredll.dll ziehen? Funktioniert leider immer noch nicht.
Gruß
Nadine
Zum Anfang der Seite

bazonga

Neumitglied


1 Beitrag

Erstellt  am: 19.03.2010 :  15:57:09 Uhr  Profil anzeigen  Autor eine Email senden  Antwort mit Zitat
Nur eines verstehe ich nicht.
Ich habe den Code als public class unter vb.net 2008 übernommen und wollte die Tastatur nun aus einem Form heraus mit SIP.show() anzeigen. Nix da, mir wird nur SIP.RECT angeboten.
Kann mir jemand mal die korrekte Syntax nennen, wie ich es verwenden kann?
Also wie ich die SUB show() in der CLASS SIP anspreche?
Danke und Gruß
Volker
Zum Anfang der Seite

AgentBignose

PDA-Programmierer


38 Beiträge

Erstellt  am: 18.05.2010 :  17:25:00 Uhr  Profil anzeigen  Autor eine Email senden  Besuche AgentBignose's Homepage  Antwort mit Zitat
Denke du musst so vorgehen:
Rechtsklick aufs Porjekt Klasse hinzufügen.
Die Klasse nennst du SIP
Dort kopierst du den Code aus dem ersten Post rein löschst Class und End Class die gibts sonst doppelt werden automatisch generiert und schreibst als erste Zeile:
Imports System.Runtime.InteropServices
Dann dürften keine Errors mehr gelistet werden.
So nun zum aufrufen:
In deinem Quelltext:
Dim newSIP As SIP
SIP.Show()
bzw.
SIP.Hide()
Dim newSIP

Bearbeitet von: AgentBignose am: 18.05.2010 17:26:14 Uhr
Zum Anfang der Seite
Seite: von 3 Vorheriges Thema Thema Nächstes Thema  
Vorherige Seite
Springe nach:
 
  Bookmark & Share  
 
 
 
  Tags  
   
 

 



pda-dev.de

Quicklinks: Foren-Übersicht | Developer-News | Suche | Impressum

© just-works! Software

Zum Anfang der Seite

Snitz Forums 2000