FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le deal à ne pas rater :
Code promo Nike : -25% dès 50€ d’achats sur tout le site Nike
Voir le deal

 

 KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK

Aller en bas 
3 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptyVen 30 Nov 2012 - 12:51

Nouvelle version:
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK

La nouvelle fonction ExecuteLNK(adr(lnk$)) de KGF.dll ou la procédure ExecuteLNK(lnk$) de KGF_SUB.bas exécute le programme associé à un fichier LNK comme si l'on avait double-cliqué sur le raccourci, ou lance le programme associé à un fichier dont le nom est passé en paramètre.

Cette fonction est principalement destinée à lancer des raccourcis placés sur le bureau, mais elle peut en fait être utilisée pour lancer n'importe quoi, pourvu que le chemin soit complet. Pas besoin de mettre le chemin en nom court.

Modules modifiés:
KGF.dll, KGF_SUB.bas, demo_KGF_SUB.bas, KGF_SUB.chm
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptyVen 30 Nov 2012 - 13:03

Argh, m'a curiosité me titille, tu bosses sur quoi en ce moment pour travailler sur les raccourcis du bureau ? Un lanceur d'appli, un bureau personnalisé, un environnement de dev ?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptyVen 30 Nov 2012 - 13:15

Ah, tu m'as percé à jour ! Je viens d'en terminer la première version !

C'est un programme qui permet de générer un source Panoramic qui implémente un menu présentant les icônes habituelles du bureau, dans un bandeau horizontal, avec un bord réduit. Un clic unique sur une des icônes lance le programme. La barre peut être réduite dans la barre des tâches et rappelée à nouveau. On peur en créer autant qu'on veut, et ils peuvent exécuter simultanément. Quand on place le curseur sur l'icône, le nom de l'icône du bureau s'affiche en "hint".

Pour chaque menu, on génère:
- un source .bas
- un dossier du même nom + "_data"
- dans ce dossier, il y a les icônes en format BMP (!), ainsi que deux fichiers texte, contenant pour le premier les noms des liens, et pour le second le texte à afficher en "hint" sur l'icône.

Le programme a besoin de KGF.dll.

Voici:
Code:
' creer_menu_pour_bureau.bas


labels()
constantes()
variables()
form0()
gui()
initialisations()

end

sub labels()
  label click_lnk, listfic, lnksel, generer
end_sub

sub constantes()
  dim bureau$ : bureau$ = "C:\Documents and settings\Klaus\bureau\"
  dim allusers$ : allusers$ = "C:\Documents and Settings\All Users\bureau\"
  dim ici$ : ici$ = dir_current$
  dim icones$ : icones$ = ici$+"\"+"icones\"
end_sub

sub variables()
  dim no%, taille%, f$, pic$, s$, d$, n%, i%
  dim no_fic%, no_ico%, no_hint%, no_save%, no_lnk%, no_liste%
end_sub

sub form0()
  caption 0,"Génération d'un menu graphique"
  full_space 0
end_sub

sub GUI()
  no% = no% + 1 : dlist no% : no_fic% = no%
  no% = no% + 1 : dlist no% : no_ico% = no%
  no% = no% + 1 : dlist no% : no_hint% = no%
  no% = no% + 1 : save_dialog no% : no_save% = no%
    filter no_save%,"Source Panoramic|*.bas"

  no% = no% + 1 : button no% : top no%,10 : left no%,10
    caption no%,"Liste" : on_click no%,listfic
  no% = no% + 1 : button no% : top no%,10 : left no%,120
    caption no%,"Générer" : on_click no%,generer

  no% = no% + 1 : list no% : no_liste% = no% : on_click no%,lnksel
    top no%,80 : width no%,400 : height no%,550
   
  no_lnk% = no%
   
end_sub

sub initialisations()
  KGF_initialize("KGF.dll")
end_sub

click_lnk:
  message "clic sur ["+item_read$(no_fic%,number_click-no_lnk%)+"]"
  return
 
listfic:
  clear no_liste%
  dir_change allusers$
  f$ = file_find_first$
  while f$<>"_"
    item_add no_liste%,f$
    f$ = file_find_next$
  end_while
  dir_change bureau$
  f$ = file_find_first$
  while f$<>"_"
    item_add no_liste%,f$
    f$ = file_find_next$
  end_while
  file_find_close
  dir_change ici$
 
  return
 
lnksel:
  if dir_exists(icones$)=0 then dir_make icones$
  if file_exists(bureau$+f$)=1
    f$ = bureau$ + item_index$(no_liste%)
  else
    f$ = allusers$ + item_index$(no_liste%)
  end_if
  pic$ = file_extract_name$(f$)
  pic$ = icones$+left$(pic$,len(pic$)-4)+".ico"
  ExtractIconFromLNK(f$,pic$)
  LoadAnyImageFile(pic$)
  no% = no% + 1 : picture no%
    top no%,40 : left no%,10+count(no_fic%)*(ExtractIconFromLNK+10)
    width no%,ExtractIconFromLNK : height no%,ExtractIconFromLNK
    on_click no%,click_lnk
  clipboard_paste no%
  item_add no_fic%,f$
  item_add no_ico%,pic$
  f$ = file_extract_name$(f$)
  hint no%,f$
  item_add no_hint%,f$
  file_delete pic$
  return
 
