Ecrire dans le registre pour demarrage auto d'un prg

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Ecrire dans le registre pour demarrage auto d'un prg

Message par Zorro »

bon voici la suite et la synthese de ce qui marche (sous windows 10 .... pour seven , c'est vous qui allez me le dire ;) )

l'exemple qui suit , reprends les fonctions qui permettent
de creer une clef de registre "chaine" , et en l’occurrence pour creer une clef qui permet le lancement d'un prg au demarrage de windows (10 ou seven )
avec la Procedure: writeregkey(section.l,subkey.s,keyset.s,keyvalue.s)
exemple (win10) :

Code : Tout sélectionner

WriteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\","starter","c:\starter\starter.exe")
de creer une clef de registre "numerique"
avec la Procedure: writebinaryregkey(section.l,subkey.s,keyset.s,keyvalue.l)

de lire une clef de registre , ça permet de lire pour récupérer une information (le chemin par exemple )
avec la Procedure: readregkey(section.l,subkey.s,valuename.s)
exemple (win10) :

Code : Tout sélectionner

Debug ReadRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\","starter")
d'effacer une clef de registre (et son contenu )
avec la Procedure : deleteregkey(section,path$,key$)
exemple (win10):

Code : Tout sélectionner

DeleteRegKey(#HKEY_LOCAL_MACHINE, "SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\","starter")
dans l'exemple suivant, je creer une clef de registre (voir le chemin employé en fonction de votre systeme d'exploitation
ensuite j'affiche le contenu de la clef qu'on viens de creer

puis enfin , j'efface la clef , de sorte que vous n'aurez pas de trace de notre essai ...
je vous encourage a lancer le code en mode Debugger et Pas a Pas et de vérifier ce qui se passe dans le registre "regedit"

bien sur, il faudrai ajouter quelques fonctions , comme pouvoir lire et ecrire dans le chemin standards avec Windows10


mais celle-ci permettent deja se se faire un lanceur automatique de prg au démarrage de Windows10

Le code :

Code : Tout sélectionner


;***********************************************
;Titre  :*lire_ecrire_le_registre
;Auteur  : Zorro
;Date  :03/12/2016
;Heure  :11:34:09
;Version Purebasic :  PureBasic 5.50 (Windows - x86)
;Version de l'editeur :EPB V2.64
; Libairies necessaire : Aucune 
;***********************************************
; ces fonctions permettent d'ecrire , de lire  et d'effacer une clef de registre
; ici je l'utilise pour creer une clef pour le demarrage automatique d'une application au lancement dy system d'exploitation
; dans cette exemple lancez le code en mode debugger et tracez pas a pas , tout en verifiant dans le registre ce qui se passe
; ne changez pas le chemin si vous ne savez pas ce que vous faites
; l'ecriture dans le registre est réservé aux connaisseurs , vous pouvez rendre inutilisable votre ordinateur
; si vous ne maitrisez pas ce que vous faites , a vos risques et perils :)


Declare.s readregkey(section.l,subkey.s,valuename.s)
Declare.l writeregkey(section.l,subkey.s,keyset.s,keyvalue.s)
Declare.l writebinaryregkey(section.l,subkey.s,keyset.s,keyvalue.l)
Declare deleteregkey(section,path$,key$)
Declare.b isos64bits()




If IsOS64bits() = 1
  chemin_demarrage.s="SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\"
  Debug "OS 64 bits - Chemin registre : " + chemin_demarrage
Else
  chemin_demarrage.s="SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"
  Debug "OS 32 bits - Chemin registre : " + chemin_demarrage
EndIf

nom_du_prg.s="Starter2" ; qui sera le nom de la clef
Lien_vers_le_prg.s="c:\Starter\Starter.exe" ; qui sera le contenu de la clef


; test :
CallDebugger
WriteRegKey(#HKEY_LOCAL_MACHINE,chemin_demarrage.s,nom_du_prg.s,Lien_vers_le_prg.s) ; on ecrit la clef du registre qui permettra le lancement automatique au demarrage systeme
calldebugger  ; allez voir votre registre
; ici on affiche le contenu de la clef
debug ReadRegKey(#HKEY_LOCAL_MACHINE,chemin_demarrage.s,nom_du_prg.s) ; ici on affiche le contenu de la clef "Starter2"; ça renvoi le chemin du prg inscrit
Calldebugger
DeleteRegKey(#HKEY_LOCAL_MACHINE, chemin_demarrage.s,nom_du_prg.s) ; en principe on efface  la clef "Starter2" , et donc son contenu




; *************************************************************************************************
;- Lire une chaine dans le registre
Procedure.s ReadRegKey(section.l,SubKey.s,ValueName.s)
		; key.s=ReadRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Zone Labs\ZoneAlarm","InstallDirectory")
		;
		hKey.l=0
		KeyValue.s= Space (255)
		DataSize.l=255
		If RegOpenKeyEx_ (section,SubKey,0, #KEY_READ ,@hKey)
				KeyValue= ""
		Else
				If RegQueryValueEx_ (hKey,ValueName,0,0,@KeyValue,@DataSize)
						KeyValue= ""
				Else
						KeyValue= Left (KeyValue,DataSize-1)
				EndIf
				RegCloseKey_ (hKey)
		EndIf
		ProcedureReturn KeyValue
EndProcedure

;- ecrire une chaine dans le registre
Procedure.l WriteRegKey(section.l,SubKey.s,keyset.s,KeyValue.s) 
		; result.l=WriteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Test Program Name","Test","TestValue")
		hKey.l=0
		If RegCreateKey_ (section,SubKey,@hKey)=0
				Result=1
				DataSize.l= Len (KeyValue)*2
				If RegSetValueEx_ (hKey,keyset,0, #REG_SZ ,@KeyValue,DataSize)=0
						Result=2
				EndIf
				RegCloseKey_ (hKey)
		EndIf
		ProcedureReturn Result
		;returns 0 if error / could not open or create SubKey
		;returns 1 if error / could not write new value
		;returns 2 if Success!!
EndProcedure
;- ecrire un long dans le registre
Procedure.l WritebinaryRegKey(section.l,SubKey.s,keyset.s,KeyValue.l) 
		; result.l=WriteRegKey(#HKEY_LOCAL_MACHINE,"SOFTWARE\Test Program Name","Test","TestValue")
		hKey.l=0
		If RegCreateKey_ (section,SubKey,@hKey)=0
				Result=1
				DataSize.l=4 ; nombre d'octets ecrit !!
				If RegSetValueEx_ (hKey,keyset,0, #REG_BINARY ,@KeyValue,DataSize)=0
						Result=2
				EndIf
				RegCloseKey_ (hKey)
		EndIf
		ProcedureReturn Result
		;returns 0 if error / could not open or create SubKey
		;returns 1 if error / could not write new value
		;returns 2 if Success!!
EndProcedure

Procedure DeleteRegKey(section,path$,key$)
		If RegCreateKey_(section,path$,@tmp)=#ERROR_SUCCESS
				If RegDeleteValue_(tmp,key$)=#ERROR_SUCCESS : ok=1 : EndIf
				RegCloseKey_(tmp)
		EndIf
		ProcedureReturn ok
EndProcedure
;
Procedure.b IsOS64bits()
  Protected OS64bits.b
  If CountString(GetEnvironmentVariable("programfiles(x86)"),"(x86)") = 1
    OS64bits = #True
  Else
    OS64bits = #False
  EndIf
  ProcedureReturn OS64bits
EndProcedure



;*********************************************************************************************
Dernière modification par Zorro le sam. 03/déc./2016 17:34, modifié 1 fois.
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Ecrire dans le registre pour demarrage auto d'un prg

Message par Ar-S »

Pour savoir si ton OS est 64bits (c'est ce qui importe le plus)

Code : Tout sélectionner

Procedure.b IsOS64bits()
  Protected OS64bits.b
  If CountString(GetEnvironmentVariable("programfiles(x86)"),"(x86)") = 1
    OS64bits = #True
  Else
    OS64bits = #False
  EndIf
  ProcedureReturn OS64bits 
EndProcedure


If IsOS64bits() = 1 
  chemin_demarrage.s="SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\"
  Debug "OS 64 bits - Chemin registre : " + chemin_demarrage
Else
  chemin_demarrage.s="SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"
  Debug "OS 32 bits - Chemin registre : " + chemin_demarrage
EndIf
Après si on veut savoir si son OS est un win 10 autant utiliser la commande OSversion(), ça évite de modifier le code.

A noter que la fonction ReadRegKey marche que l'on mette l'anti-slash ou pas (\) à la fin de la chaine ce qui est pratique.

Code : Tout sélectionner

;Exemple : Lire la version de firefox.
Debug "Version de Firefox : " + ReadRegKey(#HKEY_CURRENT_USER,"SOFTWARE\Mozilla\Mozilla Firefox","CurrentVersion")
;ou
;Exemple : Lire la version de firefox.
Debug "Version de Firefox : " + ReadRegKey(#HKEY_CURRENT_USER,"SOFTWARE\Mozilla\Mozilla Firefox\","CurrentVersion")

~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Ecrire dans le registre pour demarrage auto d'un prg

Message par Zorro »

Ar-S a écrit :Pour savoir si ton OS est 64bits (c'est ce qui importe le plus)

Code : Tout sélectionner

Procedure.b IsOS64bits()
  Protected OS64bits.b
  If CountString(GetEnvironmentVariable("programfiles(x86)"),"(x86)") = 1
    OS64bits = #True
  Else
    OS64bits = #False
  EndIf
  ProcedureReturn OS64bits 
EndProcedure

If IsOS64bits() = 1 
  chemin_demarrage.s="SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run\"
  Debug "OS 64 bits - Chemin registre : " + chemin_demarrage
Else
  chemin_demarrage.s="SOFTWARE\Microsoft\Windows\CurrentVersion\Run\"
  Debug "OS 32 bits - Chemin registre : " + chemin_demarrage
EndIf
c'est vrais :)
en meme temps, les 32bits sont vouées a disparaître sous windows non ?

Après si on veut savoir si son OS est un win 10 autant utiliser la commande OSversion(), ça évite de modifier le code.
arg ! , je savais bien qu'il y avait une fonction pour ça, mais j'ai pas trouvé !!!
j'ai cherché dans les options de compilation , j'ai vu qu'on pouvais choisir entre Linux et Windows, mais n'ayant pas vu
qu'on pouvait sélectionner entre divers sorte de windows, j'ai laissé tombé :roll:
Merci pour cette piqûre de rappel :)

j'ai modifié mon code exemple avec ta procedure , Merci encore :)
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: Ecrire dans le registre pour demarrage auto d'un prg

Message par nico »

Il y a un code de Danilo qui est pas mal pour window pour connaitre la version bit:

Code : Tout sélectionner

#PROCESSOR_ARCHITECTURE_INTEL = 0
#PROCESSOR_ARCHITECTURE_AMD64 = 9

Procedure OSBits()
    Protected si.SYSTEM_INFO, kernel32.i
    If OSVersion() < #PB_OS_Windows_XP
        ProcedureReturn 32 ;#PB_Processor_x86
    Else
        kernel32 = OpenLibrary(#PB_Any,"kernel32.dll")
        If kernel32
            CallFunction(kernel32,"GetNativeSystemInfo",@si)
            CloseLibrary(kernel32)
            If si\wProcessorArchitecture = #PROCESSOR_ARCHITECTURE_INTEL
                ProcedureReturn 32 ;#PB_Processor_x86
            ElseIf si\wProcessorArchitecture = #PROCESSOR_ARCHITECTURE_AMD64
                ProcedureReturn 64 ;#PB_Processor_x64
            EndIf
        EndIf
    EndIf
EndProcedure

Debug OSBits()
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Ecrire dans le registre pour demarrage auto d'un prg

Message par Zorro »

Merci :)

j'ajoute ici un truc que j'avais deja signalé, en tant que "Spock"

sous Windows10 i n'y a plus le dossier de demarrage de dispo dans le menu !

pour y acceder quand meme il faut appeller la fenetre d'execution "executer" dans le champs de recherche
puis dans la fenetre d'execution de Win10 , taper "shell:startup"
et voila .... plus qu'a poser un lien vers son prg dedans ;)


a ce propos, perso j'utilise un code qui fait ça

ce code, creer un lien vers votre prg , et le pose dans votre dossier de demarrage de Windows toute version !! ..... cool non ? .... non ? , bon tant pis :)

Code : Tout sélectionner




; *******************************
Declare.s SpecialFolder2(folderno)
#CSIDL_STARTUP=$07   
; *******************************

Global demarrage$=SpecialFolder2(#CSIDL_STARTUP)+"\" ; recupere le path du dossier de demarrage de votre windows


; creer un lien vers mon prg "Starter" situé dans "c:\Starter\"  , et le met dans le dossier de demarrage de windows (toute version)
CreateShellLink("c:\Starter\starter.exe",demarrage$+"Starter.lnk","","Pure FUN",fichier(1)\chemin.s,#SW_SHOWNORMAL,0,"%SystemRoot%\system32\SHELL32.dll",12)





Procedure CreateShellLink(PATH$, LINK$, Argument$, DESCRIPTION$, WorkingDirectory$, ShowCommand.l, HotKey.l, IconFile$, IconIndexInFile.l)

; de je sais plus qui ... on s'en fout, il avait qu'a signer sa procedure  .... et Toc !
		; CreateLink
		;             - TARGET$ for the Link ("c:\PureBasic\purebasic.exe")
		;             - LINK$ - name of the Link ("c:\pb.lnk")
		;             - Argument$ for the target  ("%1")
		;             - Description$ = Description and Tooltip ("Start PureBasic")
		;             - Working Directory ("c:\PureBasic\")
		;             - Show command: #SW_SHOWNORMAL or #SW_SHOWMAXIMIZED or #SW_SHOWMINIMIZED
		;             - HotKey - no need to use this :)
		;             - IconFile + Index ( "c:\PureBasic\purebasic.exe" , 1 )
		
		CoInitialize_(0)
		If CoCreateInstance_(?CLSID_ShellLink,0,1,?IID_IShellLink,@psl.IShellLinkA) = 0
				
				Set_ShellLink_preferences:
				
				; The file TO which is linked ( = target for the Link )
				;
				psl\SetPath(PATH$)
				
				; Arguments for the Target
				;
				psl\SetArguments(Argument$)
				
				; Working Directory
				;
				psl\SetWorkingDirectory(WorkingDirectory$)
				
				; Description ( also used as Tooltip for the Link )
				;
				psl\SetDescription(DESCRIPTION$)
				
				; Show command:
				;               SW_SHOWNORMAL    = Default
				;               SW_SHOWMAXIMIZED = aehmm... Maximized
				;               SW_SHOWMINIMIZED = play Unreal Tournament
				psl\SetShowCmd(ShowCommand)
				
				; Hotkey:
				; The virtual key code is in the low-order byte,
				; and the modifier flags are in the high-order byte.
				; The modifier flags can be a combination of the following values:
				;
				;         HOTKEYF_ALT     = ALT key
				;         HOTKEYF_CONTROL = CTRL key
				;         HOTKEYF_EXT     = Extended key
				;         HOTKEYF_SHIFT   = SHIFT key
				;
				psl\SetHotkey(HotKey)
				
				; Set Icon for the Link:
				; There can be more than 1 icons in an icon resource file,
				; so you have to specify the index.
				;
				psl\SetIconLocation(IconFile$, IconIndexInFile)
				
				
				ShellLink_SAVE:
				; Query IShellLink For the IPersistFile interface For saving the
				; shortcut in persistent storage.
				If psl\QueryInterface(?IID_IPersistFile,@ppf.IPersistFile) = 0
								; Ensure that the string is Unicode.
								mem.s = Space(1000) ;AllocateMemory(1,1000)
								MultiByteToWideChar_(#CP_ACP, 0, LINK$, -1, mem, 1000)
								;Save the link by calling IPersistFile::Save.
								hres = ppf\Save(mem,#True)
								Result = 1
								ppf\Release()
						EndIf
						psl\Release()
				EndIf
				CoUninitialize_()
				ProcedureReturn Result
				
				DataSection
						CLSID_ShellLink:
						; 00021401-0000-0000-C000-000000000046
						Data.l $00021401
						Data.w $0000,$0000
						Data.b $C0,$00,$00,$00,$00,$00,$00,$46
						IID_IShellLink:
						; DEFINE_SHLGUID(IID_IShellLinkA,         0x000214EEL, 0, 0);
						; C000-000000000046
						Data.l $000214EE
						Data.w $0000,$0000
						Data.b $C0,$00,$00,$00,$00,$00,$00,$46
						IID_IPersistFile:
						; 0000010b-0000-0000-C000-000000000046
						Data.l $0000010b
						Data.w $0000,$0000
						Data.b $C0,$00,$00,$00,$00,$00,$00,$46
				EndDataSection
				
		EndProcedure
		
		Procedure.s SpecialFolder2(folderno)
				listptr=0
				result$=Space(270)
				SHGetSpecialFolderLocation_(0,folderno,@listptr)
				SHGetPathFromIDList_(listptr,@result$)
				ProcedureReturn Trim(result$)
		EndProcedure

ps :il est vraiment top mon portable
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
cage
Messages : 506
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Ecrire dans le registre pour demarrage auto d'un prg

Message par cage »

Bonjour,

Il existe 2 types de dossiers Démarrage, un par utilisateur et un commun a tous les utilisateurs.

Dossier Démarrage utilisateur: WIN+R -> Ouvrir: shell:startup
Dossier Démarrage commun: WIN+R -> Ouvrir: shell:common startup

A savoir que pour Windows 10, l'exécution d'un ou plusieurs fichiers ou raccourcis de ces dossiers peut être désactivée dans l'onglet Démarrage du Gestionnaire de tâche.

Gérard
■ Win10 64-bit (Intel Celeron CPU N2920 @ 1.86GHz, 4,0GB RAM, Intel HD Graphics) & PB 6.00 LTS
■ Vivre et laisser vivre.
■ PureBasic pour le fun
■ Gérard sur le forum Anglais
■ Mes sites: http://pbcage.free.fr - http://yh.toolbox.free.fr
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Ecrire dans le registre pour demarrage auto d'un prg

Message par Zorro »

Merci pour ces precisions :)

je savais pas qu'il y avait plusieurs dossiers de démarrage 8O :)
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Ecrire dans le registre pour demarrage auto d'un prg

Message par Ar-S »

cage a écrit : A savoir que pour Windows 10, l'exécution d'un ou plusieurs fichiers ou raccourcis de ces dossiers peut être désactivée dans l'onglet Démarrage du Gestionnaire de tâche.
Oui ils ont fusionné les options qui étaient dans msconfig dans le gestionnaire de tâche.

@zorro, tu n'as jamais croisé dans tes installation un programme qui te demandait si il devait s'installer pour tous les utilisateurs ou pour toi seulement ?
du coup pour le menu démarrer c'est la même chose. Le plus sensé pour ton prog me semble t il est d'utiliser le démarrage de l'utilisateur.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Ecrire dans le registre pour demarrage auto d'un prg

Message par Zorro »

Ar-S a écrit :du coup pour le menu démarrer c'est la même chose. Le plus sensé pour ton prog me semble t il est d'utiliser le démarrage de l'utilisateur.
oui, encore, que je ne compte plus faire que Starter tourne sur un autre ordi que le miens :)
depuis le passage aux version 5.00 de Purebasic, j'ai perdu la possibilité de Dropper un dossier sur mes boutons

et franchement, j'ai plus l’énergie pour replonger dans un code, qui pourtant marchait tres bien avant...

l'unicode, le changement d'appel des Api (adresses des String au lieu des strings .... et j'en passe) ont eu raison de mon enthousiasme :lol:

d'ailleurs EPB va suivre le meme chemin , par exemple depuis les passages au Version 5.00 de PureBasic
j'ai perdu la possibilité de compiler des prg qui utilisent le Drag and Drop !!
le prg se compile, mais je creer des prg qui n'ont plus le drag and Drop actif !! (d'ou le probleme avec Starter )

j'en parlais deja ici :
http://www.purebasic.fr/french/viewtopi ... pb#p187137

bref... pas grave, je ne vis pas de mes programmes de toutes façons
je constate juste que plus Purebasic "evolue" , plus je ressent des limitations ...

mais ça reste un tres bon langage pour effectuer de petits code... :)
mais perso, si j’étais pro, je changerai de crémerie , pas assez Fiable dans le temps , pas de retro compatibilité , et ça c'est rédhibitoire !!
essayez d'adapter un ancien code un peut complexe, et vous verrez le probleme ! :)
et je ne parle meme pas des codes utilisant des anciennes Librairies
(Gnozal si t'es encore de ce monde, je ne te remercie pas, tout le temps que tes lib m'ont fait gagner a l’époque, je l'ai largement perdu depuis que j'essai de m'en débarrasser
car non compatible avec les Purebasic actuels) .... tiens d'ailleurs on ne devrai pas demander a quelqu'un si il code en Purebasic ,
mais avec quel Version de Purebasic ... :mrgreen: :mrgreen:

un prg Fait avec Purebasic, qui a plusieurs années , et qui utilise des Spécificités liées au Api windows , n'est pas
viable dans le temps !
trop de changements , due au langage, mais pas seulement, le système d'exploitation aussi ,est en parti responsable de ça

pour moi , pour que notre création soit fiable, il faudrait reprendre son prg a chaque nouvelle version de Pb (si on veux qu'il soit compatible avec la dernière version)
quand je dit reprendre, en fait, il faudrait le refaire a partir de zero !!

sinon il faut rester avec la version avec laquelle il a été programmé .
et pratiquement, il faudrai aussi le refaire a chaque nouvelle version de Windows ... mais ça c'est deja plus rare

la programmation ne s'inscrit clairement pas dans le marbre, rien n'est fait pour durer dans cet univers :)

c'est peut etre ça ,la grosse difference, avec des langages dit "Pro" , comme le C , le C++ , le python etc ...
un prg fait en C en 1990 , reste fonctionnel avec le C de maintenant !
seul certaine librairies peuvent avoir changée, mais pas au point d'empecher le code de tourner ! avec une erreur d'appel d'api ou autre
comportement ératique , un drag en drop, s'il fonctionnait il y a 4 ans , fonctionne probablement encore aujourd'hui !

mais bon , je spécule .... excusez cette parenthese .... mais ça me fout les boules :)
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Avatar de l’utilisateur
Ar-S
Messages : 9478
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Ecrire dans le registre pour demarrage auto d'un prg

Message par Ar-S »

je creer des prg qui n'ont plus le drag and Drop actif !
Je me suis rendu compte d'un problème similaire dans un des mes progs récement en 5.50/5.43.. (mon muxer de sous titre + avi).
Je ne pense pas que ce soit grand chose mais du coup ça force à replonger dans le code. Encore celui ci est court mais comme tu dis, sur un gros prog autant repartir de 0 ou continuer à le developper sous la même version de PB. Par contre engendre de devoir zapper entre les commandes/synthaxes qui évoluent et ça c'est mal :)

Bref, j'adore toujours autant PB mais ces vrai que les grosses maj nous sortent des incompatibilités parfois agaçantes. ils faudrait que la team nous sorte un convertisseur de vieux code.. (mais là je fabule ^^)
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Zorro
Messages : 2185
Inscription : mar. 31/mai/2016 9:06

Re: Ecrire dans le registre pour demarrage auto d'un prg

Message par Zorro »

Ar-S a écrit : ils faudrait que la team nous sorte un convertisseur de vieux code.. (mais là je fabule ^^)
j'avais commencé un truc de ce genre, inclu dans EPB ..
mais j'ai arreté devant le nombre de possibilités de changement en fonction de tel ou tel Version ... :)
ça reviendrai a faire un gros code, qui va retomber dans les memes travers :lol: :)

j'ai l'impression avec le temps, qu'on cherche a faire de moi , un simple "utilisateur" de trucs tout fait :)
c'est peut etre ça devenir vieux :lol:
Image
Image
Site: http://michel.dobro.free.fr/
Devise :"dis moi ce dont tu as besoin, je t'expliquerai comment t'en passer"
Répondre