Utilitaires basiques

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
cage
Messages : 506
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Utilitaires basiques

Message par cage »

Bonjour,

3 petits utilitaires sans prétention qui me facilitent la vie, runnotepad, runnotepad++ et runwordpad

En fond d'écran du Bureau, j'ai rajouté un menu Fichiers
Ce menu me permet de rapidement créer le type de fichier que je souhaite.
Quand je le sélectionne, il me présente plusieurs sous-menus dont:
Fichier pb
Fichier txt
Fichier txt+
Fichier rtf
etc...
Cela me permet de créer un fichier unique d'un simple clic dans pb, notepad, notepad++,wordpad,...
Pour Notepad++, j'utilise une version portable "Notepad++ minimalist package 32-bit x86"
Pour enregistrer notepad++ dans les menus contextuels, voici la méthode que j'utilise
::-------------------------------------------
:: To register Notepad++ as shell extension

:: As admin cmd goto NPP folder

:: for X86
regsvr32 /i NppShell32.dll

:: for X64
regsvr32 /i NppShell64.dll
::-------------------------------------------
:: To unregister Notepad++ as shell extension

:: As admin cmd goto NPP folder

:: for X86
regsvr32 /u NppShell32.dll

:: for X64
regsvr32 /u NppShell64.dll
::-------------------------------------------
RUNNOTEPAD

Code : Tout sélectionner

;
;************************************************************************
;Titre      : runnotepad.pb
;Auteur     : (C) 2019 CAGE
;Date       : 2019/03/30
;Version PB : PureBasic 5.70 LTS (Windows - x86)
;Version PB : PureBasic 5.70 LTS (Windows - x64)
;Compiler Options
;Compiler Options : Executable format: Console ou Windows au choix
;Compile/Run      : Create temporary executable in the source directory
;
;Libairies: aucunes
;
;************************************************************************
;

EnableExplicit

OnErrorGoto(?ErrorHandler)