generer:
  dir_dialog no_save%,ici$
  f$ = file_name$(no_save%)
  if f$="_" then return
  if lower$(right$(f$,4))<>".bas" then f$ = f$ + ".bas"
  d$ = file_extract_name$(f$)
  d$ = left$(d$,len(d$)-4)+"_data\"
  file_open_write 1,f$
  file_writeln 1,"label click"
  file_writeln 1,"dll_on "+chr$(34)+"KGF.dll"+chr$(34)
  file_writeln 1,"border_small 0"
  file_writeln 1,"caption 0,"+chr$(34)+"Menu de raccourcis"+chr$(34)
  file_writeln 1,"height 0,30+"+str$(ExtractIconFromLNK)
  file_writeln 1,"width 0,10+(10+"+str$(ExtractIconFromLNK)+")*"+str$(count(no_fic%))
  file_writeln 1,"dlist 1001 : file_load 1001,"+chr$(34)+d$+"liens.txt"+chr$(34)
  file_writeln 1,"dlist 1002 : file_load 1002,"+chr$(34)+d$+"hints.txt"+chr$(34)
  file_writeln 1,"dim i%, s$"
  file_writeln 1,"for i%=1 to count(1001)"
  file_writeln 1,"  picture i% : left i%,(i%-1)*(10+"+str$(ExtractIconFromLNK)+")"
  file_writeln 1,"  width i%,"+str$(ExtractIconFromLNK)
  file_writeln 1,"  height i%,"+str$(ExtractIconFromLNK)
  file_writeln 1,"  file_load i%,"+chr$(34)+d$+"ico_"+chr$(34)+"+str$(i%)+"+chr$(34)+".bmp"+chr$(34)
  file_writeln 1,"  on_click i%,click"
  file_writeln 1,"  hint i%,item_read$(1002,i%)"
  file_writeln 1,"next i%"
  file_writeln 1,"end"
  file_writeln 1,"click:"
  file_writeln 1,"  s$ = item_read$(1001,number_click)"
  file_writeln 1,"  i% = dll_call1("+chr$(34)+"ExecuteLNK"+chr$(34)+",adr(s$))"
  file_writeln 1,"  return"
  file_close 1
  d$ = left$(f$,len(f$)-4)+"_data\"
  if dir_exists(d$)=0 then dir_make d$
  for i%=1 to count(no_fic%)
    file_save no_lnk%+i%,d$+"ico_"+str$(i%)+".bmp"
  next i%
  file_save no_fic%,d$+"liens.txt"
  file_save no_hint%,d$+"hints.txt"
  return
 
#INCLUDE "KGF_SUB.bas"

EDIT

Si l'on génère un tel programme en EXE, on peut créer un lien sur ce programme et inclure ce lien dans un autre menu généré de cette manière... On peut ainsi créer des menus graphiques hiérarchisés...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptyVen 30 Nov 2012 - 17:19

Hum, ça m'a l'air super ça, je regarde avant d'aller me coucher ce soir Wink
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptyVen 30 Nov 2012 - 19:29

Et voilà une nouvelle version du programme de génération de menus. Un clic dans le menu qui s'affiche lors de la phase de création, provoque une question "Supprimer...". Une réponse positive enlève cette icône de la liste, et les icônes sur la droite sont décalées vers la gauche. Cette fonction manquait si l'on avait ajouté une icône par erreur.
Code:
' creer_menu_pour_bureau.bas


labels()
constantes()
variables()
form0()
gui()
initialisations()

end

sub labels()
  label click_lnk, listfic, lnksel, generer
end_sub

sub constantes()
  dim bureau$ : bureau$ = "C:\Documents and settings\Klaus\bureau\"
  dim allusers$ : allusers$ = "C:\Documents and Settings\All Users\bureau\"
  dim ici$ : ici$ = dir_current$
  dim icones$ : icones$ = ici$+"\"+"icones\"
end_sub

sub variables()
  dim no%, taille%, f$, pic$, s$, d$, n%, i%, k%
  dim no_fic%, no_ico%, no_hint%, no_save%, no_lnk%, no_liste%
end_sub

sub form0()
  caption 0,"Génération d'un menu graphique"
  full_space 0
end_sub

sub GUI()
  no% = no% + 1 : dlist no% : no_fic% = no%
  no% = no% + 1 : dlist no% : no_ico% = no%
  no% = no% + 1 : dlist no% : no_hint% = no%
  no% = no% + 1 : save_dialog no% : no_save% = no%
    filter no_save%,"Source Panoramic|*.bas"

  no% = no% + 1 : button no% : top no%,10 : left no%,10
    caption no%,"Liste" : on_click no%,listfic
  no% = no% + 1 : button no% : top no%,10 : left no%,120
    caption no%,"Générer" : on_click no%,generer

  no% = no% + 1 : list no% : no_liste% = no% : on_click no%,lnksel
    top no%,80 : width no%,400 : height no%,550
   
  no_lnk% = no%
   
end_sub

sub initialisations()
  KGF_initialize("KGF.dll")
end_sub

