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
» Gestion d'un système client-serveur.
Nouvelle DLL Pilote.dll Emptypar Klaus Ven 17 Mai 2024 - 14:02

» item_index(résolu)
Nouvelle DLL Pilote.dll Emptypar jjn4 Mar 14 Mai 2024 - 19:38

» Bataille terrestre
Nouvelle DLL Pilote.dll Emptypar jjn4 Lun 13 Mai 2024 - 15:01

» SineCube
Nouvelle DLL Pilote.dll Emptypar Marc Sam 11 Mai 2024 - 12:38

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Nouvelle DLL Pilote.dll Emptypar Marc Sam 11 Mai 2024 - 12:22

» Philharmusique
Nouvelle DLL Pilote.dll Emptypar jjn4 Ven 10 Mai 2024 - 13:58

» PANORAMIC V 1
Nouvelle DLL Pilote.dll Emptypar papydall Jeu 9 Mai 2024 - 3:22

» select intégrés [résolu]
Nouvelle DLL Pilote.dll Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Nouvelle DLL Pilote.dll Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Nouvelle DLL Pilote.dll Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Nouvelle DLL Pilote.dll Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Nouvelle DLL Pilote.dll Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0(résolu)
Nouvelle DLL Pilote.dll Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Nouvelle DLL Pilote.dll Emptypar Klaus Lun 6 Mai 2024 - 11:41

» @Jack
Nouvelle DLL Pilote.dll Emptypar Jack Mar 30 Avr 2024 - 20:40

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le deal à ne pas rater :
ETB Pokémon Fable Nébuleuse : où acheter le coffret dresseur ...
Voir le deal

 

 Nouvelle DLL Pilote.dll

Aller en bas 
3 participants
AuteurMessage
Klaus

Klaus


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

Nouvelle DLL Pilote.dll Empty
MessageSujet: Nouvelle DLL Pilote.dll   Nouvelle DLL Pilote.dll EmptyVen 17 Fév 2012 - 16:27

Nouvelle DLL Pilote: je déplace tout ce qui a trait à cette DLL, ici à cet endroit !

Pour rappel: les fonctions déjà existantes:

Execute_PANORAMIC - exécuter un progrfamme Panoramic en tant que "script", directement à partir de son source
Stop_PANORAMIC - arrêter un tel scripte et/ou arrêter l'éditeur Panoramic

Nouvelles fonctions;

Ces fonctions permettent à un programme Panoramic de se comporter comme un programme en mode console et de pouvoir écrire sur StdOutput, de sorte qu'un programme suivant puisse récupérer cela, un peu comme DIR | MORE sous DOS. Ceci peut particulièrement être utilisé avec le nouveau programme PANORAMIC.exe que Jack a mis en ligne récemment. On peut alors faire
PANORAMIC.exe "mon source Panoramic.bas" | MORE
pour montrer le principe.


