Tastatur automatisch öffnen; txt.Files schreibgeschützt
Ergebnis 1 bis 17 von 17
  1. hello

    ich habe in meinem programm ein dialogfenster um ein passwort einzugeben. jetzt möchte ich gerne, dass sobald dieses dialogfenster gestartet wurde, automatisch die tastatur erscheint.. und sobald ein button im dialogfenster gedrückt wurde soll sie wieder verschwinden.. gibts so was?

    noch eine zweite frage:
    wie kann ich ein txt schreibgeschützt ablegen?

    verwende dazu folgenen code...

    Code:
    FILE *stream;
    stream = fopen(pfad,"w+t);
    fwrite(....
    0
     

  2. Ja natürlich, das gibt es selbstverständlich.
    du musst also nur ein Onclick und OnInitDlg handler benutzen welche die SIP triggern.
    Code:
    IInputMethod::Showing
    This method is implemented to perform any initialization before the input panel window is displayed.

    Code:
    HRESULT Showing( void );
    Return Values
    An appropriate HRESULT value is returned.

    Code:
    IInputMethod::Hiding
    This method is implemented to perform any saving routines before the input panel is hidden.

    Code:
    HRESULT Hiding( void );
    Return Values
    An appropriate HRESULT value is returned.

    Remarks
    This method is called by the system when the user toggles the visible state of the input panel off. Programmatically, this occurs when the SIPF_ON flag is toggled off in the SIPINFO structure. Hiding the input panel allows the user to see more of the current application. The input panel is hidden upon return from this call. Use this method to save any data the input method (IM) needs to display when the input panel becomes visible again. The data is used to reinitialize the input panel and IM in the IInputMethod::Showing method.
    also kannst du mit Hiding und Showing das tun, was du möchtest.

    ja, du kannst eine Textdatei schreibgeschützt speichern, selbstverständlich.
    0
     

  3. wow

    ich hab mich in den letzten wochen ja scho ein wenig in evc++ reingearbeitet, aber das ist mir zu hoch..
    ich habe zu jeder dialogbox eine messageabfrage gemacht wo je nach gedrückten button etwas anderes aufgerufen wird.
    kannst du mir bitte noch etwas weiterhelfen?habe es versucht.. doch die headerdatei sip.h findet er nicht...

    ja, du kannst eine Textdatei schreibgeschützt speichern, selbstverständlich.
    und wie? muss ich eine eigenschaft ändern? oder was muss ich beachten?
    0
     

  4. nun, du kannst theoretisch doch einfach bei den knopfaufrufen das Hiding benutzen, oder? sieh mal in den beispielen nach, da sind auch ein paar wo das benutzt wird. die sip.h musst du noch #include

    ich hoffe das hilft dir weiter
    0
     

  5. sorry nochmal..

    und die txt-datei auf schreibgeschützt?
    0
     

  6. sieh mal in den beispielen nach
    wo finde ich die?

    hab versucht zuerst sid.h zu includen und dann erst sip.h, aber er findet sip noch immer nicht...
    0
     

  7. du kannst nicht beim erstellen einer datei diese schon als schreibgeschützt markeiren, sonst kannst du ja nix mehr reinschrieben, ne?

    schreib die datei normal und dann benutz die Methode:

    CFile::SetStatus
    Code:
    // Example for the CFile::SetStatus method.
    TCHAR* pFileName = _T("test.dat");
    extern BYTE newAttribute;
    CFileStatus status;
    CFile::GetStatus( pFileName, status );
    status.m_attribute = newAttribute;
    CFile::SetStatus( pFileName, status );
    hier der steht alles was du dafür brauchst:

    Zitat Zitat von
    Microsoft Foundation Class Library for Windows CE
    CFile::GetStatus
    This method retrieves the status of an open file.

    The first implementation of GetStatus retrieves the status of the open file associated with this CFile object. It does not insert a value into the m_szFullName data member.

    The static implementation gets the status of the named file and copies the file name to m_szFullName. This method obtains the file status from the directory entry without actually opening the file. It is useful for testing the existence and access rights of a file.
    Code:
    BOOL GetStatus( 
    CFileStatus& rStatus ) 
    const;
    Code:
    static BOOL PASCAL GetStatus( 
    LPCTSTR lpszFileName, 
    CFileStatus& rStatus );
    Parameters
    rStatus
    Specifies a reference to a user-supplied CFileStatus structure that receives the status information. The CFileStatus structure has the following fields:
    CTime m_ctime The date and time the file was created.
    CTime m_mtime The date and time the file was last modified.
    CTime m_atime The date and time the file was last accessed for reading.
    LONG m_size The logical size of the file in bytes, as reported by the DIR command.
    BYTE m_attribute The attribute byte of the file.
    TCHAR m_szFullName[_MAX_PATH] The absolute filename in the Windows character set.
    lpszFileName
    Specifies a string in the Windows character set that is the path to the desired file. The path can be relative or absolute, but cannot contain a network name.

    Return Value
    TRUE if the status information for the specified file is successfully obtained; otherwise, it is FALSE.

    Remarks
    The m_attribute is the file attribute. The Microsoft Foundation Classes for Windows CE provide an enum type attribute so that you can specify attributes symbolically:
    Code:
    enum Attribute {
       normal =    0x00,
       readOnly =  0x01,
       hidden =    0x02,
       system =    0x04,
       volume =    0x08,
       directory = 0x10,
       archive =   0x20
       };
    Code:
    Example
    // Example for the CFile::GetStatus method.
    CFileStatus status;
    extern CFile cfile;
    if( cfile.GetStatus( status ) )    // A virtual member function.
      {
        #ifdef _DEBUG
          afxDump << "File size = " << status.m_size << "\n";
        #endif
      }
    TCHAR* pFileName = _T("test.dat");
    if( CFile::GetStatus( pFileName, status ) )   // A static function.
      {
        #ifdef _DEBUG
          afxDump << "Full file name = " << status.m_szFullName << "\n";
        #endif
      }
    See Also
    CFile::SetStatus, CTime


    Zitat Zitat von Microsoft Foundation Class Library for Windows CE
    CFile::SetStatus
    This method sets the status of the file associated with this file location.
    Code:
    static void SetStatus( 
    LPCTSTR lpszFileName, 
    const CFileStatus& status );
    Parameters
    lpszFileName
    Specifies a string that is the path to the desired file. The path can be relative or absolute but cannot contain a network name.
    status
    Specifies the buffer containing the new status information. Call the GetStatus member function to prefill the CFileStatus structure with current values, then make changes as required. If a value is zero, then the corresponding status item is not updated. See the GetStatus member function for a description of the CFileStatus structure.
    Remarks
    To set the time, modify the m_mtime field of status.

    Please note that when you make a call to SetStatus in an attempt to change only the attributes of the file, and the m_mtime member of the file status structure is nonzero, the attributes may also be affected; changing the time stamp may have side effects on the attributes. If you want to only change the attributes of the file, first set the m_mtime member of the file status structure to zero and then make a call to SetStatus.
    Code:
    Example
    // Example for the CFile::SetStatus method.
    TCHAR* pFileName = _T("test.dat");
    extern BYTE newAttribute;
    CFileStatus status;
    CFile::GetStatus( pFileName, status );
    status.m_attribute = newAttribute;
    CFile::SetStatus( pFileName, status );
    See Also
    CFile::GetStatus
    0
     

  8. ok das mit dem file sollte ich hinkriegen... vielen dank

    aber nochmal zurück zu den scheiss headerdateien..

    es erkennt weder sid.h noch sip.h
    einzig sipapi.h wird erkannt, aber die enthält nichts wie IInputMethod.
    kannst du mir mal den link zu einem beispiel senden?

    oder reicht es nicht wenn ich sie einfach so include #include<sid.h> #include<sip.h>?

    i gloube i muess mau eis ga rouche
    0
     

  9. ich hab das beispiel aus meiner hilfe-datenbank. such doch mal in der hilfe zum eMbedded VC++ nach InputMethod::Hiding
    0
     

  10. hab ich gemacht, komme aber nicht weiter.. hast du das schon mal gebraucht? und funktioniert es?
    0
     

  11. nein ich habe bischer noch nichts mit der SIP gemacht.
    eigentlich müsste es klappen...
    ich such dir grad ein smaple raus wo das gemacht wird.
    das projekt MFC\wakeup benutzt die SHInitExtraControls(); um die SIP einzuschalten. vielleicht solltest du dir mal die dokumentation dazu ansehen. in diesem projekt bleibt jedoch die SIP stetig angezeigt, das willst du ja nicht. also sieh dir an, wie die SHInitExtraControls(); arbeitet.
    das projekt der beispiele Win32\shell benutzt jedoch verschiedene sachen auch noch, die dir vielleicht nützlich sind für dein vorhaben.

    hier ist die dokumentation, die du benötigst, es geht viel einfach als handlers zu definieren, nähmlich in den dialog-controls selbst:
    Zitat Zitat von Writing Applications for Pocket PC 2002
    WC_SIPPREF
    The WC_SIPPREF control can be incorporated into a dialog box to help manage the state of the input panel. It should be added as the last control in your dialog box template. The following code snippet provides an example of a WC_SIPPREF control.
    Code:
    CONTROL         "",-1,WC_SIPPREF, NOT WS_VISIBLE,-10,-10,5,5
    If this control is included in a dialog box, the input panel is raised whenever an input control receives focus. When the control loses focus, the input panel is lowered. When using this control, context menu support is automatic. The following controls are defined as input controls:

    Edit
    CAPEDIT
    Combo boxes
    Date time picker controls


    To use the WC_SIPPREF control, initialize it with the SHInitExtraControl function.
    also kannst du ganz einfach die SHInitExtraControl benutzen wie in Wakuep gezeigt, und dann bei deinen edit- und combo-boxen (wie im wakeup auch zu sehen ist, das neue control hinzufügen.
    0
     

  12. noch was:
    Zitat Zitat von Automating SIP Control with WC_SIPPREF
    The WC_SIPPREF control is used to implement default input panel behavior in a dialog box automatically. This means that, in general, any control in the system that accepts text input should display the input panel when the control gains focus and hide the input panel when the control loses focus.

    Note The WC_SIPPREF control should be used as the last control in a dialog box template. To use the WC_SIPPREF control, the application must first call SHInitExtraControls.

    When the WC_SIPPREF control is created, it enumerates all sibling controls. Also, WC_SIPPREF implements the correct input panel behavior for each of the following controls:

    Edit
    Combo box (CBS_DROPDOWN style only)
    CAPEDIT
    SysDateTimePick32

    When edit controls use WC_SIPPREF, they have automatic context menu support for Cut, Copy, Paste, and so on.
    0
     

  13. ich schaffs nicht..
    0
     

  14. willst du eine step-by-step anleitung?
    na gut....
    (ich gehe hier von einer MFC-applikation aus)
    öffne die [projektname].rc datei mit einem texteditor (notepad z.b.) und füge diese zeile:
    CONTROL "",-1,WC_SIPPREF,NOT WS_VISIBLE,-10,-10,5,5

    in den bereich von
    Code:
    /////////////////////////////////////////////////////////////////////////////
    //
    // Dialog
    //
    ...
    ...
    ...
    BEGIN
    ...
    ...
        CONTROL         "",-1,WC_SIPPREF,NOT WS_VISIBLE,-10,-10,5,5
    END
    ein. zwischen BEGIN und END stehen all die dialogelemente, und dieses neue unsichtbare control steuert die bildschirmtastatur. es ist wichtig, dass dieses CONTROL das letzte for dem END ist.


    so, und nun brauchen wir noch die Grundlagen für dieses extra-control.
    in der datei [projektname].cpp werden ja die ganzen windows-behaviours gesteuert.
    im folgenden abschnitt siehst du was ich meine:
    Code:
    /////////////////////////////////////////////////////////////////////////////
    // CWakeupApp initialization
    
    BOOL CWakeupApp::InitInstance()
    {
    	SHInitExtraControls();
    
    	// Standard initialization
    	CWakeupDlg dlg;
    	m_pMainWnd = &dlg;
    
    	int nResponse = dlg.DoModal();
    	
    	// Since the dialog has been closed, return FALSE so that we exit the
    	//  application, rather than start the application's message pump.
    	return FALSE;
    }
    der Aufruf von SHInitExtraControls(); ist es, der die Benützung des SIP-controls ermöglicht. Es muss vo den Standart-initialisationen erfolgen.


    so weit ich mich erinnere ist der Aygshell.h standart, aber wenn nicht, so musst du noch diese datei inlcuden und bei den projekteinstellungen, unter link die datei Aygshell.lib hinzufügen. aber eben, ich glaube die ist teil der MFC, also kein problem.


    so, ich hoffe nun klappt für dich alles.
    mit freundlichen grüssen

    Yves Jeanrenaud
    0
     

  15. hallo leute

    ich glaube ich habe gefunden wonach ich gesucht habe....

    ich verwende folgenden code:
    Code:
    #include "Aygshell.h"
    
    ...
    SHSipPreference&#40; m_hWnd, SIP_UP&#41;;
    zusätzlich muss man noch aygshell.lib linken..

    was man aber beachten sollte ist, dass aygshell erst ab pocket 3.0 verfügbar ist. und da ich ein projekt mache, welches auch auf älteren versionen (2.11) laufen sollte lass ich es lieber weg.

    trotzdem vielen dank für eure hilfen
    0
     

  16. nun danke Marc_ch, ich habe die aygshell auch schon erwähnt da ich mir nicht sicher war ob diese teil der MFC ist oder nicht.
    wie dem auch sei, dankesehr. also, wenn du die Aygshell.h und die aygshell.lib benutzt, kannst du sowohl
    Code:
    SHSipPreference( m_hWnd, SIP_UP);
    benutzen um dein eigenes SIP-verhalten festzulegen, oder auch das von mir beschriebene WC_SIPPREF control, womit dann Windows alles selbst übernimmt und sobald ein text-eingabefeld den fokus erhhält, die SIP-aktiviert und sobald kein textcontrol mehr den Fokus hat, die SIP versteckt.
    0
     

  17. CodeFatal Gast
    Hallo, auch wenn der Thread etwas älter ist, ich bräuchte da etwas Hilfe.
    mit der SHSipPreference Funktion klappt die Steuerung von dem Panel einwandfrei.
    Auch wird über das Flag WC_SIPPREF automatisch gesteuert.
    Dazu habe ich in der (projektname).rc folgendes eingefügt:
    #define WC_SIPPREF L"SIPPREF"
    CONTROL "",-1,WC_SIPPREF,NOT WS_VISIBLE,-10,-10,5,5

    Beende ich jetzt aber nun den Dlg, so erhalte ich eine Fehlermeldung in der Wincore.cpp...

    Da hier ja ein Element angelegt wird: Kann es sein, das ich hier Speicher nicht freigebe? Wenn ja: warum muss ich das hier machen und bei anderen Objekten nicht.
    0
     

Ähnliche Themen

  1. PPS von E-Mail öffnen???
    Von Opaschlumpf im Forum Plauderecke
    Antworten: 7
    Letzter Beitrag: 22.07.2008, 11:20
  2. CAB files
    Von markus von kaenel im Forum HTC Tornado
    Antworten: 2
    Letzter Beitrag: 18.11.2005, 21:21
  3. PIT Files
    Von segi1 im Forum HTC Tornado
    Antworten: 1
    Letzter Beitrag: 17.11.2005, 20:06
  4. pps öffnen?
    Von push-up im Forum Plauderecke
    Antworten: 8
    Letzter Beitrag: 07.09.2004, 09:58
  5. [b]SMS speichern und öffnen?[/b]
    Von Gissmo im Forum Plauderecke
    Antworten: 0
    Letzter Beitrag: 20.12.2003, 12:21

Besucher haben diese Seite mit folgenden Suchbegriffen gefunden:

windows ce 5 tastatur erscheint nicht

WinCE Tastatur

tastatur aufruf windows ce

bildschirmtastatur mfc

input panel 6.5 aufrufen

windows ce sip keyboard

cfile getstatus beispiel

hide input panel wince

afxdump windows ce

windows mobile input panel aufrufen

hide input panel windows mobile 6.5

schreibschutz .txt datei

karte f

txt datei mit schreibschutz

file status windows ce

Stichworte