click_lnk:
  if message_confirmation_yes_no("Supprimer ["+item_read$(no_fic%,number_click-no_lnk%)+"]")=1
    i% = number_click - no_lnk%
    item_delete no_fic%,i%
    item_delete no_hint%,i%
    if i%<=count(no_fic%)
      for k%=i% to count(no_fic%)
        clipboard_copy no_lnk% + k% + 1
        clipboard_paste no_lnk% + k%
      next k%
    end_if
    delete no_lnk% + count(no_fic%)+1
  end_if
  return
 
listfic:
  clear no_liste%
  dir_change allusers$
  f$ = file_find_first$
  while f$<>"_"
    item_add no_liste%,f$
    f$ = file_find_next$
  end_while
  dir_change bureau$
  f$ = file_find_first$
  while f$<>"_"
    item_add no_liste%,f$
    f$ = file_find_next$
  end_while
  file_find_close
  dir_change ici$
 
  return
 
lnksel:
  inactive no_liste%
  if dir_exists(icones$)=0 then dir_make icones$
  if file_exists(bureau$+f$)=1
    f$ = bureau$ + item_index$(no_liste%)
  else
    f$ = allusers$ + item_index$(no_liste%)
  end_if
  pic$ = file_extract_name$(f$)
  pic$ = icones$+left$(pic$,len(pic$)-4)+".ico"
  ExtractIconFromLNK(f$,pic$)
  LoadAnyImageFile(pic$)
  no% = no% + 1 : picture no%
    top no%,40 : left no%,10+count(no_fic%)*(ExtractIconFromLNK+10)
    width no%,ExtractIconFromLNK : height no%,ExtractIconFromLNK
    on_click no%,click_lnk
  clipboard_paste no%
  item_add no_fic%,f$
  item_add no_ico%,pic$
  f$ = file_extract_name$(f$)
  hint no%,f$
  item_add no_hint%,f$
  file_delete pic$
  pause 100
  active no_liste%
  return
 
generer:
  dir_dialog no_save%,ici$
  f$ = file_name$(no_save%)
  if f$="_" then return
  if lower$(right$(f$,4))<>".bas" then f$ = f$ + ".bas"
  d$ = file_extract_name$(f$)
  d$ = left$(d$,len(d$)-4)+"_data\"
  file_open_write 1,f$
  file_writeln 1,"label click"
  file_writeln 1,"dll_on "+chr$(34)+"KGF.dll"+chr$(34)
  file_writeln 1,"border_small 0"
  file_writeln 1,"caption 0,"+chr$(34)+"Menu de raccourcis"+chr$(34)
  file_writeln 1,"height 0,30+"+str$(ExtractIconFromLNK)
  file_writeln 1,"width 0,10+(10+"+str$(ExtractIconFromLNK)+")*"+str$(count(no_fic%))
  file_writeln 1,"dlist 1001 : file_load 1001,"+chr$(34)+d$+"liens.txt"+chr$(34)
  file_writeln 1,"dlist 1002 : file_load 1002,"+chr$(34)+d$+"hints.txt"+chr$(34)
  file_writeln 1,"dim i%, s$"
  file_writeln 1,"for i%=1 to count(1001)"
  file_writeln 1,"  picture i% : left i%,(i%-1)*(10+"+str$(ExtractIconFromLNK)+")"
  file_writeln 1,"  width i%,"+str$(ExtractIconFromLNK)
  file_writeln 1,"  height i%,"+str$(ExtractIconFromLNK)
  file_writeln 1,"  file_load i%,"+chr$(34)+d$+"ico_"+chr$(34)+"+str$(i%)+"+chr$(34)+".bmp"+chr$(34)
  file_writeln 1,"  on_click i%,click"
  file_writeln 1,"  hint i%,item_read$(1002,i%)"
  file_writeln 1,"next i%"
  file_writeln 1,"end"
  file_writeln 1,"click:"
  file_writeln 1,"  s$ = item_read$(1001,number_click)"
  file_writeln 1,"  i% = dll_call1("+chr$(34)+"ExecuteLNK"+chr$(34)+",adr(s$))"
  file_writeln 1,"  return"
  file_close 1
  d$ = left$(f$,len(f$)-4)+"_data\"
  if dir_exists(d$)=0 then dir_make d$
  for i%=1 to count(no_fic%)
    file_save no_lnk%+i%,d$+"ico_"+str$(i%)+".bmp"
  next i%
  file_save no_fic%,d$+"liens.txt"
  file_save no_hint%,d$+"hints.txt"
  return
 
#INCLUDE "KGF_SUB.bas"
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptyVen 30 Nov 2012 - 20:09

J'ai voulu essayer ce programme, car j'avais l'intention de faire quelque chose avec le bureau, pour enlever ensuite la majorité des icones de celui-ci. Donc j'ai voulu savoir si ton programme était similaire à mon idée.
Mais: je reste bloqué ligne 80 avec : dir_change bureau$.
Chez moi: le bureau est:
dim bureau$ : bureau$ = "C:\Documents and Settings\xxxx\Bureau\".
J'ai le message: répertoire inconnu ligne 80, alors que celui-ci est valable., et je le liste dans propriété.
Je sais que d'autre sous W7, ont une autre syntaxe, mais moi, Documents and Settings fait bien partie du chemin.
Je ne sais quel sera l'avis des autres sous W7.

Je viens de penser que je n'ai téléchargé la dernière version, mais je suis bloqué avant.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptyVen 30 Nov 2012 - 20:54