Open_StdOutput - Pour accéder à StdOutput en Panoramic :
res% = dll_call0("Open_StdOutput”)

Cette fonction donne accès à StdOutput à un programme Panoramic.

Write_StdOutput - Pour écrire sur StdOutput dans un programme Panoramic :
res% = dll_call1("Write_StdOutput",adr(text$))
text$ = texte à écrire

Cette fonction sert à écrire un texte sur StdOutput. Le texte peut avoir une longueur quelconque. S’il faut terminer le texte par CR LF, il faut inclure ces caractères dans la variable text$.

Close_StdOutput - Pour clore l’accès à StdOutput en Panoramic :
res% = dll_call0("Close_StdOutput”)

Cette fonction clôt l’accès à StdOutput.

Ceci pourrait intéresser Jean Debord, par exemple. J'ai aussi une fonction permettant dee récupérer StdInput dans un programme Panoramic - je la mettrai en ligne prochainement.


D'ailleurs, voici le code concerné par StdOutput dans ma DLL:
Code:

var
  OutputStream : THandleStream;

...

function Open_StdOutput(): integer; stdcall; export;
begin
//  InputStream := THandleStream.Create(GetStdHandle(STD_INPUT_HANDLE));
  OutputStream := THandleStream.Create(GetStdHandle(STD_OUTPUT_HANDLE));
  result := 0;
end;

function Write_StdOutput(txt: pchar): integer; stdcall; export
var
  text: string;
begin
  text := pchar(pstring(txt)^);
  OutputStream.Write(text[1],length(text));
  result := 0;
end;

function Close_StdOutput(): integer; stdcall; export
begin
  OutputStream.Free;
  result := 0;
end;

Suggestion à Jack: Peut-être pourrais-tu insérer un code similaire dans Panoramic pour donner accès à cela ?
Jean-Debord a proposé un PRINT_TARGET_IS_CONSOLE.
Je proposerais plutôt un FILECONSOLE_OPEN_WRITE, FILECONSOLE_WRITE et FILECONSOLE_CLOSE, dans la sémantique des FILEBIN_... . On pourrait facilement y ajouter FILECONSOLE_OPEN_READ et FILECONSOLE_READ pour compléter les fonctions.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
jean_debord

jean_debord


Nombre de messages : 1250
Age : 69
Localisation : Limoges
Date d'inscription : 21/09/2008

Nouvelle DLL Pilote.dll Empty
MessageSujet: Re: Nouvelle DLL Pilote.dll   Nouvelle DLL Pilote.dll EmptySam 18 Fév 2012 - 8:28

Merci Klaus. Je viens de récupérer la DLL.

Je suis d'accord que des instructions FILECONSOLE... seraient plus utiles qu'un autre PRINT_TARGET
Revenir en haut Aller en bas
http://www.unilim.fr/pages_perso/jean.debord/index.htm
Klaus

Klaus


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

Nouvelle DLL Pilote.dll Empty
MessageSujet: Re: Nouvelle DLL Pilote.dll   Nouvelle DLL Pilote.dll EmptyVen 24 Fév 2012 - 10:07

J'ai mis en ligne une nouvelle version de pilote.dll.

Les nouvelles fonctions sont:
res% = dll_call0("Open_StdInput”)
len% = dll_call1("Read_StdInput”,adr(text$))
res% = dll_call0("Close_StdInput”)
Vkbincode% = dll_call1("Get_VK_code" ,adr(vknametext$))
res% = dll_call2("Get_VK_name" ,vkbincode%,adr(vknametext$))
res% = dll_call2("SendCharacter" ,adr(windowtitle$),adr(text$))
res% = dll_call2(“SendCharacterByHandle”,hnd%,adr(text$))
hnd% = dll_call3("FindFirstWindow",adr(titre$),adr(classe$),mode%)
hnd% = dll_call3("FindFirstWindow",adr(titre$),adr(classe$),mode%)
Res% = dll_call1("GetWindowFilter",adr(filter$))
Res% = dll_call1("SetWindowFilter",adr(filter$))

On peut maintenant envoyer n'importe quel texte à n'importe quelle fenêtre Windows (programme Panoramic, outil Windows comme Word, Notepad, ...) envoyer n'importe quelle touche fonction à n'importe quelle fenêtre etc. On peut aussi obtenir la liste des fenêtres actives de Windows, éventuellement filtrée par classe de fenêtre, etc. Toute la doc est dans le fichier de documentation habituel. Voici un programme de démo (dé préférence à utiliser dans sa forme EXE):
Code:
' test Send_Character.bas

label envoyer, fermer, choix, charger, maj

dim res%, id$, txt$, s$, hnd%, c$, m%, filtre$
id$ = "test.txt - Bloc-notes"

height 0,550 : width 0,680 : caption 0,"Send_Character"

edit 1 : top 1,40 : left 1,10 : width 1,200
edit 2 : top 2,40 : left 2,220
alpha 111 : top 111,20 : left 111,10 : caption 111,"Texte à envoyer:"
alpha 112 : top 112,20 : left 112,220 : caption 112,"Titre de la fenêtre ciblée:"
alpha 113 : top 113,20 : left 113,350 : caption 113,"Handle de la fenêtre ciblée"
alpha 114 : top 114,160 : left 114,350 : caption 114,"Liste des fenêtres éligibles:"
list 3 : top 3,100 : left 3,10 : width 3,330 : height 3,400
edit 4 : top 4,40 : left 4,350
container_option 5 : top 5,20 : left 5,500 : height 5,80 : width 5,80
  caption 5,"Ciblée par"
option 6 : parent 6,5 : top 6,20 : left 6,10 : width 6,60 : caption 6,"Titre"
option 7 : parent 7,5 : top 7,40 : left 7,10 : width 7,60 : caption 7,"Handle"

list 8 : top 8,180 : left 8,350 : width 8,300 : height 8,320
  on_click 8,choix

container_option 9 : top 9,20 : left 9,580 : height 9,80 : width 9,80
  caption 9,"Filtrer"
option 10 : parent 10,9 : top 10,20 : left 10,10 : width 10,60 : caption 10,"Oui"
option 11 : parent 11,9 : top 11,40 : left 11,10 : width 11,60 : caption 11,"Non"
option 12 : parent 12,9 : top 12,60 : left 12,10 : width 12,60 : caption 12,"Debug"

edit 13 : top 13,110 : left 13,350 : width 13,250

button 100 : left 100,10 : top 100,70 : caption 100,"Envoyer"
  on_click 100,envoyer
button 101 : left 101,220 : top 101,70 : caption 101,"Fermer ce programme"
  width 101,120 : on_click 101,fermer
button 102 : left 102,500 : top 102,150 : caption 102,"Charger les cibles"
  width 102,120 : on_click 102,charger
button 103 : left 103,610 : top 103,110 : width 103,50 : caption 103,"Maj"
  on_click 103,maj
 
text 1,"+ceci est un texte"
text 2,id$
text 4,str$(handle_form(id$))

item_add 3,"Le texte saisi est envoyé au programme ciblé."
item_add 3,""
item_add 3,"Les caractères suivants ont une fonction particulière:"
item_add 3,"  °  = prendre le caractère suivant littéralement"
item_add 3,""
item_add 3,"  + = Shift"
item_add 3,"  ^ = Control"
item_add 3,"  % = Alt"
item_add 3,""
item_add 3,"Les modificateurs +, ^ et % agissent uniquement sur le caractère"
item_add 3,"suivant. On peut laisser agir un modificateur sur un groupe de"
item_add 3,"caractères en utilisant les parenthèses:"
item_add 3,"    +(abcde)fgh  produira  ABCDEfgh"
item_add 3,""
item_add 3,"Les accolades permettent de spécifier une touche fonction parmi"
item_add 3,"la liste ci-après. Ce sont les codes VK_xxx. Un espace suivi"
item_add 3,"d'une valeur numérique indique un facteur de répétition:"
item_add 3,"    {left}    =  1 flèche à gauche"
item_add 3,"    {left 12}  =  12 flèches à gauche"
item_add 3,""
item_add 3,"Liste des codes reconnus:"
item_add 3,"  BKSP, BS, BACKSPACE, BREAK, CAPSLOCK, CLEAR, DEL"
item_add 3,"  DELETE, DOWN, END, ENTER, ESC, ESCAPE, F1...F16"
item_add 3,"  HELP, HOME, INS, LEFT, NUMLOCK, PGDN, PGUP, PRTSC"
item_add 3,"  RIGHT, SCROLLLOCKTAB, UP"

dll_on "pilote.dll"
filtre$ = string$(255," ")
res% = dll_call1("GetWindowFilter",adr(filtre$))
filtre$ = trim$(filtre$)
text 13,filtre$
dll_off

mark_on 6 : mark_on 10

end

envoyer:
dll_on "pilote.dll"
txt$ = text$(1)
id$ = text$(2)
if checked(6)=1
  res% = dll_call2("SendCharacter",adr(id$),adr(txt$))
else
  hnd% = val(text$(4))
  res% = dll_call2("SendCharacterByHandle",hnd%,adr(txt$))
end_if
dll_off
return

fermer:
text 1,"%{F4}"
return

choix:
if left$(item_index$(8),1)="(" then return
text 2,item_index$(8)
text 4,str$(handle_form(text$(2)))
return

charger:
clear 8
m% = checked(10)
dll_on "pilote.dll"
' la ligne suivante est requise une seule fois, après DLL_ON,
' et UNIQUEMENT si l'on change le filtre par défaut sui est:
'    TForm1,TApplication
res% = dll_call1("SetWindowFilter",adr(filtre$)) : ' recharger le filtre modifié
s$ = string$(255," ")
c$ = string$(255," ")
hnd% = dll_call3("FindFirstWindow",adr(s$),adr(c$),m%)
while hnd%<>0
  item_add 8,trim$(s$)
  if checked(12)=1 then item_add 8,"("+trim$(c$)+")"
  s$ = string$(255," ")
  c$ = string$(255," ")
  hnd% = dll_call4("FindNextWindow",hnd%,adr(s$),adr(c$),m%)
end_while
dll_off
return

maj:
filtre$ = trim$(text$(13))
' dll_on "pilote.dll"
' res% = dll_call1("SetWindowFilter",adr(filtre$)) : ' recharger le filtre modifié
' dll_off
return


Dernière édition par Klaus le Ven 24 Fév 2012 - 11:24, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


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

Nouvelle DLL Pilote.dll Empty
MessageSujet: Re: Nouvelle DLL Pilote.dll   Nouvelle DLL Pilote.dll EmptyVen 24 Fév 2012 - 10:26

Wouah, costaud .... bon, j'essaye ce week-end...
Revenir en haut Aller en bas
Contenu sponsorisé





Nouvelle DLL Pilote.dll Empty
MessageSujet: Re: Nouvelle DLL Pilote.dll   Nouvelle DLL Pilote.dll Empty

Revenir en haut Aller en bas
 
Nouvelle DLL Pilote.dll
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» transformer .frm en .bas
» Nouvelle DLL SetWindowButtons
» Nouvelle fonction WriteTextOverPicture
» Data Image Creator D.I.C
» Version instantanée V 0.9.28i14 du 10/02/2018

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: