Page 1 sur 2

Mettre un navigateur part default via Purebasic

Publié : mar. 04/déc./2007 16:20
par Thyphoon
Bonjour,

je cherche un moyen pour configurer le navigateur web part default !
Est-ce quelqu'un a une idée ? modification de registre ? un api ?
J'ai regarder sur Purearea et le forum anglais mais je n'ai pas vraiment trouvé...
merci d'avance

Publié : mar. 04/déc./2007 16:24
par bernard13
bonjour

peux tu expliquer ce que tu veux faire svp ..

Publié : mar. 04/déc./2007 17:30
par Thyphoon
bernard13 a écrit :bonjour

peux tu expliquer ce que tu veux faire svp ..
A mon boulot j'ai créer un utilitaire qui permet d'installer a distance des applications, mais j'ai aussi besoin de changer un certain nombre de paramètre dont definir un navigateur par defaut. J'ai déjà trouvé pour configurer une imprimante part defaut grace un code de Gonzal.
J'ai trouver comment mettre un navigateur part defaut sous linux mais pas sous windows... :(

Publié : mar. 04/déc./2007 17:59
par bernard13
desoler je peux pas t'aider je connais pas Linux

bonne courage à toi

Publié : mar. 04/déc./2007 17:59
par case
c'est dans la base de registre


HKEY_CLASSES_ROOT/HTTP/shell/open/command

Publié : mar. 04/déc./2007 18:04
par Thyphoon
bernard13 a écrit :desoler je peux pas t'aider je connais pas Linux

bonne courage à toi
c'est sous windows que je cherche, mais merci de t'être penché sur mon problème.
case a écrit :c'est dans la base de registre


HKEY_CLASSES_ROOT/HTTP/shell/open/command
Merci ! je vais tanter avec ça ! j'avais trouver d'autre clef mais ça ne marchait pas. merci !

Publié : mar. 04/déc./2007 18:25
par Thyphoon
Je tante déjà de lire la valeur de la clef dans le registre. j'utilise un code que j'ai trouvé sur purearea pour la lecture mais ça me renvoie 0 et je comprends pas trop pourquoi !est ce que la computerName est important ? et a quoi ça lui sert ? Si quelqu'un peut m'aider ...

Code : Tout sélectionner

Procedure.l GetValue(topKey, sKeyName.s, sValueName.s, ComputerName.s) 
   GetHandle.l 
   hKey.l 
   lpData.s 
   lpDataDWORD.l 
   lpcbData.l 
   lType.l 
   lReturnCode.l 
   lhRemoteRegistry.l 
   Shared GetValue.s 
    
   If Left(sKeyName, 1) = "\" 
       sKeyName = Right(sKeyName, Len(sKeyName) - 1) 
   EndIf 
    
   If ComputerName = "" 
       GetHandle = RegOpenKeyEx_(topKey, sKeyName, 0, #KEY_ALL_ACCESS, @hKey) 
   Else 
       lReturnCode = RegConnectRegistry_(ComputerName, topKey, @lhRemoteRegistry) 
       GetHandle = RegOpenKeyEx_(lhRemoteRegistry, sKeyName, 0, #KEY_ALL_ACCESS, @hKey) 
   EndIf 
            
   If GetHandle = #ERROR_SUCCESS 
       lpcbData = 255 
       lpData = Space(255) 
        
       GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData) 
            
       If GetHandle = #ERROR_SUCCESS 
           Select lType 
               Case #REG_SZ 
                   GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lType, @lpData, @lpcbData) 
                
                   If GetHandle = 0 
                       GetValue = Left(lpData, lpcbData - 1) 
                   Else 
                       GetValue = "" 
                   EndIf 
                    
               Case #REG_DWORD 
                   GetHandle = RegQueryValueEx_(hKey, sValueName, 0, @lpType, @lpDataDWORD, @lpcbData) 
                    
                   If GetHandle = 0 
                       GetValue = Str(lpDataDWORD) 
                   Else 
                       GetValue = "0" 
                   EndIf 
                
           EndSelect 
       EndIf 
   EndIf 
   RegCloseKey_(hKey) 
   ProcedureReturn GetHandle 
Debug GetValue(#HKEY_CLASSES_ROOT,"HTTP\shell\open\command" , "", "")  
EndProcedure 

Publié : mar. 04/déc./2007 19:09
par bernard13
dis moi tu cherche à manipuler un pc à distance?

Publié : mar. 04/déc./2007 19:14
par Thyphoon
bernard13 a écrit :dis moi tu cherche à manipuler un pc à distance?
Non ça c'est déjà fait. je peux envoyer n'importe quel executable sur un pc via le reseau et que ce dernier s'execute.

Publié : mar. 04/déc./2007 23:07
par Oliv
D'après un code qui récupairait la clef Xp trouvé sur le forum anglais :

Code : Tout sélectionner

Procedure.s GetKey() 
    *clef = AllocateMemory(100) 
    lDataLen.l 
    hKey.l 
    ;Open the registry key
    If RegOpenKey_(#HKEY_CLASSES_ROOT, "HTTP\shell\open\command", @hKey) = #ERROR_SUCCESS 
        lDataLen = 100

        If RegQueryValueEx_(hKey, "", 0, "REG_SZ", *clef, @lDataLen) = #ERROR_SUCCESS 
            RegCloseKey_(hKey) 
        Else 
            ;ERROR: Could not Read "DigitalProductID 
            RegCloseKey_(hKey) 
            ProcedureReturn "" 
        EndIf 
    Else 
        ;ERROR
        ProcedureReturn "" 
    EndIf 
    ProcedureReturn PeekS(*clef)

EndProcedure 


Debug GetKey() 
End 

Publié : mer. 05/déc./2007 5:41
par Thyphoon
Oliv a écrit :D'après un code qui récupairait la clef Xp trouvé sur le forum anglais :
Merci beaucoup, me reste plus qu'a trouver comment modifier cette clef maintenant. Y a pas a tortillé du croupions vas bien faloire un jour que je comprenne comment marche les API Windows :( :wink:


Edit: Je viens de pensé a la Droopy Lib, il y a des fonctions dedans pour la base de registre... je m'en vais regarder ça de plus prêt ! 8)

Publié : mer. 05/déc./2007 8:30
par Progi1984
Regarde PBOSL_Registry, ce sont des fonctions pour la BdRegistres

Publié : mer. 05/déc./2007 8:40
par Thyphoon
Progi1984 a écrit :Regarde PBOSL_Registry, ce sont des fonctions pour la BdRegistres
Merci beaucoup je vais regarder !mais J'ai réussi avec les fonctions de la DroopLib!

Pour mettre IE en Navigateur part defaut

Code : Tout sélectionner

RegSetValue("HKEY_CLASSES_ROOT\HTTP\shell\open\command","",Chr(34)+"C:\Program Files\Internet Explorer\IEXPLORE.EXE"+Chr(34)+" -nohome",#REG_SZ,".")
Pour mettre FireFox en Navigateur part defaut

Code : Tout sélectionner

RegSetValue("HKEY_CLASSES_ROOT\HTTP\shell\open\command","","C:\PROGRA~1\MOZILL~1\FIREFOX.EXE -requestPending -osint -url "+Chr(34)+"%1"+Chr(34),#REG_SZ,".")

Publié : mer. 05/déc./2007 10:56
par Progi1984

Publié : mer. 05/déc./2007 12:41
par Backup
...