Dans mon source, il y a la procédure constantes() définie comme ceci:
Code:
sub constantes()
  dim bureau$ : bureau$ = "C:\Documents and settings\Klaus\bureau\"
  dim allusers$ : allusers$ = "C:\Documents and Settings\All Users\bureau\"
  dim ici$ : ici$ = dir_current$
  dim icones$ : icones$ = ici$+"\"+"icones\"
end_sub

Les deux variables bureau$ et alluser$ doivent être adaptés pour correspondre à chaque installation. Je travaille sur une automatisation de cela, mais ce n'est pas prêt.

Si le chemin que tu mets, est vraiment le bon, il ne peut s'agir que d'un problème de droit d'accès. Chez moi, pour établir le chemin, je faic clic droit/propriétés sur un fichier dans le répertoire, ou sur le nom "bureau" dans le répertoire portant le nom de l'utilisateur, le surligne le nom du chemin que je capte avec ctrl/C, puis je le copie dans la variable par ctrl/V, ceci pour éviter des fautes de frappe. J'ai notamment été embêté (et le mot est faible) par un caractère non affiché que j'avais réussi à saisir par mégarde, lors d'une faute de frappe.

Je l'ai dit, je travaille sur une automatisation de la détermination de ces chemins. Et en plus, je travaille sur une mémorisation d'une copie de ces raccourcis dans le répertoire xxx_data créé lors de la génération. Ceci permettra de supprimer ces liens du bureau après la génération, tout en les gardant dans ce dossier, d'où on pourra les récupérer dans problème en cas de besoin.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptyVen 30 Nov 2012 - 22:46

Voici une nouvelle version qui trouve automatiquement le chemin vers le bureau de l'utilisateur ET vers celui de "All Users" ! Cela devrait régler certains problèmes:
Code:
' creer_menu_pour_bureau.bas


labels()
constantes()
variables()
form0()
gui()
initialisations()

end

sub labels()
  label click_lnk, listfic, lnksel, generer
end_sub

sub constantes()
'  dim bureau$ : bureau$ = "C:\Documents and settings\Klaus\bureau\"
  dim key_au$ : key_au$ = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
  dim value_au$ : value_au$ = "Common Desktop"
  dim key_u$ : key_u$ = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
  dim value_u$ : value_u$ = "Desktop"
  dim ici$ : ici$ = dir_current$
  dim icones$ : icones$ = ici$+"\"+"icones\"
end_sub

sub variables()
  dim no%, taille%, f$, pic$, s$, d$, n%, i%, k%
  dim no_fic%, no_ico%, no_hint%, no_save%, no_lnk%, no_liste%
  dim allusers$, bureau$
end_sub

sub form0()
  caption 0,"Génération d'un menu graphique"
  full_space 0
end_sub

sub GUI()
  no% = no% + 1 : dlist no% : no_fic% = no%
  no% = no% + 1 : dlist no% : no_ico% = no%
  no% = no% + 1 : dlist no% : no_hint% = no%
  no% = no% + 1 : save_dialog no% : no_save% = no%
    filter no_save%,"Source Panoramic|*.bas"

  no% = no% + 1 : button no% : top no%,10 : left no%,10
    caption no%,"Liste" : on_click no%,listfic
  no% = no% + 1 : button no% : top no%,10 : left no%,120
    caption no%,"Générer" : on_click no%,generer

  no% = no% + 1 : list no% : no_liste% = no% : on_click no%,lnksel
    top no%,80 : width no%,400 : height no%,550
   
  no_lnk% = no%
   
end_sub

sub initialisations()
  KGF_initialize("KGF.dll")
  ReadRegistryKey(3,key_u$,value_u$)
  bureau$ = ReadRegistryKey$ + "\"
  ReadRegistryKey(4,key_au$,value_au$)
  allusers$ = ReadRegistryKey$ + "\"
end_sub

click_lnk:
  if message_confirmation_yes_no("Supprimer ["+item_read$(no_fic%,number_click-no_lnk%)+"]")=1
    i% = number_click - no_lnk%
    item_delete no_fic%,i%
    item_delete no_hint%,i%
    if i%<=count(no_fic%)
      for k%=i% to count(no_fic%)
        clipboard_copy no_lnk% + k% + 1
        clipboard_paste no_lnk% + k%
      next k%
    end_if
    delete no_lnk% + count(no_fic%)+1
  end_if
  return
 
listfic:
  clear no_liste%
  dir_change allusers$
  f$ = file_find_first$
  while f$<>"_"
    item_add no_liste%,f$
    f$ = file_find_next$
  end_while
  item_add no_liste%,""
  dir_change bureau$
  f$ = file_find_first$
  while f$<>"_"
    item_add no_liste%,f$
    f$ = file_find_next$
  end_while
  file_find_close
  dir_change ici$
 
  return
 
