Désactiver les raccoucis de StartMenu et Assign Screen sur IPAQ

Résolu
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006 - 2 août 2006 à 16:13
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 - 18 août 2006 à 09:48
je développe une application sur PDA (HP IPAQ 1950rx) censé exécuter en Plein écran.
En appuyant sur le bouton d'enregistrement et le bouton de navigation à cinq direction ( au centre ),
le Menu démarer se lance, meme si j'ai désactiver la barre de menu et la barre de démarer
pour lancer l'apllication en Plein écran.

Est ce que y'a quelqu'un qui connais comment désactiver cette raccoucis.?
A priorie c une raccourcie que le système Windows Mobile5 qui le génére, j'ai essayé de chercher
sur la base de registre mais sans succès.

Merci pour toute information.

De même, qu'on t'on appuie sur le bouton contact et le bouton de navigation à cinq direction (au centre)
on affiche l'application pour alignement d'écran, vous pouvez le tester,

18 réponses

cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
11 août 2006 à 11:11
Pour les CAB, il suffit de naviguer dans la base  de registre du PDA et de supprimer ou de modifier l'association  de fichier avec extension .CAB

Juste faites-le
3
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
4 août 2006 à 19:05
ces sont pourtants des évenements clavier.
Il y a possibilité de les modifier via paramêtres/boutons sinon en intervenant directement dans la BDR

Juste faites-le
0
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006
7 août 2006 à 09:03
J'ai parlé sur des évenements du clavier qui nous ammènes a des programmes spéciales,
ils sont considéré comme des raccourcis systèmes, équivalent a Ctrl+Alt+Supp en PC.

Et ces raccourcis sont déclanchées seulement si on appuie simultanèment sur deux touches,
alors qu'au paramètres/boutons, on peut changer seulement les événements en Appuie Simple, ou
en Appuie Long, et pas lorsqu'on clique sur deux Bouttons en même temp.

C'est vrai, le lancement de l'application "Menu Démarer" et "Aligner Ecran" par ces deux touches
"


le bouton d'enregistrement + le bouton de navigation à cinq direction ( au centre )
" pour le premier et  sur "le bouton d'enregistrement + le bouton de navigation à cinq direction ( au centre )" ça doit être mentionner sur la Base de registre, mais je n'ai pas encore réussis a trouver exactement.

Est ce que vous connaissez à quelle endroit on peut le trouver? sachant bien que les autres touches,
"Appuie Simple" et "Appuie Long" sont localisé à cet emplacement dans le BDR,
HKLM,
"SOFTWARE\\Microsoft\\Shell\\Keys\\

S'il y'a aucune information a ce sujet, je serais très reconnaissant
Mon objectif, c'est de désactiver ces deux raccourcis pour qu'on puisse pas sortir de mon programme qui est lancé en plein écran.

Merci pour tous votre aide
0
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006
7 août 2006 à 09:05
J'ai parlé sur des évenements du clavier qui nous ammènes a des programmes spéciales,
ils sont considéré comme des raccourcis systèmes, équivalent a Ctrl+Alt+Supp en PC.

Et ces raccourcis sont déclanchées seulement si on appuie simultanèment sur deux touches,
alors qu'au paramètres/boutons, on peut changer seulement les événements en Appuie Simple, ou
en Appuie Long, et pas lorsqu'on clique sur deux Bouttons en même temp.

C'est vrai, le lancement de l'application "Menu Démarer" et "Aligner Ecran" par ces deux touches
"


le bouton d'enregistrement + le bouton de navigation à cinq direction ( au centre )
" pour le premier et  sur "le bouton de contact + le bouton de navigation à cinq direction ( au centre )" ça doit être mentionner sur la Base de registre, mais je n'ai pas encore réussis a trouver exactement.

Est ce que vous connaissez à quelle endroit on peut le trouver? sachant bien que les autres touches,
"Appuie Simple" et "Appuie Long" sont localisé à cet emplacement dans le BDR,
HKLM,
"SOFTWARE\\Microsoft\\Shell\\Keys\\

S'il y'a aucune information a ce sujet, je serais très reconnaissant
Mon objectif, c'est de désactiver ces deux raccourcis pour qu'on puisse pas sortir de mon programme qui est lancé en plein écran.

Merci pour tous votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
7 août 2006 à 14:44
peut-être un début de réponse

Function SHSetAppKeyWndAssoc lib "AygShell.dll"
(byval VKey as long, byval hWnd as long) as boolean

Vkey  Valeur :

Touches du PDA

X
= 193
              O
                 X
=195

X
=194
                                     X
=196

hWnd est l'handle de la form, si cette valeur est à 0 = désassignation.
je crois que j'ai vu ça sur codeppc.com
0
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006
7 août 2006 à 18:46
je travail sur WM5.0 en utilsiant C#, je pense pas que cette fonction fonctionne .
ou bien, j'ai mal écrit le deuxième paramètre pour les rendres désactiver.