Define DESKTOP$ = GetUserDirectory(#PB_Directory_Desktop)

Define ext$ = ".txt"

Define NOTEPAD$ = "notepad.exe"

Define D = Date()

Define YY = Year(D)
Define MM = Month(D)
Define DD = Day(D)
Define HH = Hour(D)
Define II = Minute(D)
Define SS = Second(D)

Define out, FILE$

FILE$ = DESKTOP$
FILE$ + "Fichier_"
FILE$ + RSet(Hex(YY+MM+DD+II+SS),4,"0") + ext$

If FileSize(FILE$) = -1
  out = OpenFile(#PB_Any, FILE$, #PB_UTF8)
  If out
    WriteStringN(out,FormatDate("%yyyy/%mm/%dd %hh:%ii:%ss", D ))
    CloseFile(out)
  Else
    End
  EndIf
EndIf

RunProgram(NOTEPAD$, FILE$, DESKTOP$)

ErrorHandler:

End
RUNNOTEPAD++

Code : Tout sélectionner

;
;************************************************************************
;Titre      : runnotepad++.pb
;Auteur     : (C) 2019 CAGE
;Date       : 2019/03/30
;Version PB : PureBasic 5.70 LTS (Windows - x86)
;Version PB : PureBasic 5.70 LTS (Windows - x64)
;Compiler Options
;Compiler Options : Executable format: Windows ou Console au choix
;Compile/Run      : Create temporary executable in the source directory
;
;Libairies: aucunes
;
;************************************************************************
;

EnableExplicit

OnErrorGoto(?ErrorHandler)

Define DESKTOP$ = GetUserDirectory(#PB_Directory_Desktop)

Define ext$ = ".txt"

Define NOTEPAD$ = "y:\yh\tools\npp\notepad++.exe"

Define D = Date()

Define YY = Year(D)
Define MM = Month(D)
Define DD = Day(D)
Define HH = Hour(D)
Define II = Minute(D)
Define SS = Second(D)

Define out, FILE$

FILE$ = DESKTOP$
FILE$ + "Fichier_"
FILE$ + RSet(Hex(YY+MM+DD+II+SS),4,"0") + ext$

If FileSize(FILE$) = -1
  out = OpenFile(#PB_Any, FILE$, #PB_UTF8)
  If out
    WriteStringN(out,FormatDate("%yyyy/%mm/%dd %hh:%ii:%ss", D ))
    CloseFile(out)
  Else
    End
  EndIf
EndIf

RunProgram(NOTEPAD$, FILE$, DESKTOP$)

ErrorHandler:

End
RUNWORDPAD

Code : Tout sélectionner

;
;************************************************************************
;Titre      : runnotepad++.pb
;Auteur     : (C) 2019 CAGE
;Date       : 2019/03/30
;Version PB : PureBasic 5.70 LTS (Windows - x86)
;Version PB : PureBasic 5.70 LTS (Windows - x64)
;Compiler Options
;Compiler Options : Executable format: Windows ou Console au choix
;Compile/Run      : Create temporary executable in the source directory
;
;Libairies: aucunes
;
;************************************************************************
;

EnableExplicit

OnErrorGoto(?ErrorHandler)

Define DESKTOP$ = GetUserDirectory(#PB_Directory_Desktop)

Define ext$ = ".txt"

Define NOTEPAD$ = "y:\yh\tools\npp\notepad++.exe"

Define D = Date()

Define YY = Year(D)
Define MM = Month(D)
Define DD = Day(D)
Define HH = Hour(D)
Define II = Minute(D)
Define SS = Second(D)

Define out, FILE$

FILE$ = DESKTOP$
FILE$ + "Fichier_"
FILE$ + RSet(Hex(YY+MM+DD+II+SS),4,"0") + ext$

If FileSize(FILE$) = -1
  out = OpenFile(#PB_Any, FILE$, #PB_UTF8)
  If out
    WriteStringN(out,FormatDate("%yyyy/%mm/%dd %hh:%ii:%ss", D ))
    CloseFile(out)
  Else
    End
  EndIf
EndIf

RunProgram(NOTEPAD$, FILE$, DESKTOP$)

ErrorHandler:

End
■ 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
cage
Messages : 506
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Utilitaires basiques

Message par cage »

Bonsoir,

Un autre utilitaire (runpb) pour PB cette fois.
Il permet d'ouvrir PB avec un fichier unique sur le bureau

Code : Tout sélectionner

;
;************************************************************************
;Titre      : runpb.pb
;Auteur     : (C) 2019 CAGE
;Date       : 2019/03/30
;Version PB : PureBasic 5.70 LTS (Windows - x86)
;Version PB : PureBasic 5.70 LTS (Windows - x64)
;Compiler Options
;Compiler Options : Executable format: Windows ou Console au choix
;Compile/Run      : Create temporary executable in the source directory
;
;Libairies: aucunes
;
;************************************************************************
;

EnableExplicit

OnErrorGoto(?ErrorHandler)

Define DESKTOP$ = GetUserDirectory(#PB_Directory_Desktop)

Define ext$ = ".pb"

Define ALIAS$ = "CAGE"

Define PUREBASIC$ = "C:\Program Files\PureBasic\PureBasic.exe"

Define D = Date()

Define YY = Year(D)
Define MM = Month(D)
Define DD = Day(D)
Define HH = Hour(D)
Define II = Minute(D)
Define SS = Second(D)

Define out, FILE$

FILE$ = DESKTOP$
FILE$ + "Fichier_"
FILE$ + RSet(Hex(YY+MM+DD+II+SS),4,"0") + ext$

Define t$
t$ = ";"+#CRLF$
t$ + ";************************************************************************"+#CRLF$
t$ + ";Titre      : Application.pb"+#CRLF$
t$ + ";Auteur     : (C) "+FormatDate("%yyyy",D)+" "+ALIAS$+#CRLF$
t$ + ";Date       : "+FormatDate("%yyyy/%mm/%dd %hh:%ii:%ss", D)+#CRLF$
t$ + ";Version PB : PureBasic 5.70 LTS (Windows - x86)"+#CRLF$
t$ + ";Version PB : PureBasic 5.70 LTS (Windows - x64)"+#CRLF$
t$ + ";Compiler Options"+#CRLF$
t$ + ";Compiler Options : Enable moderm theme support (for Windows X and above)"+#CRLF$
t$ + ";Compiler Options : Executable format: Windows ou Console au choix"+#CRLF$
t$ + ";Compiler Options : Request Administrator mode for Windows Vista and above"+#CRLF$
t$ + ";Compile/Run      : Create temporary executable in the source directory"+#CRLF$
t$ + ";"+#CRLF$
t$ + ";Libairies: aucunes"+#CRLF$
t$ + ";"+#CRLF$
t$ + ";************************************************************************"+#CRLF$
t$ + ";"+#CRLF$
t$ + "EnableExplicit"+#CRLF$
t$ + #CRLF$
t$ + "OnErrorGoto(?ErrorHandler)"+#CRLF$
t$ + #CRLF$
t$ + "; <--- Inclure le programme ici"+#CRLF$
t$ + #CRLF$
t$ + "ErrorHandler:"+#CRLF$
t$ + #CRLF$
t$ + "End"+#CRLF$

If FileSize(FILE$) = -1
  out = OpenFile(#PB_Any, FILE$, #PB_UTF8)
  If out
    WriteStringN(out, "; "+FormatDate("%yyyy/%mm/%dd %hh:%ii:%ss", D ))
    WriteStringN(out, t$)
    CloseFile(out)
  Else
    End
  EndIf
EndIf

RunProgram(PUREBASIC$, FILE$, DESKTOP$)

ErrorHandler:

End
CAGE
■ 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
cage
Messages : 506
Inscription : ven. 16/oct./2015 18:22
Localisation : France
Contact :

Re: Utilitaires basiques

Message par cage »

Voici un fichier reg pour ajouter le menu Applications fichiers au menu clic doit du bureau.

Image

Pensez a modifier les noms des dossiers y:\\yh\\tools\\npp\\ et y:\\dos\\

Vous trouverez toutes les sources ici

Contenu du fichier HCR_DesktopBackgroundMenu7-Applications_fichiers.reg

Code : Tout sélectionner

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Menu7]
"MUIVerb"="Applications fichiers"
"SubCommands"="notepad;npp;wordpad;runpb;runwordpad;runnotepad;runnotepad++"
"icon"="explorer.exe"
"Position"="Top"

;//

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad]
@="Notepad"
"icon"="notepad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\notepad\command]
@="notepad.exe"

;//

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\npp]
@="Notepad++"
"icon"="y:\\yh\\tools\\npp\\notepad++.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\npp\command]
@="y:\\yh\\tools\\npp\\notepad++.exe"

;//

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\wordpad]
@="Wordpad"
"icon"="C:\\Program Files\\Windows NT\\Accessories\\wordpad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\wordpad\command]
@="wordpad.exe"

;//----------------------------------------------------------------------------------------------------------


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\runpb]
@="Fichier pb (purebasic)"
"icon"="runpb.exe"
"CommandFlags"=dword:00000020

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\runpb\command]
@="y:\\dos\\runpb.exe"

;//

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\runwordpad]
@="Fichier rtf (wordpad)"
"icon"="runwordpad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\runwordpad\command]
@="y:\\dos\\runwordpad.exe"

;//

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\runnotepad]
@="Fichier txt (notepad)"
"icon"="runnotepad.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\runnotepad\command]
@="y:\\dos\\runnotepad.exe"