lnksel:
  f$ = item_index$(no_liste%)
  if f$="" then return
  inactive no_liste%
  if dir_exists(icones$)=0 then dir_make icones$
  if file_exists(bureau$+f$)=1
    f$ = bureau$ + item_index$(no_liste%)
  else
    f$ = allusers$ + item_index$(no_liste%)
  end_if
  pic$ = file_extract_name$(f$)
  pic$ = icones$+left$(pic$,len(pic$)-4)+".ico"
  ExtractIconFromLNK(f$,pic$)
  LoadAnyImageFile(pic$)
  no% = no% + 1 : picture no%
    top no%,40 : left no%,10+count(no_fic%)*(ExtractIconFromLNK+10)
    width no%,ExtractIconFromLNK : height no%,ExtractIconFromLNK
    on_click no%,click_lnk
  clipboard_paste no%
  item_add no_fic%,f$
  item_add no_ico%,pic$
  f$ = file_extract_name$(f$)
  hint no%,f$
  item_add no_hint%,f$
  file_delete pic$
  pause 100
  active no_liste%
  return
 
generer:
  dir_dialog no_save%,ici$
  f$ = file_name$(no_save%)
  if f$="_" then return
  if lower$(right$(f$,4))<>".bas" then f$ = f$ + ".bas"
  d$ = file_extract_name$(f$)
  d$ = left$(d$,len(d$)-4)+"_data\"
  file_open_write 1,f$
  file_writeln 1,"label click"
  file_writeln 1,"dll_on "+chr$(34)+"KGF.dll"+chr$(34)
  file_writeln 1,"border_small 0"
  file_writeln 1,"caption 0,"+chr$(34)+"Menu de raccourcis"+chr$(34)
  file_writeln 1,"height 0,30+"+str$(ExtractIconFromLNK)
  file_writeln 1,"width 0,10+(10+"+str$(ExtractIconFromLNK)+")*"+str$(count(no_fic%))
  file_writeln 1,"dlist 1001 : file_load 1001,"+chr$(34)+d$+"liens.txt"+chr$(34)
  file_writeln 1,"dlist 1002 : file_load 1002,"+chr$(34)+d$+"hints.txt"+chr$(34)
  file_writeln 1,"dim i%, s$"
  file_writeln 1,"for i%=1 to count(1001)"
  file_writeln 1,"  picture i% : left i%,(i%-1)*(10+"+str$(ExtractIconFromLNK)+")"
  file_writeln 1,"  width i%,"+str$(ExtractIconFromLNK)
  file_writeln 1,"  height i%,"+str$(ExtractIconFromLNK)
  file_writeln 1,"  file_load i%,"+chr$(34)+d$+"ico_"+chr$(34)+"+str$(i%)+"+chr$(34)+".bmp"+chr$(34)
  file_writeln 1,"  on_click i%,click"
  file_writeln 1,"  hint i%,item_read$(1002,i%)"
  file_writeln 1,"next i%"
  file_writeln 1,"end"
  file_writeln 1,"click:"
  file_writeln 1,"  s$ = item_read$(1001,number_click)"
  file_writeln 1,"  i% = dll_call1("+chr$(34)+"ExecuteLNK"+chr$(34)+",adr(s$))"
  file_writeln 1,"  return"
  file_close 1
  d$ = left$(f$,len(f$)-4)+"_data\"
  if dir_exists(d$)=0 then dir_make d$
  for i%=1 to count(no_fic%)
    file_save no_lnk%+i%,d$+"ico_"+str$(i%)+".bmp"
  next i%
  file_save no_fic%,d$+"liens.txt"
  file_save no_hint%,d$+"hints.txt"
  return
 
#INCLUDE "KGF_SUB.bas"

Pas de nouvelle version de KGF.dll nécessaire pour cela. J'utilise la fonction de lecture du registre que j'avais déjà implémentée.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptyVen 30 Nov 2012 - 23:59

Je viens de télécharger la dernière mouture, et essayé le programme.
Je n'ai plus l'erreur signalé plus haut, vu que bureau$ n'a plus lieu.
le clic sur List fonctionne, et en appuyant sur Générer, j'ai une erreur avec le message suivant:
(52) Not correct string expression: .Line : 142.
C'est la ligne:
Code:
  file_writeln 1,"height 0,30+"+str$(ExtractIconFromLNK)
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 0:08

Recharge KGF.dll et KGF_SUB.bas... Je pense que c'est un problème de version.

Et voici une nouvelle version du programme ! Ce programme sauvegarde maintenant TOUS les fichiers concernés (LNK, TXT, ...), enfin tout ce sur quoi on a cliqué, dans le dossier xxx_data\, avec le même nom. Et lorsqu'on clique sur une icône dans le menu généré, il va chercher son action à effectuer dans ce dossier et n'a plus besoin de la présence de ces icônes sur le bureau. On peut donc, après une génération réussie, supprimer ces liens du bureau, sachant que ces raccourcis (ou fichiers) sont toujours dans le dossier généré.
Code:
' creer_menu_pour_bureau.bas


labels()
constantes()
variables()
form0()
gui()
initialisations()

end

sub labels()
  label click_lnk, listfic, lnksel, generer
end_sub

sub constantes()
'  dim bureau$ : bureau$ = "C:\Documents and settings\Klaus\bureau\"
  dim key_au$ : key_au$ = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
  dim value_au$ : value_au$ = "Common Desktop"
  dim key_u$ : key_u$ = "SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"
  dim value_u$ : value_u$ = "Desktop"
  dim ici$ : ici$ = dir_current$
  dim icones$ : icones$ = ici$+"\"+"icones\"
end_sub