[DllImport("AygShell.dll")]
private static extern bool SHSetAppKeyWndAssoc(byte bVk, IntPtr hwnd);


private void DisableButton()
        {
            SHSetAppKeyWndAssoc(193, IntPtr.Zero);
            SHSetAppKeyWndAssoc(194, IntPtr.Zero);
            SHSetAppKeyWndAssoc(195, IntPtr.Zero);
            SHSetAppKeyWndAssoc(196, IntPtr.Zero);
            SHSetAppKeyWndAssoc(197, IntPtr.Zero);
            SHSetAppKeyWndAssoc(37, IntPtr.Zero);
            SHSetAppKeyWndAssoc(38, IntPtr.Zero);
            SHSetAppKeyWndAssoc(39, IntPtr.Zero);
            SHSetAppKeyWndAssoc(40, IntPtr.Zero);
            SHSetAppKeyWndAssoc(13, IntPtr.Zero);



        }

Merci pour ton aide
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
7 août 2006 à 20:04
Je suis pas sur que IntPtr.zero soit le handle de ta form

Juste faites-le
0
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006
8 août 2006 à 08:40
Elle n'as pas fonctionné, je sais pas pourquoi?


 
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
9 août 2006 à 11:24
A priori OpenNetCf implémente ces fonctions (OpenNetCf.Win32.core)