;//

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\runnotepad++]
@="Fichier txt (notepad++)"
"icon"="runnotepad++.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\runnotepad++\command]
@="y:\\dos\\runnotepad++.exe"

CAGE
■ 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
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Utilitaires basiques

Message par Ar-S »

J'avais paumé un code similaire (au dernier) pour lancer la désinstalle d'un programme via un clic droit.
Merci

Notez que pour les icones, vous pouvez indiquer un fichier .ico
Si ce fichier contient plusieurs icones, il vous faudra ajouter une virgule et un chiffre allant de 0 à x
Ex : CHEMIN\mon_icone.ico,0 pour afficher la 1ere icone ou CHEMIN\mon_icone.ico,2 pour afficher la 3eme icone etc..
~~~~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
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Utilitaires basiques

Message par Ar-S »

cage a écrit :Voici un fichier reg pour ajouter le menu Applications fichiers au menu clic doit du bureau.
Je suis en train de faire un logiciel pour ajouter des exe / dossiers au menu contextuel.
Pour le moment je n'ai pas implanté les sous dossiers (MUIverb) et l'accès aux commandes windows (ton .reg le fait très bien).

Image
~~~~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
kernadec
Messages : 1594
Inscription : ven. 25/avr./2008 11:14

Re: Utilitaires basiques