sub variables()
  dim no%, taille%, f$, pic$, s$, d$, n%, i%, k%
  dim no_fic%, no_ico%, no_hint%, no_save%, no_lnk%, no_liste%
  dim allusers$, bureau$
end_sub

sub form0()
  caption 0,"Génération d'un menu graphique"
  full_space 0
end_sub

sub GUI()
  no% = no% + 1 : dlist no% : no_fic% = no%
  no% = no% + 1 : dlist no% : no_ico% = no%
  no% = no% + 1 : dlist no% : no_hint% = no%
  no% = no% + 1 : save_dialog no% : no_save% = no%
    filter no_save%,"Source Panoramic|*.bas"

  no% = no% + 1 : button no% : top no%,10 : left no%,10
    caption no%,"Liste" : on_click no%,listfic
  no% = no% + 1 : button no% : top no%,10 : left no%,120
    caption no%,"Générer" : on_click no%,generer

  no% = no% + 1 : list no% : no_liste% = no% : on_click no%,lnksel
    top no%,80 : width no%,400 : height no%,550
   
  no_lnk% = no%
   
end_sub

sub initialisations()
  KGF_initialize("KGF.dll")
  ReadRegistryKey(3,key_u$,value_u$)
  bureau$ = ReadRegistryKey$ + "\"
  ReadRegistryKey(4,key_au$,value_au$)
  allusers$ = ReadRegistryKey$ + "\"
end_sub

click_lnk:
  if message_confirmation_yes_no("Supprimer ["+item_read$(no_fic%,number_click-no_lnk%)+"]")=1
    i% = number_click - no_lnk%
    item_delete no_fic%,i%
    item_delete no_hint%,i%
    if i%<=count(no_fic%)
      for k%=i% to count(no_fic%)
        clipboard_copy no_lnk% + k% + 1
        clipboard_paste no_lnk% + k%
      next k%
    end_if
    delete no_lnk% + count(no_fic%)+1
  end_if
  return
 
listfic:
  clear no_liste%
  dir_change allusers$
  f$ = file_find_first$
  while f$<>"_"
    item_add no_liste%,f$
    f$ = file_find_next$
  end_while
  item_add no_liste%,""
  dir_change bureau$
  f$ = file_find_first$
  while f$<>"_"
    item_add no_liste%,f$
    f$ = file_find_next$
  end_while
  file_find_close
  dir_change ici$
 
  return
 
lnksel:
  f$ = item_index$(no_liste%)
  if f$="" then return
  inactive no_liste%
  if dir_exists(icones$)=0 then dir_make icones$
  if file_exists(bureau$+f$)=1
    f$ = bureau$ + item_index$(no_liste%)
  else
    f$ = allusers$ + item_index$(no_liste%)
  end_if
  pic$ = file_extract_name$(f$)
  pic$ = icones$+left$(pic$,len(pic$)-4)+".ico"
  ExtractIconFromLNK(f$,pic$)
  LoadAnyImageFile(pic$)
  no% = no% + 1 : picture no%
    top no%,40 : left no%,10+count(no_fic%)*(ExtractIconFromLNK+10)
    width no%,ExtractIconFromLNK : height no%,ExtractIconFromLNK
    on_click no%,click_lnk
  clipboard_paste no%
  item_add no_fic%,f$
  item_add no_ico%,pic$
  f$ = file_extract_name$(f$)
  hint no%,f$
  item_add no_hint%,f$
  file_delete pic$
  pause 100
  active no_liste%
  return
 
generer:
  dir_dialog no_save%,ici$
  f$ = file_name$(no_save%)
  if f$="_" then return
  if lower$(right$(f$,4))<>".bas" then f$ = f$ + ".bas"
  d$ = file_extract_name$(f$)
  d$ = left$(d$,len(d$)-4)+"_data\"
  file_open_write 1,f$
  file_writeln 1,"label click"
  file_writeln 1,"dll_on "+chr$(34)+"KGF.dll"+chr$(34)
  file_writeln 1,"border_small 0"
  file_writeln 1,"caption 0,"+chr$(34)+"Menu de raccourcis"+chr$(34)
  file_writeln 1,"height 0,30+"+str$(ExtractIconFromLNK)
  file_writeln 1,"width 0,10+(10+"+str$(ExtractIconFromLNK)+")*"+str$(count(no_fic%))
  file_writeln 1,"dlist 1001 : file_load 1001,"+chr$(34)+d$+"liens.txt"+chr$(34)
  file_writeln 1,"dlist 1002 : file_load 1002,"+chr$(34)+d$+"hints.txt"+chr$(34)
  file_writeln 1,"dim i%, s$"
  file_writeln 1,"for i%=1 to count(1001)"
  file_writeln 1,"  picture i% : left i%,(i%-1)*(10+"+str$(ExtractIconFromLNK)+")"
  file_writeln 1,"  width i%,"+str$(ExtractIconFromLNK)
  file_writeln 1,"  height i%,"+str$(ExtractIconFromLNK)
  file_writeln 1,"  file_load i%,"+chr$(34)+d$+"ico_"+chr$(34)+"+str$(i%)+"+chr$(34)+".bmp"+chr$(34)
  file_writeln 1,"  on_click i%,click"
  file_writeln 1,"  hint i%,item_read$(1002,i%)"
  file_writeln 1,"next i%"
  file_writeln 1,"end"
  file_writeln 1,"click:"
  file_writeln 1,"  s$ = item_read$(1001,number_click)"
  file_writeln 1,"  s$ = "+chr$(34)+d$+chr$(34)+"+file_extract_name$(s$)"