voici un extrait de leur source (en C#)
Le plus simple reste d'utilisier directement leur librairie
Je crois que j'ai une autre soluce mais c'est sur mon portable je vérifie ça vendredi....

#region ----------------- Keyboard functions ------------------
  725:         /// <summary>
  726:         /// Send a string to the keyboard
  727:         /// </summary>
  728:         ///

  729:         publicstaticvoid SendKeyboardString(string Keys)
  730:         {
  731:             SendKeyboardString(Keys, KeyStateFlags.Down, IntPtr.Zero);
  732:         }
  733:
  734:         /// <summary>
  735:         /// Send a string to the keyboard
  736:         /// </summary>
  737:         ///

  738:         ///

  739:         publicstaticvoid SendKeyboardString(string Keys, KeyStateFlags Flags)
  740:         {
  741:             SendKeyboardString(Keys, Flags, IntPtr.Zero);
  742:         }
  743:
  744:         /// <summary>
  745:         /// Send a string to the keyboard
  746:         /// </summary>
  747:         ///

  748:         ///

  749:         ///

  750:         publicstaticvoid SendKeyboardString(string Keys, KeyStateFlags Flags, IntPtr hWnd)
  751:         {
  752:             uint[] keys = newuint[Keys.Length];
  753:             KeyStateFlags[] states = new KeyStateFlags[Keys.Length];
  754:             KeyStateFlags[] dead = {KeyStateFlags.Dead};
  755:
  756:             for(int k = 0 ; k < Keys.Length ; k++)
  757:             {
  758:                 states[k] = Flags;
  759:                 keys[k] = Convert.ToUInt32(Keys[k]);
  760:             }
  761:
  762:             PostKeybdMessage(hWnd, 0, Flags, (uint)keys.Length, states, keys);
  763:             PostKeybdMessage(hWnd, 0, dead[0], 1, dead, keys);
  764:         }
  765:
  766:         /// <summary>
  767:         /// Send a key to the keyboard
  768:         /// </summary>
  769:         ///

  770:         publicstaticvoid SendKeyboardKey(byte VirtualKey)
  771:         {
  772:             SendKeyboardKey(VirtualKey, true);
  773:         }
  774:
  775:         /// <summary>
  776:         /// Send a key to the keyboard
  777:         /// </summary>
  778:         ///

  779:         ///

  780:         publicstaticvoid SendKeyboardKey(byte VirtualKey, bool Silent)
  781:         {
  782:             int silent = Silent ? (int)KeyEvents.Silent : 0;
  783:
  784:             keybd_event(VirtualKey, 0, 0, silent);
  785:             keybd_event(VirtualKey, 0, (int)KeyEvents.KeyUp, silent);
  786:         }
  787:         #endregion
  788:
  789:
  790:         #region --------------- P/Invoke declarations ---------------
  791:
  792:         #region Keyboard P/Invokes
  793:         [DllImport("coredll.dll", EntryPoint="keybd_event", SetLastError=true)]
  794:         internalstaticexternvoid keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
  795:
  796:         [DllImport("coredll.dll", EntryPoint="PostKeybdMessage", SetLastError=true)]
  797:         internalstaticexternbool PostKeybdMessage(IntPtr hwnd, uint vKey, KeyStateFlags flags, uint cCharacters, KeyStateFlags[] pShiftStateBuffer, uint[] pCharacterBuffer);
  798:
  799:         #endregion
0
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006
11 août 2006 à 10:07
Salut Stephanne, 

Nous sommes le Vendredi, , peut être que vous ne préparez quelques choses aujourd'hui.

En ce qui concerne mon problème, désactivation du Raccourcis Système qui lance StartMenu, j'ai trouvé
une solution en cherchant sur le mode Kiosk sur ce Forum,
http://groups.google.com/group/microsoft.public.dotnet.framework.compactframework/browse_thread/thread/f84a98a78c208483/f85bb5e1b7c3dc0b?lnk=st&q=&rnum=5&hl=en#f85bb5e1b7c3dc0b

et en ce servant de cet exemple, j'ai réussie à désactiver cette raccourcis
http://www.sergeybogdanov.com/Samples/CEKiosk.zip

Ce mode Kiosk, correspond au programmes comme le mien, c'est à dire, 
 -  le pda démarre avec ce programme,
 -  le programme s'exécute en mode Plein écran, avec désactivation des claviers, (hardware keys), pour laisser un seul 
     programme qui tourne sur le PDA, 
 - en désactivant aussi la possibilité d'installer des programmes sur le PDA.(  comme moyen de sécurité )

Il y'en a des produits commerciaux proposent la même chose, en l'essayant chaque solution à un défault

PocketKiosk Builder v2.2($299)  la raccoucis système existe toujours. (pas de bloquage des programmes d'installations)
SPB Kiosk Engine($985) la raccoucis système existe toujours, mais il a un avantage c que quand la barre démarrer
s'exécute avec la fameuse Raccourcis, une fois on clique sur un programme, la fenêtre se cache ou se ferme. 
ce qui veut dire, qu'au moins, on a garantie qu'il y'aura aucun programme perturbe le mien.

Je trouve toujours des difficultés à trouver comment on peut désactiver les installations des .cab sur les PDA.
J'ai trouvé sur un autre Forum une astuce pour Empêcher l'installation de Programmes sans aucun succès
http://www.hacksim.com/hacks.php

Donc là, je vous demande si vous savez quelque chose sur ce sujet, n'hésitez pas à me l'informer
et j'aimerais bien voir aussi votre solution sur les raccourcis, je souhaite qu'elle soit plus stable que celle que j'ai trouvé dans l'exemple CEKiosk.zip

Merci pour tous votre aide

 
0
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006
11 août 2006 à 15:30
>> l'association  de fichier avec extension .CAB
¨Si j'ai bien compris, je dois chercher sur n'importe quelle clé sur la base de registre qui a une relation avec .cab
et je le détruie ou modifié.

et les clés que j'ai trouvé et je l'ai supprimée sont ceux ci




1-HKEY_CLASSES_ROOT\cabfile]
  => [HKEY_CLASSES_ROOT\cabfile\DefaultIcon]
      =>  shellresapps.dll,-15618

2-=> [HKEY_CLASSES_ROOT\cabfile\Shell]
     => [HKEY_CLASSES_ROOT\cabfile\Shell\Open]
        => [HKEY_CLASSES_ROOT\cabfile\Shell\Open\Command]
   => wceload.exe "%1" /nodelete

3-[HKEY_CLASSES_ROOT\CabInstaller]
=> [HKEY_CLASSES_ROOT\CabInstaller\CLSID]
    => {4A7DD4C3-05CF-4c7d-823F-5B5514634AE0}


Jusqu'a maintenant sans résultat, sauf qu'à partie de cette manipulation,
je peux pas désinstallé les programmes, donc c l'inverse, ce qui était arrivé, alors moi
je cherche désactiver l'installation des programmes et pas les désorganisation.

Est ce tu peux me préciser quelle clé exact.
Merci encore,
0
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006
11 août 2006 à 16:13
Je veux clarifier une chose, avec la suppression des clés précedentes de la base de registre,


je me suis retrouvé incapable d'exécuter un fichier .CAB à partir du PDA, ça c'est bien.


mais pour mon cas, ou mon programme est toujours en plein écran, et tous les raccourcis sont désactivé


même celui de Start Menu, il sera difficile à l'utilisateur d'avoir l'accès au exploirateur fichier pour exécuter


un cab, qu'il va le copier à partir du PC. donc cette option n'as pas d'intéret dans ce cas.

Mon objectif, c'est de bloquer l'installation lancé à partir du pc vers PDA. (.EXE ou les .MSI)

Qu'est ce vous pensez? Il y'a un moyen de le faire?


 
0
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006
11 août 2006 à 16:13
Je veux clarifier une chose, avec la suppression des clés précedentes de la base de registre,


je me suis retrouvé incapable d'exécuter un fichier .CAB à partir du PDA, ça c'est bien.


mais pour mon cas, ou mon programme est toujours en plein écran, et tous les raccourcis sont désactivé


même celui de Start Menu, il sera difficile à l'utilisateur d'avoir l'accès au exploirateur fichier pour exécuter


un cab, qu'il va le copier à partir du PC. donc cette option n'as pas d'intéret dans ce cas.

Mon objectif, c'est de bloquer l'installation lancé à partir du pc vers PDA. (.EXE ou les .MSI)

Qu'est ce vous pensez? Il y'a un moyen de le faire?


 
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
11 août 2006 à 22:35
Le problème c'est qu' ActiveSync copie le cab sur le PDA est de mémoire elle demande au PDA d'executer le CAB
La soluce était en partie dans ma réponse
"de registre du PDA et de supprimer ou de modifier l'association  de fichier avec extension .CAB"
en fait c'est modifier l'association
Tu associes les fichiers CAB à ton programme ou à un leurre, cela devrait fonctionner

Les clés à modifier sont la 2
2-=> [HKEY_CLASSES_ROOT\cabfile\Shell]
     => [HKEY_CLASSES_ROOT\cabfile\Shell\Open]
        => [HKEY_CLASSES_ROOT\cabfile\Shell\Open\Command]
   => wceload.exe "%1" /nodelete

Ou tu changes l'executable à la place de wceload

Maintenant si tu n'as plus besoin d'activeSync, tu peux chercher à le désactiver sur le PDA
0
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006
14 août 2006 à 19:06
J'ai bien voulus te dire que ta solution a bien marché, mais domage, j'ai mit à la place de wceload.exe  un autre exécutable,
mais rien n'est changé, comme si j'ai rien fait.

Je parle toujours du sens du pc vers le pocket
et en plus, quand j'ai essayé d'écraser wceload.exe   j'ai pas pu parcequ'il en Read Only

Merci de ton aide
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
14 août 2006 à 19:18
Il ne s'agit pas d'écraser wceload, mais de le remplacer par ton prog
ti ton exe est dans \Program Files\Kiosk\Kiosk.exe
[HKEY_CLASSES_ROOT\cabfile\Shell\Open\Command]
   => \Program Files\Kiosk\Kiosk.exe "%1"

Ainsi ton PDA accepte toujours les CAB mais c'est ton programme qui est l'interpreteur
Regarde sur internet un utilitaire tascalsoft qui s'appelle Cabinst. et regarde les modifs qu'il fait dans la BDR du PDA une fois qu'il est associé au CAB
0
soltanimed Messages postés 11 Date d'inscription lundi 12 juin 2006 Statut Membre Dernière intervention 18 août 2006
18 août 2006 à 09:13
Au moment ou on exécute Cabinst et on l'associe avec le .CAB, la BDR mette l'emplacement du Cabinst au lieu de wceload
,
[HKEY_CLASSES_ROOT\cabfile\Shell\Open\Command]
   => \Program Files\cabinstl_en.exe "%1"  par exemple,

et donc au moment ou j'ai changé la BDR pour mettre mon programme, à chaque clique sur n'importe quelle fichier .cab (sur le PDA), mon programme se lance, ce qui veut dire que l'association des .CAB avec mon programme est réussie.

ça sur le PDA.
Alors si on revient au PC, pour voir aussi si le Sens PC vers PDA si marche ou pas, "logiquement ça doit marcher"!!!!!
On essayant d'installer une application, cette dernier s'installe sans aucun soucis, comme à l'ancienne.

La vérité, je sais pas pourquoi?, j'ai cherché sur tous les occurrences de Wceload sur la base de registre, on les changons tous,
 ça reste toujours l'exécution des fichiers d'installaton des logiciels possible du PC vers Pocket PC.
même on les supprimant tous, on retrouve la même résultat.

Par contre, j'ai résolue ce problème, en écrasant Wceload.exe par un autre fichiers porte le même nom,
cette tâche fonctionne pas avec l'exploirateur de windows, par contre sur Resco Explorateur, il est possible.
et donc la solution sur c#, c'était d'utiliser la méthode Copy de la Classe File. pour écraser wceload.exe

Je préféré s'il y'avait d'autre solution que l'écrasement, ça sera génial. est ce que t'as essayé la solution de BDR sur ton PDA.?

Merci beaucoup pour votre aide,






 
0
cs_Stephane33 Messages postés 630 Date d'inscription samedi 15 février 2003 Statut Modérateur Dernière intervention 9 octobre 2011 1
18 août 2006 à 09:48
Essaye SPB Kiosk lien ici expliquant les fonctionnalités
Jette un oeil sur les modifications éffectuées.....
.Fichiers modifiés
.Analyse du CAB d'installation
.Analyse de la BDR

Note les différents items

Je pense que c'est la meilleure solution à ton problème.
0
Rejoignez-nous