Message par kernadec »

bjr cage
sympa le menu appli..
merci pour le partage :D

Cordialement
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Utilitaires basiques

Message par Ar-S »

Salut.
Je déterre un peu le topic.
J'ai paumé le code/la clé permettant de directement lancer un "désinstaller" du menu contextuel au clic droit sur un prog.
~~~~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
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Utilitaires basiques

Message par Ollivier »

ArS a écrit : J'ai paumé le code/la clé permettant de directement lancer un "désinstaller" du menu contextuel au clic droit sur un prog.
Est-ce que tu peux réinterpréter ta phrase en la composant, par exemple, de son contexte que nous fassions jouissance d'une meilleure compréhension ?
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Utilitaires basiques

Message par Ar-S »

Via le menu contextuel lors d'un clique droit sur un raccourcis d'appli sur le bureau (ou ailleurs), il me semble qu'il y a une manipulation dans la base de registre pour permettre d'ajouter "désinstaller" l'appli ciblée.
~~~~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
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Utilitaires basiques

Message par Ollivier »

(menu fond d'écran)

Code : Tout sélectionner

HKEY_CLASSES_ROOT\Directory\Background\shell
Sous 'Background', il y a 'DefaultIcon' qui suit.
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Utilitaires basiques

Message par Ar-S »

Certes.. Mais ça n'explique pas le desinstaller qui lancerait le uninstall du programme ciblé.
~~~~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
case
Messages : 1528
Inscription : lun. 10/sept./2007 11:13

Re: Utilitaires basiques

Message par case »

j'ai trouve ça si ça peux aider
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Windows.AddRemovePrograms]
"CanonicalName"="{4E2C075C-1CC1-4E0C-BF69-D0317B8F9539}"
"CommandStateHandler"="{E410F8AE-00A1-4A1B-8247-924705718354}"
"CommandStateSync"=""
"Description"="@shell32.dll,-31328"
"FolderHandler"="{0AC0837C-BBF8-452A-850D-79D08E667CA7}"
"Icon"="shell32.dll,-271"
"MUIVerb"="@shell32.dll,-31327"
"VerbHandler"="{a2e6d9cc-f866-40b6-a4b2-ee9e1004bdfc}"
"VerbName"="AddRemovePrograms"

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\Windows.AddRemovePrograms\command]
"DelegateExecute"="{E410F8AE-00A1-4A1B-8247-924705718354}"
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Utilitaires basiques

Message par Ar-S »

Merci Case,
Hélas cette clé ne fait qu'afficher la possibilité d'ouvrir "ajout/suppression de programme" globale de windows, j'ai déjà cette fonction (dans une version plus courte) dans mon menu.
Image

Je sais que des softs le font. Je crois que je vais sauver ma bdr et en installer un puis comparer la bdr avant/aprés l'installation. Je devrais bien trouver une piste.
~~~~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
Ar-S
Messages : 9477
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Utilitaires basiques

Message par Ar-S »

Bon, même en comparant la BDR, je ne trouve pas de référence aux clés principales pour ce genre de manip ni de trace du prog
que ce soit en

Code : Tout sélectionner

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore\shell\
ou en

Code : Tout sélectionner

HKEY_CLASSES_ROOT\DesktopBackground\Shell\
Je pense que le programme (windows uninstaller) doit simplement une fois lancer, récupérer le path du fichier selectionner et lancer le "uninstall.exe" dans le dossier si présent.
~~~~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
Marc56
Messages : 2147
Inscription : sam. 08/févr./2014 15:19

Re: Utilitaires basiques

Message par Marc56 »

Regarde aussi sur le net les information concernant le numéro d'AppID (chaine aléatoire générée par les Setup (ie: InnoSetup)) qui identifie un programme Windows au niveau système et le rend unique pour permettre les mises à jour même avec un nom différent.

Ces ID sont listés dans
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
La clé UninstallString indique la commande de déinstallation
:wink:
Répondre