file_writeln 1,"message s$"
  file_writeln 1,"  i% = dll_call1("+chr$(34)+"ExecuteLNK"+chr$(34)+",adr(s$))"
  file_writeln 1,"  return"
  file_close 1
  d$ = left$(f$,len(f$)-4)+"_data\"
  if dir_exists(d$)=0 then dir_make d$
  file_save no_fic%,d$+"liens.txt"
  file_save no_hint%,d$+"hints.txt"
  for i%=1 to count(no_fic%)
    file_save no_lnk%+i%,d$+"ico_"+str$(i%)+".bmp"
    f$ = item_read$(no_fic%,i%)
    f$ = file_extract_name$(f$)
    if file_exists(bureau$+f$)=1
      f$ = bureau$ + f$
    else
      f$ = allusers$ + f$
    end_if
    filebin_open_read 1,f$
    k% = filebin_size(1)
    dim buffer%(k%+1)
    filebin_block_read 1,k%,buffer%(1)
    filebin_open_write 2,d$+file_extract_name$(f$)
    filebin_block_write 2,k%,buffer%(1)
    filebin_close 2
    filebin_close 1
    free buffer%
  next i%
  return
 
#INCLUDE "KGF_SUB.bas"
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 0:20

J'ai enregistré la dernière version, 5 mn avant de mettre le message.
Mais je ne vois pas où KGF est appelé. En mettant le message juste avant:
Code:
message  ExtractIconFromLNK
j'obtiens la réponse: ExtractIconFromLNK, ce qui veut dire que cette variable n'est pas déclarée. Je devrais normalement avoir au moins 0.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 0:27

C'est parce que tu n'as pas une version à jour de KGF_SUB.bas. La version à jour a 56.770 octets et est datée du vendredi 30 novembre 2012 à 12:44:36. Dans ce fichier, entre les lignes 1336 et 1344, tu trouves ceci:
Code:
' ==== res% = dll_call2("ExtractIconFromLNK",adr(lnk$),adr(out$),adr(path$))
sub ExtractIconFromLNK(lnk$,out$)
  if variable("ExtractIconFromLNK")=0 then dim ExtractIconFromLNK
  if variable("ExtractIconFromLNK$")=0 then dim ExtractIconFromLNK$
  ExtractIconFromLNK$ = string$(255," ")
  KGF_res% = dll_call3("ExtractIconFromLNK",adr(lnk$),adr(out$),adr(ExtractIconFromLNK$))
  ExtractIconFromLNK = KGF_res%
  ExtractIconFromLNK$ = trim$(ExtractIconFromLNK$)
end_sub
et tu vois que ExtractIconFromLNK est parfaitement défini !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 0:33

Tiens Klaus, au fait, je suis tombé sur un site qui parle de toi et de tes DLL Wink
http://libertybasic.fr/forum/topic-161+les-dll.php
Revenir en haut Aller en bas
Invité
Invité




KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 0:35

Voici l'écran:
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Kgf_ic10
Le mode d'emploi est bien de lister en premier, puis de générer?
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 0:38

Merci, Jicehel ! C'est une bonne nouvelle, surtout parce qu'il y a une mention de Panoramic. Faudrait peut-être leur envoyer le lien vers le forum...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 0:55

Klaus est devenu EXTRA PANORAMIC !
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 1:07

@Cosmos70:
Désolé pour le mode d'emploi. Ce qu'il faut faire:
1. Bouton "Lister". Cela remplit la liste en bas avec TOUTES les icônes qui se trouvent sur le bureau. Tu trouveras d'abord les icônes provenant de \All Users\bureau\, puis une ligne blanche, puis les icônes provenant de \xxx\bureau\.
2. Sélectionner certaines icônes en cliquant sur la ligne correspondante dans la liste. L'icône s'affiche au-dessus. Répéter cette opération pour toutes les icônes qu'on peut inclure dans la barre de menus à générer. Si l'on s'est trompé, il suffit de cliquer sur l'icône affichée en haut et répondre positivement à la confirmation de suppression.
3. Lorsque l'ensemble des icônes souhaitées pour une barre donnée est affiché, alors on clique sur "Générer". Le programme demande alors le nom du menu à générer. Il faut le saisir sans extension, mais on peut choisir le dossier, voir même en créer un pour cela. Le programme place alors un fichier *.bas du même nom dans ce dossier, ainsi qu'un sous-dossier du même nom avec le suffixe "_data". Dans ce sous-dossier, on trouve liens.txt, hints.txt, les icônes en format BMP et les raccourcis voir les fichiers copiés à partir du bureau.
4. Générer l'exécutable à partir du module bas généré, et un a un joli menu graphique, façon mini-bureau.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 1:10

Est-ce que cela marche chez toi?

Une fois listée, j'ai liqué sur un item pour voir, et j'obtiens un message d'erreur. Voici la partie concernée: j'ai mis un message pour lister ink$ et out$:

sub ExtractIconFromLNK(lnk$,out$)
message lnk$+chr$(13)+out$
' je reçois:
' C:\Users\Public\Desktop\Mozilla Firefox.Ink et
' C:\PANO\Basic_Panoramique\icones\Mozilla Firefox.ico puis:
' (29) Not correct arithmetic expression: Error in function. Line 1498 , soit la ligne suivante:
if variable("ExtractIconFromLNK")=0 then dim ExtractIconFromLNK <<<== ligne concernée
if variable("ExtractIconFromLNK$")=0 then dim ExtractIconFromLNK$

A noter que j'ai mis kgf_sub à la suite pour voir les numéros de ligne d'erreur.
Je viens de lire ton message au moment d'envoyer, mais j'ai encore un problème:
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 1:25

J'ai regardé attentivement ce que tu as posté.


Code:
sub ExtractIconFromLNK(lnk$,out$)
message lnk$+chr$(13)+out$
1. tu as collé KGF_SUB.bas à la suite de ton source, à la place de la directive #INCLUDE. Bien.
2. tu as inséré une commande MESSAGE après la déclaration SUB. Bien.

Code:
 je reçois:
' C:\Users\Public\Desktop\Mozilla Firefox.Ink et
' C:\PANO\Basic_Panoramique\icones\Mozilla Firefox.ico puis:
3. la première ligne donne le chemin complet et le nom de l'icône que tu veux traiter. Bien.
4. la seconde ligne donne le chemin et le nom d'un fichier temporaire dans lequel le programme va extraire l'icône, en format ICO. C'est correct. Ce répertoire \icones\ ne sert qu'à ça. Ce fichier sera ensuite chargée dans le presse-papier par LoadAnyImageFile(pic$), puis on crée le picture à l'écran, dans lequel on charge le presse-papier par clipboard_paste no%. Bien.

Code:
' (29) Not correct arithmetic expression: Error in function. Line 1498 , soit la ligne suivante:
if variable("ExtractIconFromLNK")=0 then dim ExtractIconFromLNK <<<== ligne concernée
5. alors là, c'est le mystère total, car cette ligne fonctionne parfaitement chez moi. Elle n'a rien de particulier. Je l'ai isolé et place dans un programme à part:
Code:
if variable("ExtractIconFromLNK")=0 then dim ExtractIconFromLNK
message str$(ExtractIconFromLNK)
end
et ce programme affiche bien 0 ce qui est normal. Est-ce que quelqu'un a jeté un sort à ta machine ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Invité
Invité




KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 1:35

Je suis comme toi, je ne comprend pas trop bien.
J'ai modifié la ligne concernée pour voir:
Code:
 if variable("ExtractIconFromLNK")=0 then message "ok":stop:dim ExtractIconFromLNK
Je reçois le message ok, et si je continu, je retrouve le message d'erreur.

Je pense que le mieux sera que je redémarre ma machine, mais je verrais cela demain.
Merci pour toute l'attention que tu portes.
Je vais voir le petit bonhomme bleu avec des Zzz. Sleep
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12331
Age : 75
Localisation : Ile de France
Date d'inscription : 29/12/2009

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 1:37

Moi aussi...
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 1:42

Peut-être que tu as une espace en trop après THEN !
Code:

if variable("ExtractIconFromLNK")=0 then  dim ExtractIconFromLNK
Exécute cette ligne et tu auras une erreur !
Laisse une seule espace entre THEN et DIM, ça devient correct !

NB : on dit bien une espace et non un espace !


Dernière édition par papydall le Sam 1 Déc 2012 - 1:50, édité 1 fois
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 1:45

En tout cas, chez moi, ça fonctionne
bonne nuit les Panoramiciens
Revenir en haut Aller en bas
Invité
Invité




KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 1:53

Un dernier pour la route (des songes).
Citation :
Peut-être que tu as une espace en trop après THEN !
J'y ai pensé Papydall, et il n'y a qu'un espace, d'autant qu'au départ, c'est le code de Klaus.
De plus cette erreur n’apparaît après le then, que si il n'y a qu'une seule commande. Si il y a plusieurs commandes après le then, il peut y avoir plusieurs espaces sans problème. Mais le code avec STOP, qui génère donc une commande supplémentaire, rend caduc cette erreur: stop et dim.
Bonne nuit.
Revenir en haut Aller en bas
Invité
Invité




KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK EmptySam 1 Déc 2012 - 10:04

J'ai redémarré mon ordi, et ça fonctionne. Bravo!
Comme on dit: mystère et boule de gomme quant aux problèmes rencontrés.
Revenir en haut Aller en bas
Contenu sponsorisé





KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty
MessageSujet: Re: KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK   KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK Empty

Revenir en haut Aller en bas
 
KGF.DLL version V1.85 du 29/11/2012 : ajout ExecuteLNK
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» KGF.DLL version V1.83 du 15/11/2012 : ajout FilterString
» KGF.DLL V1.85 du 29/11/2012 : ajout ExtractIconFromLNK
» 1.89 09/12/2012 ajout fonction GetListBoxItemFromPoint
» KGF.dll 1.80 24/10/2012 ajout fonction CopyToClipboard
» KGF.DLL V01.81 29/10/2012 ajout fonction CopyObject

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: Activité des sites créés par les Panoramiciens. :: Le site de Klaus-
Sauter vers: