Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| KGF_dll - nouvelles versions | |
|
+12JL35 Oscaribout bignono Pedro pascal10000 silverman Jicehel papydall Minibug Marc Yannick Klaus 16 participants | |
Auteur | Message |
---|
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: KGF_dll - nouvelles versions Ven 21 Juil 2017 - 12:15 | |
| bonjour Klaus La fonction "FindPanoramicObject" fonctionne correctement
Il y a un mais! Elle ne fonctionne uniquement avec la commande "GetAbsoluteMousePosition" et non avec "GetMousePosition" donc une petit rectification s'impose dans l'aide KGF.chm bonne journée et merci
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 21 Juil 2017 - 13:29 | |
| Tu as raison ! Merci de l'avoir signalé. Ce sera corrigé pour la prochaine version. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 13 Aoû 2017 - 16:35 | |
| Klaus, la capture d" écran ne fonctionne apparemment plus. - Code:
-
sub CaptureJeu() show BtnShot% SNAP% = dll_call5("CreateScreenSnapshot",1,(screen_x-430)/2,(screen_y-430)/2,430,430) end_sub
sub TakeSnapshot() dim_local f$,res%,m% f$=mid$(date$,7,4)+mid$(date$,4,2)+mid$(date$,1,2)+"_" f$=f$+mid$(Time$,1,2)+mid$(Time$,4,2)+mid$(Time$,7,2)+".jpg" f$=Path$+"Capture_"+f$
hide BtnShot% ' message f$+chr$(13)+str$(Snap%)+chr$(13)+str$(adr(f$)) res% = dll_call2("TakeScreenSnapshot",SNAP%,adr(f$)) if res%<0 m%=message_warning_ok("Désolé !"+chr$(13)+"Une erreur s' est produite, la capture a échouée.") end_if res% = dll_call1("DeleteScreenSnapshot",SNAP%) end_sub J' ai droit au message à chaque essai... Précision : Avec le compilateur. (cela fonctionne avec l' interpréteur) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Oct 2017 - 1:22 | |
| Nouvelle version: KGF.dll V7.88 du 05/10/2017Nouveautés: - Nouvelles fonctions: MoveRegion, CheckRegionIntersectionModules modifiés: KGF.dll KGF.chmLa doc est à jour. Les sources seront à jour prochainement. Les fichiers sont sur mon site (et mon site miroir). Le WebDav suivra prochainement. Voici une démo: - Code:
-
' test_collisions_de_sprites_avec_regions.bas
label key
dim res%, RGN1%, RGN2%, key%, posx%, posy%, M1%
dll_on "KGF.dll"
M1% = 0 - 1
caption 0,"Flèches pour déplacer le sprite rouge, ESC pour sortir" image 1 : picture 2 : hide 2 : width 2,100 : height 2,50 scene2d 3 : full_space 3 : color 3,200,200,200
2d_target_is 2 color 2,255,0,0 : 2d_image_copy 1,0,0,100,50 sprite 1 : sprite_image_load 1,1 sprite_position 1,50,20 posx% = 50 posy% = 20 RGN1% = 0 RGN1% = DLL_call5("WindowAddRectangleRegion",adr(RGN1%),posx%,posy%,100,50)
color 2,0,0,255 : 2d_image_copy 1,0,0,100,50 sprite 2 : sprite_image_load 2,1 sprite_position 2,200,150 RGN2% = 0 RGN2% = DLL_call5("WindowAddRectangleRegion",adr(RGN2%),200,150,100,50)
sprite 3 font_size 3,20 font_color 3,255,0,0 font_bold 3 sprite_text 3,"Contact !" sprite_position 3,200,0 sprite_hide 3
on_key_down 0,key
end
key: key% = scancode if key%=27 then terminate if key%=37 then gauche() if key%=38 then haut() if key%=39 then droite() if key%=40 then bas() return sub gauche() sprite_hide 3 posx% = posx% - 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),M1%,0) if res%=0 then message "oups" res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posx% = posx% + 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),1,0) end_if end_sub
sub haut() sprite_hide 3 posy% = posy% - 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),0,M1%) if res%=0 then message "oups" res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posy% = posy% + 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),0,1) end_if end_sub
sub droite() sprite_hide 3 posx% = posx% + 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),1,0) if res%=0 then message "oups" res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posx% = posx% - 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),M1%,0) end_if end_sub
sub bas() sprite_hide 3 posy% = posy% + 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),0,1) if res%=0 then message "oups" res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posy% = posy% - 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),0,M1%) end_if end_sub
Avec les flèches, essayez de déplacer le sprite mobile sur le sprite fixe... La touche Echap termine le programme. EDITLe WebDav est à jour également - DLL, CHM et sources. | |
| | | Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: kgf.dll Ven 6 Oct 2017 - 9:09 | |
| Bonjour à tous.
Ah, je suis vraiment très content de te retrouver sur ce forum Klaus.
Amicalement. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Oct 2017 - 10:39 | |
| J'ai corrigé une petite maladresse de programmation dans mon code exemple Panoramic. En effet, il vaut mieux faire le test de collision AVANT de déplacer physiquement le sprite: - Code:
-
' test_collisions_de_sprites_avec_regions.bas
label key
dim res%, RGN1%, RGN2%, key%, posx%, posy%, M1%
dll_on "KGF.dll"
M1% = 0 - 1
caption 0,"Flèches pour déplacer le sprite rouge, ESC pour sortir" image 1 : picture 2 : hide 2 : width 2,100 : height 2,50 scene2d 3 : full_space 3 : color 3,200,200,200
2d_target_is 2 color 2,255,0,0 : 2d_image_copy 1,0,0,100,50 sprite 1 : sprite_image_load 1,1 sprite_position 1,50,20 posx% = 50 posy% = 20 RGN1% = 0 RGN1% = DLL_call5("WindowAddRectangleRegion",adr(RGN1%),posx%,posy%,100,50)
color 2,0,0,255 : 2d_image_copy 1,0,0,100,50 sprite 2 : sprite_image_load 2,1 sprite_position 2,200,150 RGN2% = 0 RGN2% = DLL_call5("WindowAddRectangleRegion",adr(RGN2%),200,150,100,50)
sprite 3 font_size 3,20 font_color 3,255,0,0 font_bold 3 sprite_text 3,"Contact !" sprite_position 3,200,0 sprite_hide 3
on_key_down 0,key
end
key: key% = scancode if key%=27 then terminate if key%=37 then gauche() if key%=38 then haut() if key%=39 then droite() if key%=40 then bas() return sub gauche() sprite_hide 3 posx% = posx% - 1 res% = dll_call3("MoveRegion",adr(RGN1%),M1%,0) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posx% = posx% + 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),1,0) else sprite_position 1,posx%,posy% end_if end_sub
sub haut() sprite_hide 3 posy% = posy% - 1 res% = dll_call3("MoveRegion",adr(RGN1%),0,M1%) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posy% = posy% + 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),0,1) else sprite_position 1,posx%,posy% end_if end_sub
sub droite() sprite_hide 3 posx% = posx% + 1 res% = dll_call3("MoveRegion",adr(RGN1%),1,0) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posx% = posx% - 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),M1%,0) else sprite_position 1,posx%,posy% end_if end_sub
sub bas() sprite_hide 3 posy% = posy% + 1 res% = dll_call3("MoveRegion",adr(RGN1%),0,1) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posy% = posy% - 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),0,M1%) else sprite_position 1,posx%,posy% end_if end_sub
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Ven 6 Oct 2017 - 14:05 | |
| Nouvelle version: KGF.dll V7.89 du 06/10/2017
Nouveautés: - Nouvelle fonction: CheckPointInRegion
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Cette fonction complète les possibilités de travail avec des régions compexes, associées à des sprites. Elle permet de svoir si un point fait partie d'une région quelconque, ou noon. Ceci permet par exemple de tester si un tir touche un sprite, à un endroit précis. Il y a plein d'autres applications. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Sam 7 Oct 2017 - 11:45 | |
| Nouvelle version: KGF.dll V7.90 du 07/10/2017Nouveautés: - Nouvelle fonction: DeleteRegionModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cette fonction permet de suprimer une région lorsqu'elle n'est plus utilisée. Dans Windows, chaque région est représentée par un handle global pointant vers uns structure de taille variable en mémoire décrivant la région. Cet espace, ainsi que le handle global lui-même, représente une consommation de resources qu'on peut optimiser dès l'instant qu'on n'a plus besoin de la région. Certes, cela ne s'applique pas pour les régions décrivant la forme d'une fenêtre, pour des raisons évidentes. Par contre, lors de l'utilisation des régions en lien avec des sprites, il est fortement conseillé de supprimer ces régions dès que les sprites concernés sont supprimés, ou au plis tard à la fin du programme. Voici le programme de démo, adapté à a suppression propre des régions utilisées: - Code:
-
' test_collisions_de_sprites_avec_regions.bas
label key, exit
dim res%, RGN1%, RGN2%, key%, posx%, posy%, M1%
dll_on "KGF.dll"
M1% = 0 - 1
on_close 0,exit
caption 0,"Flèches pour déplacer le sprite rouge, ESC pour sortir" image 1 : picture 2 : hide 2 : width 2,100 : height 2,50 scene2d 3 : full_space 3 : color 3,200,200,200
2d_target_is 2 color 2,255,0,0 : 2d_image_copy 1,0,0,100,50 sprite 1 : sprite_image_load 1,1 sprite_position 1,50,20 posx% = 50 posy% = 20 RGN1% = 0 RGN1% = DLL_call5("WindowAddRectangleRegion",adr(RGN1%),posx%,posy%,100,50)
color 2,0,0,255 : 2d_image_copy 1,0,0,100,50 sprite 2 : sprite_image_load 2,1 sprite_position 2,200,150 RGN2% = 0 RGN2% = DLL_call5("WindowAddRectangleRegion",adr(RGN2%),200,150,100,50)
sprite 3 font_size 3,20 font_color 3,255,0,0 font_bold 3 sprite_text 3,"Contact !" sprite_position 3,200,0 sprite_hide 3
on_key_down 0,key
end
key: key% = scancode if key%=27 then sortie() if key%=37 then gauche() if key%=38 then haut() if key%=39 then droite() if key%=40 then bas() return exit: res% = dll_call1("DeleteRegion",adr(RGN1%)) res% = dll_call1("DeleteRegion",adr(RGN2%)) return sub sortie() gosub exit terminate end_sub sub gauche() sprite_hide 3 posx% = posx% - 1 res% = dll_call3("MoveRegion",adr(RGN1%),M1%,0) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posx% = posx% + 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),1,0) else sprite_position 1,posx%,posy% end_if end_sub
sub haut() sprite_hide 3 posy% = posy% - 1 res% = dll_call3("MoveRegion",adr(RGN1%),0,M1%) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posy% = posy% + 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),0,1) else sprite_position 1,posx%,posy% end_if end_sub
sub droite() sprite_hide 3 posx% = posx% + 1 res% = dll_call3("MoveRegion",adr(RGN1%),1,0) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posx% = posx% - 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),M1%,0) else sprite_position 1,posx%,posy% end_if end_sub
sub bas() sprite_hide 3 posy% = posy% + 1 res% = dll_call3("MoveRegion",adr(RGN1%),0,1) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posy% = posy% - 1 sprite_position 1,posx%,posy% res% = dll_call3("MoveRegion",adr(RGN1%),0,M1%) else sprite_position 1,posx%,posy% end_if end_sub
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Dim 8 Oct 2017 - 17:36 | |
| Voici une nouvele version dui programme de démo des collisions détectées par l'utilisation des régions Windows. A la place de simples rectangles, le programme utilise des triangles, créées dans le code Panoramic par les commandes 2D. Puis, on construit les régions à partir des bitmaps de ces triangles. Cela montr qu'on peut utiliser n'importe quelle bitmap pour cela, en spécifiant la couleur de transparence (ici, c'est 0=noir car c'est la couleur de transparence des sprites en Panoramic). On déplace toujours le sprite rouge par les fléches. Et dès qu'une des pointes du traingle rouche touche un point du triangle bleu (ou inversement), le contact est détecté. Cela montre à la perfection que la détection ne se jour plus sur le rectangle englobant, mais bien sur la partie significative (non transparente) des sprites. Voici le code: - Code:
-
' test_collisions_de_sprites_avec_regions.bas
label key, exit
dim type_sprite% ' type_sprite% = 1 : ' rectangle type_sprite% = 2 : ' triangle
dim res%, RGN1%, RGN2%, key%, posx%, posy%, M1%, bmp$ bmp$ = "temp.bmp"
dll_on "KGF.dll"
M1% = 0 - 1
on_close 0,exit
caption 0,"Flèches pour déplacer le sprite rouge, ESC pour sortir" image 1 : picture 2 : hide 2 : width 2,100 : height 2,50 scene2d 3 : full_space 3 : color 3,200,200,200
2d_target_is 2 select type_sprite% case 1 color 2,255,0,0 : 2d_image_copy 1,0,0,100,50 sprite 1 : sprite_image_load 1,1 sprite_position 1,50,20 posx% = 50 posy% = 20 RGN1% = 0 RGN1% = DLL_call5("WindowAddRectangleRegion",adr(RGN1%),posx%,posy%,100,50) case 2 color 2,0,0,0 2d_pen_color 255,0,0 2d_pen_width 3 2d_fill_color 255,0,0 2d_poly_from 50,10 : 2d_poly_to 90,45 : 2d_poly_to 20,30 : 2d_poly_to 50,10 2d_flood 50,30,255,0,0 2d_image_copy 1,0,0,100,50 file_save 2,bmp$ sprite 1 : sprite_image_load 1,1 sprite_position 1,50,20 posx% = 50 posy% = 20 RGN1% = 0 RGN1% = DLL_call5("WindowCreateRegionFromBMP",adr(bmp$),adr(RGN1%),0,0,0) res% = DLL_call3("MoveRegion",adr(RGN1%),posx%,posy%) file_delete bmp$ end_select
select type_sprite% case 1 color 2,0,0,255 : 2d_image_copy 1,0,0,100,50 sprite 2 : sprite_image_load 2,1 sprite_position 2,200,150 RGN2% = 0 RGN2% = DLL_call5("WindowAddRectangleRegion",adr(RGN2%),200,150,100,50) case 2 color 2,0,0,0 2d_pen_color 0,0,255 2d_pen_width 3 2d_fill_color 255,0,0 2d_poly_from 50,10 : 2d_poly_to 90,45 : 2d_poly_to 20,30 : 2d_poly_to 50,10 2d_flood 50,30,0,0,255 2d_image_copy 1,0,0,100,50 file_save 2,bmp$ sprite 2 : sprite_image_load 2,1 sprite_position 2,200,150 RGN2% = 0 RGN2% = DLL_call5("WindowCreateRegionFromBMP",adr(bmp$),adr(RGN2%),0,0,0) res% = DLL_call3("MoveRegion",adr(RGN2%),200,150) file_delete bmp$ end_select
sprite 3 font_size 3,20 font_color 3,255,0,0 font_bold 3 sprite_text 3,"Contact !" sprite_position 3,200,0 sprite_hide 3
on_key_down 0,key
end
key: key% = scancode if key%=27 then sortie() if key%=37 then gauche() if key%=38 then haut() if key%=39 then droite() if key%=40 then bas() return exit: res% = dll_call1("DeleteRegion",adr(RGN1%)) res% = dll_call1("DeleteRegion",adr(RGN2%)) return sub sortie() gosub exit terminate end_sub sub gauche() sprite_hide 3 posx% = posx% - 1 res% = dll_call3("MoveRegion",adr(RGN1%),M1%,0) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posx% = posx% + 1 res% = dll_call3("MoveRegion",adr(RGN1%),1,0) else sprite_position 1,posx%,posy% end_if end_sub
sub haut() sprite_hide 3 posy% = posy% - 1 res% = dll_call3("MoveRegion",adr(RGN1%),0,M1%) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posy% = posy% + 1 res% = dll_call3("MoveRegion",adr(RGN1%),0,1) else sprite_position 1,posx%,posy% end_if end_sub
sub droite() sprite_hide 3 posx% = posx% + 1 res% = dll_call3("MoveRegion",adr(RGN1%),1,0) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posx% = posx% - 1 res% = dll_call3("MoveRegion",adr(RGN1%),M1%,0) else sprite_position 1,posx%,posy% end_if end_sub
sub bas() sprite_hide 3 posy% = posy% + 1 res% = dll_call3("MoveRegion",adr(RGN1%),0,1) res% = dll_call2("CheckRegionIntersection",adr(RGN1%),adr(RGN2%)) if res%=1 sprite_show 3 posy% = posy% - 1 res% = dll_call3("MoveRegion",adr(RGN1%),0,M1%) else sprite_position 1,posx%,posy% end_if end_sub
Et voici une détection, en abaissant le triangle rouge sur le triangle bleu, par le haut: EDIT Un peu de didactique autour de cela: Imaginons un personnage comme un combattant avec une épée. On peut placer son image dans un sprite sur fond noir, et il va se déplacer normalement. On va maintenant définir une région par WindowCreateRegionFromBMP comprenant la totalité du personnage. Conséquence: on peut facilement savoir si le personnage va se heurter ) un élément du décor (mur, arbre, ...), en définissant une seule région contenant l'ensemble des éléments fixes du décor. Mais on peut aussi définir une région juste pour l'épée, et savoir ainsi si l'épée "pique" un autre personnage (entre en collision avec la région associée à l'autre personnage). On obtient ainsi une gestion très fine des collisions, avec une application directe sur les actions à effectuer. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 9 Oct 2017 - 11:20 | |
| Nouvelle version: KGF.dll V7.91 du 09/10/2017
Nouveautés: - Nouvelles fonctions: CreateRegionGroup, AddRegionToGroup, DeleteRegionGroup, MoveRegionGroup
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Ces fonctions introduisent une nouvelle notion: le groupe de régions. C'est un simple regroupement logique de plusieurs régions (le nombre n'est pas limité) dans le but de pourvoir déplacer toutes ces régions en un sel appel d'une fonction DLL, de façon synchrone. Ce sera beaucoup plus performat que de faire appel à la fonction de déplacement d'une région dans une boucle Panoramic.
A quoi ça sert ? Imaginons un personnage dans un jeu video en 2D. On veut tester les contacts (collisions) avec certaines parties du personnage (pieds, tête, épée, bouclier, ...). On définit alors une région pour chacune de ces parties et une région globae pour l'ensemble du personnage. Cette dernière va servir à détecter les collisions avec les éléments fixes du décor (mor, arbres, rochers, ...) et éléments mobiles inertes (voitures, ...). Les autres servent à détecter une collision entraînant une action (épée du personnage A sur tête du personnage B ==> mort du personnage B, etc). Mais le problème est le déplacement de tout ce système lorsque le personnage se déplace. Alors, au lieu de faire une boucle sur toutes les régions du personnage, il suffit de déplacer le groupe lui étant associé - c'est beaucoup plus simple et surtout beaucoup plus rapide.
Simple mise en garde: avant de quitter un programme utilisant de telles régions, il faut veiller à supprimer toutes les régions créées, ainsi que les éventuels groupes de régions. Pour voir comment faire, regarder le programme de démo dans le post plus haut. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 10 Oct 2017 - 14:08 | |
| Nouvelle version: KGF.dll V7.912du 10/10/2017
Nouveautés: - Nouvelle fonction: CheckRegionGroupIntersection
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
C'est une fonction très puissante, et elle complète la collection de fonctions gérant les groupes de régions. On peut maintenant tester s'il è a un point commun (contact) entre une région et une région quelconque d'un groupe de régions, ou entre une région quelconque d'un groupe de régions avec une région quelconque d'un autre groupe de régions. De plus, on peut savoir exactement quelles régions sont concernées.
Ceci permet, lors du déplacement d'un personnage décliné en plusieurs régions, de savoir par exemple si sont épée a touché la tête, l'épée ou le bouclier d'un autre personnage. C'est un seul appel d'une fonction DLL qui réalise cela. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 10 Oct 2017 - 17:49 | |
| Nouvelle version: KGF.dll V7.93 du 10/10/2017
Nouveautés: - Nouvelle fonction: GetRegionRectangle
Modules modifiés: KGF.dll KGF.chm
La doc et les sources sont à jour.
Cette fonction permet de récupérer la position et le dimensions du rectangle englobant une région, quelque soit sa forme. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 1 Nov 2017 - 11:57 | |
| Nouvelle version: KGF.dll V7.94 du 31/10/2017Nouveautés: - Nouvel objet: ScannerModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Ce nouvel objet (invisible) permet de gérer un scanner en mode TWAIN et acquérir des images. On peut donc maintenant scanner et archiver des documents directement à partir du programme Panoramic, un peu comme c'est fait dans les pharmacies qui scannent les ordonnances, etc. Voici une démo: - Code:
-
' test_Scanner.bas
label pret, close0, choix, scan1, scan2, sauver
dim TW%, res%, sel%, f$, e$
dll_on "KGF.dll"
button 1 : top 1,10 : left 1,10 : width 1,110 : caption 1,"Scanner direct" : on_click 1,scan1 button 2 : top 2,10 : left 2,130 : width 2,110 : caption 2,"Scanner dialogue" : on_click 2,scan2 button 3 : top 3,10 : left 3,250 : width 3,110 : caption 3,"Sauver" : on_click 3,sauver
save_dialog 9 : filter 9,"Images|*.bmp;*.jpg; *.png"
list 11 : top 11,40 : left 11,10 : width 11,150 : on_click 11,choix picture 12 : top 12,40 : left 12,180 : width 12,300 : height 12,400 : stretch_on 12
TW% = dll_call0("CreateScanner")
res% = dll_call2("GetScannerSources",TW%,handle(11)) sel% = dll_call1("GetSelectedScannerSource",TW%) res% = dll_call2("SelectListBoxItem",handle(11),sel%)
on_user_event pret on_close 0,close0
end
close0: res% = dll_call1("DeleteScanner",TW%) return choix: sel% = item_index(11) res% = dll_call2("SelectScannerSource",TW%,sel%) return
scan1: res% = dll_call1("StartSelectedScanner",TW%) return
scan2: res% = dll_call1("StartScannerWithDialog",TW%) return sauver: f$ = file_name$(9) if f$="_" then return e$ = lower$(file_extract_extension$(f$)) message e$ return if (e$<>".bmp") and (e$<>".jpg") and (e$<>".png") message "Choisissez le format BMP, JPG ou PNG!" return end_if if file_exists(s$)=1 if message_confirmation_yes_no("Ce fichier existe déjà. Remplacer ?")<>1 then return end_if clipboard_copy 12 res% = dll_call1("SaveAnyImageFile",adr(f$)) return
pret: message "reçu !" res% = dll_call1("CopyScannerImapeToClipBoard",TW%) clipboard_paste 12 display message "reçu !" return
Ce programme de démo est placé égement dans le fichier d'aide KGF.chm. L'objet Scanner est réalisé à l'aide d'un composant freeware sous licence GPL trouvé sur SourceForge, avec les conditions de licence suivantes: - Citation :
- DelphiTwain by Kluug.net
------------------------
Licensed under: MPL / GPL / LGPL
Copyright: Gustavo Daud (delphitwain.sourceforge.net) Nemeth Peter vcldeveloper (stackoverflow.com/questions/2059343/twain-scanning-components-for-delphi) Ondrej Pokorny (www.kluug.net/delphitwain.php) J'ai intégré cela dans KGF.dll et créé les fonctions nécessaires pour réaliser une enveloppe (wrapper) autour de cet objet réalisé en Delphi. Aucune DLL externe ni contrôle ActiveX n'est nécessaire. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 1 Nov 2017 - 14:20 | |
| Bravo Klaus ! Après la gestion de l'imprimante, celle du scanner. La gestion des périphériques donne de nouvelles ouvertures à Panoramic. Bravo et encore merci Klaus. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: KGF_dll - nouvelles versions Mer 1 Nov 2017 - 22:12 | |
| Merci Klaus pour cette nouvelle extension sur le monde extérieur ! N'ayant pas de scanner, je ne peux pas faire les tests. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 1 Nov 2017 - 22:49 | |
| Tu peux tester le logiciel en utilisant un simulateur de scanner. A côté de mon scanner physique, j'utilise ceci: http://developer.dynamsoft.com/dwt/kb/2659Cela marche sans problème (version 64 bits dans mon cas, sous W10 64 bits). L'image "scannée" est lme logo de TWAIN. | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: KGF_dll - nouvelles versions Mer 1 Nov 2017 - 23:03 | |
| Merci Klaus ! L'objet SCANNER que tu as implanté dans ta DLL fonctionne parfaitement ! Test fait sous W10 64bits - Spoiler:
Bravo et encore merci ! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Lun 13 Nov 2017 - 23:47 | |
| Nouvelle version: KGF.dll V7.95 du 13/11/2017Nouveautés: - Nouvelle fonction: GetFileDateTimeModules modifiés: KGF.dll KGF.chmLa doc et les sources sont à jour. Cette fonction est un extension de la fonction GetFileDate. Elle prend un paramètre supplémentaire permettant de choisir le type de date et heure à retourner: date de création, modification ou dernier accès. En voici une petite démo: - Code:
-
' test_GetFileDateTime.bas
dim f$, res%, cre$, mod$, acc$
open_dialog 1
dll_on "KGF.dll"
f$ = file_name$(1) if f$="_" then terminate
cre$ = string$(255," ") res% = dll_call3("GetFileDateTime",adr(f$),0,adr(cre$)) cre$ = trim$(cre$) mod$ = string$(255," ") res% = dll_call3("GetFileDateTime",adr(f$),1,adr(mod$)) mod$ = trim$(mod$) acc$ = string$(255," ") res% = dll_call3("GetFileDateTime",adr(f$),2,adr(acc$)) acc$ = trim$(acc$)
message "création: "+cre$+chr$(13)+chr$(10)+"Modification: "+mod$+chr$(13)+chr$(10)+"Accès: "+acc$
end
| |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: KGF_dll - nouvelles versions Mar 14 Nov 2017 - 10:35 | |
| Bonjour à tous, Bonjour Klaus Je viens d'essayer ta dernière version de KGF.dll avec ton programme exemple. Ça fonctionne très bien. Mais quand j'insère tes fonctions dans mon programme qui recherche tous les dossiers et fichiers dans mon ordinateur, dès le début à la racine de C:\ il m'affiche 7 dossiers et 12 fichiers, et arrivé au 20ème élément, il m'affiche un message d'erreur: "erreur système. Code: 32. Le processus ne peut accéder au fichier car ce fichier est utilisé par un autre processus." Je n'avais pas ce problème avec la version précédente de ta dll avec la fonction "res% = dll_call2("GetFileDate",adr(f$),adr(v$))" Merci de ton aide par avance A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 14 Nov 2017 - 12:14 | |
| Est-ce que tu as essayé d'exécuter le programme comme administrateur (clic droit sur l'EXE - l'option est proposée). C'est une question de droit d'accès pour ce mode particulier d'accès au fichier. Puis, essaie de déterminer quel fichier est en cause -système ? invisible ? ouvert par le système ? fichier SWAP ou similaire ? Les informations de directory ne sont pas totalement accessibles pour tous les fichiers.
De toutes façons, je vais modifier ma fonction de sorte que l' problème d'accès ne conduise plus au plantage.
EDIT
La fonction est sécurisée maintenant (pas de changement de documentation). En cas de problème d'accès (ou fichier inexistant), elle retourne "00/00/0000 00:00:00". | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mar 14 Nov 2017 - 22:41 | |
| Après la correction mentionnée ci-dessus, on peut "scanner" la racine C:\ sans problème. Voici le code: - Code:
-
' test_GetFileDateTime.bas
dim f$, res%, cre$, mod$, acc$, dir$
dll_on "KGF.dll"
memo 1 : full_space 1 : bar_both 1 dir$ = dir_current$ dir_change "C:" f$ = file_find_first$ while f$<>"_" if left$(f$,1)<>"." cre$ = string$(255," ") res% = dll_call3("GetFileDateTime",adr(f$),0,adr(cre$)) cre$ = trim$(cre$) mod$ = string$(255," ") res% = dll_call3("GetFileDateTime",adr(f$),1,adr(mod$)) mod$ = trim$(mod$) acc$ = string$(255," ") res% = dll_call3("GetFileDateTime",adr(f$),2,adr(acc$)) acc$ = trim$(acc$) item_add 1, f$+" création: "+cre$+chr$(13)+chr$(10)+"Modification: "+mod$+chr$(13)+chr$(10)+"Accès: "+acc$+chr$(13)+chr$(10) end_if f$ = file_find_next$ end_while file_find_close
dir_change dir$ end
Et voici le résultat: - Spoiler:
$RECYCLE.BINcréation: 12/02/2014 20:10:03 Modification: 06/04/2014 19:26:28 Accès: 14/11/2017 13:43:31
AdwCleanercréation: 30/12/2014 19:22:26 Modification: 20/08/2016 19:05:04 Accès: 14/11/2017 13:43:31
AMTAG.BINcréation: 08/04/2014 02:17:33 Modification: 23/12/2015 13:06:32 Accès: 14/11/2017 12:29:10
autoexec.batcréation: 13/07/2014 10:16:28 Modification: 13/07/2014 10:16:28 Accès: 13/07/2014 10:16:28
Autres_DLL.rtfcréation: 14/02/2016 22:12:58 Modification: 26/01/2011 03:05:56 Accès: 08/06/2017 01:11:06
AVScanner.inicréation: 26/06/2014 18:07:39 Modification: 26/06/2014 17:52:21 Accès: 08/06/2017 00:56:21
Bootcréation: 01/08/2017 17:43:42 Modification: 02/08/2017 23:27:57 Accès: 14/11/2017 13:43:31
bootmgrcréation: 22/08/2013 17:44:03 Modification: 22/08/2013 07:31:45 Accès: 08/06/2017 00:56:22
BOOTNXTcréation: 22/08/2013 17:44:04 Modification: 30/10/2015 08:18:34 Accès: 08/06/2017 00:56:22
CachedGeoposition.dbcréation: 03/12/2015 00:18:56 Modification: 02/12/2015 17:48:40 Accès: 03/12/2015 00:18:56
CAPTURE.AVIcréation: 16/03/2017 22:11:10 Modification: 16/03/2017 22:11:16 Accès: 08/06/2017 01:11:06
Config.Msicréation: 07/04/2014 12:06:53 Modification: 02/11/2017 00:22:29 Accès: 02/11/2017 00:22:29
DCEFcréation: 21/04/2015 01:04:01 Modification: 21/04/2015 01:05:15 Accès: 14/11/2017 13:43:31
documentcréation: 06/10/2014 23:53:03 Modification: 01/12/2015 13:00:57 Accès: 14/11/2017 13:43:31
Documents and Settingscréation: 10/07/2015 14:21:38 Modification: 10/07/2015 14:21:38 Accès: 10/07/2015 14:21:38
Downloadscréation: 22/05/2015 02:01:54 Modification: 09/08/2015 12:28:45 Accès: 14/11/2017 13:43:32
drvopt.inicréation: 22/02/2011 17:00:42 Modification: 22/02/2011 17:00:42 Accès: 08/06/2017 00:56:22
DVD2ISO_Outputcréation: 24/12/2016 14:19:37 Modification: 24/12/2016 14:19:37 Accès: 14/11/2017 13:43:32
ENDcréation: 02/08/2017 22:32:56 Modification: 02/08/2017 22:37:05 Accès: 02/08/2017 22:37:05
eula.1028.txtcréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:22
eula.1031.txtcréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:22
eula.1033.txtcréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:22
eula.1036.txtcréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:22
eula.1040.txtcréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:22
eula.1041.txtcréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:22
eula.1042.txtcréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:22
eula.2052.txtcréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:22
eula.3082.txtcréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:22
FFOutputcréation: 05/09/2016 13:43:40 Modification: 05/09/2016 13:43:40 Accès: 14/11/2017 13:43:32
Fichierscréation: 27/07/2015 19:45:03 Modification: 01/12/2015 13:00:57 Accès: 14/11/2017 13:43:32
Gamescréation: 02/01/2016 17:22:38 Modification: 02/01/2016 17:37:46 Accès: 14/11/2017 13:43:32
Garmin backup SDcréation: 02/02/2015 11:45:12 Modification: 01/12/2015 13:00:57 Accès: 14/11/2017 13:43:32
GenCallDLL.bascréation: 14/02/2016 22:12:58 Modification: 08/08/2010 23:22:56 Accès: 08/06/2017 01:11:06
globdata.inicréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:21
hiberfil.syscréation: 00/00/0000 00:00:00 Modification: 00/00/0000 00:00:00 Accès: 00/00/0000 00:00:00
IDriveLocalcréation: 04/06/2017 19:07:55 Modification: 04/06/2017 19:09:50 Accès: 14/11/2017 13:43:32
ilock.logcréation: 03/12/2015 00:18:56 Modification: 02/12/2015 17:52:27 Accès: 08/06/2017 01:11:06
Imagescréation: 06/07/2014 01:02:09 Modification: 06/07/2014 01:02:09 Accès: 14/11/2017 13:43:32
IMG_0019.JPGcréation: 21/02/2016 12:05:52 Modification: 21/02/2016 12:09:52 Accès: 08/06/2017 01:11:07
inetpubcréation: 20/06/2017 19:58:54 Modification: 20/06/2017 19:58:54 Accès: 14/11/2017 13:43:32
install.execréation: 07/11/2007 07:03:18 Modification: 07/11/2007 07:03:18 Accès: 13/11/2017 12:27:44
install.inicréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:21
install.res.1028.dllcréation: 07/11/2007 07:03:18 Modification: 07/11/2007 07:03:18 Accès: 13/11/2017 12:27:44
install.res.1031.dllcréation: 07/11/2007 07:03:18 Modification: 07/11/2007 07:03:18 Accès: 13/11/2017 12:27:44
install.res.1033.dllcréation: 07/11/2007 07:03:18 Modification: 07/11/2007 07:03:18 Accès: 13/11/2017 12:27:44
install.res.1036.dllcréation: 07/11/2007 07:03:18 Modification: 07/11/2007 07:03:18 Accès: 13/11/2017 12:27:44
install.res.1040.dllcréation: 07/11/2007 07:03:18 Modification: 07/11/2007 07:03:18 Accès: 13/11/2017 12:27:45
install.res.1041.dllcréation: 07/11/2007 07:03:18 Modification: 07/11/2007 07:03:18 Accès: 13/11/2017 12:27:45
install.res.1042.dllcréation: 07/11/2007 07:03:18 Modification: 07/11/2007 07:03:18 Accès: 13/11/2017 12:27:45
install.res.2052.dllcréation: 07/11/2007 07:03:18 Modification: 07/11/2007 07:03:18 Accès: 13/11/2017 12:27:45
install.res.3082.dllcréation: 07/11/2007 07:03:18 Modification: 07/11/2007 07:03:18 Accès: 13/11/2017 12:27:45
Intelcréation: 12/02/2014 20:14:47 Modification: 12/02/2014 20:14:47 Accès: 14/11/2017 13:43:32
Interbasecréation: 18/01/2016 00:42:20 Modification: 18/01/2016 00:42:20 Accès: 14/11/2017 13:43:32
KGFdll.rtfcréation: 14/02/2016 22:12:58 Modification: 26/01/2011 12:07:44 Accès: 08/06/2017 01:11:07
klausgunthercréation: 14/08/2014 00:02:15 Modification: 14/08/2014 00:02:15 Accès: 14/11/2017 13:43:32
lazaruscréation: 10/10/2015 12:29:03 Modification: 01/12/2015 13:00:57 Accès: 14/11/2017 20:03:38
ManageEnginecréation: 09/05/2017 22:45:12 Modification: 09/05/2017 22:45:12 Accès: 14/11/2017 13:43:32
Mes Projetscréation: 22/05/2015 03:06:43 Modification: 22/05/2015 08:51:33 Accès: 14/11/2017 13:43:32
Microsoftcréation: 02/08/2017 22:33:21 Modification: 02/08/2017 22:33:21 Accès: 14/11/2017 13:43:32
mimedemo.txtcréation: 21/02/2016 12:06:59 Modification: 21/02/2016 12:47:46 Accès: 08/06/2017 01:11:07
Mon Synedit_Editorcréation: 10/10/2014 00:57:20 Modification: 15/04/2016 14:53:33 Accès: 14/11/2017 13:43:32
MSOCachecréation: 04/06/2014 18:03:49 Modification: 04/06/2014 18:03:49 Accès: 12/10/2017 10:18:05
My Storagecréation: 11/12/2016 02:26:07 Modification: 11/12/2016 02:26:07 Accès: 14/11/2017 13:43:32
ndsvc.logcréation: 08/04/2014 12:13:50 Modification: 16/12/2015 22:37:14 Accès: 08/06/2017 00:56:22
OneDriveTempcréation: 05/11/2017 00:38:24 Modification: 05/11/2017 00:38:24 Accès: 14/11/2017 13:43:32
pagefile.syscréation: 00/00/0000 00:00:00 Modification: 00/00/0000 00:00:00 Accès: 00/00/0000 00:00:00
Partagecréation: 12/04/2014 00:42:11 Modification: 01/12/2015 13:02:05 Accès: 14/11/2017 13:43:32
PerfLogscréation: 18/03/2017 22:03:28 Modification: 18/03/2017 22:03:28 Accès: 12/10/2017 10:18:05
PhoneBook_ISAMcréation: 26/07/2015 15:48:47 Modification: 01/12/2015 13:58:40 Accès: 14/11/2017 13:43:32
PPE_Tempcréation: 02/02/2015 23:56:41 Modification: 14/03/2015 16:23:15 Accès: 14/11/2017 13:43:32
Program Filescréation: 18/03/2017 22:03:28 Modification: 02/11/2017 00:15:29 Accès: 14/11/2017 22:32:22
Program Files (x86)création: 18/03/2017 22:03:28 Modification: 02/11/2017 00:15:29 Accès: 14/11/2017 22:36:05
ProgramDatacréation: 18/03/2017 22:03:29 Modification: 01/11/2017 22:46:27 Accès: 14/11/2017 22:13:44
Raport-exeinfo-log.txtcréation: 03/12/2015 00:18:56 Modification: 02/12/2015 17:50:07 Accès: 08/06/2017 01:11:07
ReadMeFirst.txtcréation: 14/07/2014 16:12:31 Modification: 14/07/2014 16:12:03 Accès: 08/06/2017 00:56:22
Recoverycréation: 20/06/2017 20:37:59 Modification: 01/08/2017 17:43:58 Accès: 01/08/2017 17:43:58
Reflect_Install.logcréation: 02/08/2017 23:24:22 Modification: 02/08/2017 23:27:56 Accès: 02/08/2017 23:27:56
Sauvegarde Personnellecréation: 02/08/2017 22:09:09 Modification: 02/08/2017 22:09:09 Accès: 14/11/2017 13:43:32
searchpluginscréation: 05/07/2016 15:59:46 Modification: 05/07/2016 15:59:46 Accès: 14/11/2017 13:43:32
SecurityScanner.dllcréation: 09/04/2014 15:13:00 Modification: 09/04/2014 15:13:00 Accès: 14/11/2017 12:29:10
Sitescréation: 07/04/2014 14:19:47 Modification: 18/12/2015 18:47:45 Accès: 14/11/2017 13:43:32
swapfile.syscréation: 00/00/0000 00:00:00 Modification: 00/00/0000 00:00:00 Accès: 00/00/0000 00:00:00
SyneditApplicationcréation: 29/09/2014 00:14:36 Modification: 29/09/2014 00:14:36 Accès: 14/11/2017 13:43:32
Synedit_Editorcréation: 25/10/2016 00:08:56 Modification: 17/07/2017 16:02:51 Accès: 14/11/2017 20:03:49
Synedit_Editor_Debugcréation: 30/09/2014 00:45:04 Modification: 01/12/2015 13:07:44 Accès: 14/11/2017 13:43:32
System Volume Informationcréation: 26/01/2014 12:11:46 Modification: 13/11/2017 22:10:46 Accès: 13/11/2017 22:12:17
TDSSKiller.3.1.0.11_22.10.2016_01.12.35_log.txtcréation: 22/10/2016 01:12:36 Modification: 22/10/2016 01:15:22 Accès: 08/06/2017 00:56:22
tempcréation: 12/06/2015 08:14:07 Modification: 17/04/2017 17:09:17 Accès: 14/11/2017 13:43:32
test DynamicallyLoadDLL.bascréation: 14/02/2016 22:12:58 Modification: 31/07/2010 14:14:40 Accès: 08/06/2017 01:11:07
test IPC.bascréation: 14/02/2016 22:12:58 Modification: 29/07/2010 18:13:08 Accès: 08/06/2017 01:11:07
Test LoadProgram.bascréation: 14/02/2016 22:12:58 Modification: 29/07/2010 00:30:20 Accès: 08/06/2017 01:11:07
test Strings.bascréation: 14/02/2016 22:12:58 Modification: 08/08/2010 22:52:18 Accès: 08/06/2017 01:11:07
test_GVL.bascréation: 14/02/2016 22:12:58 Modification: 07/11/2010 15:09:34 Accès: 08/06/2017 01:11:07
Test_Mailcréation: 27/11/2014 10:01:02 Modification: 01/12/2015 13:58:30 Accès: 14/11/2017 13:43:32
test_MaskEdit.bascréation: 14/02/2016 22:12:58 Modification: 06/07/2010 11:00:38 Accès: 08/06/2017 01:11:07
test_ValueListEditor.bascréation: 14/02/2016 22:12:58 Modification: 05/07/2010 11:55:00 Accès: 08/06/2017 01:11:07
Toshibacréation: 06/12/2013 21:03:52 Modification: 01/12/2015 13:07:44 Accès: 14/11/2017 13:43:32
Téléchargementscréation: 16/04/2014 09:52:28 Modification: 19/08/2015 08:29:26 Accès: 14/11/2017 13:43:32
undelphix_1_14_0création: 23/07/2015 01:16:29 Modification: 01/12/2015 13:09:36 Accès: 14/11/2017 13:43:32
Userscréation: 18/03/2017 12:40:20 Modification: 20/06/2017 20:02:50 Accès: 14/11/2017 22:36:05
VB6_MSDN_OCT_2001création: 14/07/2014 14:13:07 Modification: 01/12/2015 13:17:09 Accès: 14/11/2017 13:43:32
vcredist.bmpcréation: 07/11/2007 07:00:40 Modification: 07/11/2007 07:00:40 Accès: 08/06/2017 00:56:22
VC_RED.cabcréation: 07/11/2007 07:09:22 Modification: 07/11/2007 07:09:22 Accès: 14/11/2017 12:20:16
VC_RED.MSIcréation: 07/11/2007 07:12:28 Modification: 07/11/2007 07:12:28 Accès: 08/06/2017 00:56:24
VirtualDiskscréation: 11/04/2014 22:54:10 Modification: 04/06/2015 18:20:32 Accès: 14/11/2017 13:43:32
Volume Informationcréation: 19/08/2015 00:00:07 Modification: 19/08/2015 00:00:09 Accès: 14/11/2017 13:43:32
WB_pas_de onclickcréation: 27/08/2015 12:52:41 Modification: 01/12/2015 13:17:16 Accès: 14/11/2017 13:43:32
wifi-debug.xmlcréation: 04/06/2014 01:26:43 Modification: 21/06/2014 19:47:30 Accès: 12/08/2017 02:56:27
WinDev 19 Expresscréation: 22/05/2015 02:45:12 Modification: 21/12/2016 16:45:46 Accès: 14/11/2017 13:43:32
WinDev Express 19 - Installationcréation: 22/05/2015 02:41:50 Modification: 01/12/2015 13:19:18 Accès: 14/11/2017 13:43:32
Windowscréation: 18/03/2017 12:40:20 Modification: 01/11/2017 22:44:17 Accès: 14/11/2017 22:35:37
Windows.oldcréation: 20/06/2017 20:30:09 Modification: 03/07/2017 11:15:28 Accès: 14/11/2017 20:07:15
__Argon__.tmpcréation: 09/05/2017 22:51:35 Modification: 28/04/2017 19:35:22 Accès: 08/06/2017 00:56:24
On voit que les fichiers Hiberfile, Pagefile et Swapfile ne fournissent pas de date valide, mais ça marche pour tout le reste. Plus de bloquage.
Dernière édition par Klaus le Mer 15 Nov 2017 - 0:09, édité 1 fois | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: KGF_dll - nouvelles versions Mar 14 Nov 2017 - 23:25 | |
| Bonsoir KLAUS Ça fonctionne parfaitement bien maintenant. Le bloquage se faisait sur le fichier install.exe dans la racine C:\ Merci bien Klaus, et bonne soirée. A+ | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: KGF_dll - nouvelles versions Mar 14 Nov 2017 - 23:59 | |
| Bonjour à tous ! Merci Klaus ! Je viens de faire l'essai sous Windows 10 : it's OK ! J'ai juste ajouté un espace ligne 22 devant le mot création pour séparer ce mot du nom du fichier. Autrement ils se touchent. Avant, sans espace : - Spoiler:
Après, avec un espace devant "création" : - Spoiler:
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: KGF_dll - nouvelles versions Mer 15 Nov 2017 - 0:08 | |
| Tu as raison, Marc37. C'est bien plus lisible ainsi. J'adopte. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: KGF_dll - nouvelles versions Sam 18 Nov 2017 - 14:58 | |
| Bonjour à tous , bonjour Klaus Je viens d'essayer les fonctions du scanner, et j'ai modifié un peu le programme essai que tu as posté plus haut, pour l'adapter à mes besoins. D'ailleurs, le voici: - Code:
-
caption 0,"SCANORAMIC" label pret, close0, choix, scan1, scan2, sauver, nf
dim TW%, res%, sel%, f$, ff$, V$,C$,i,q V$="<\:*?|/>"+chr$(34)
dll_on "C:\SCAN\KGF794.dll"
button 1 : top 1,10 : left 1,10 : width 1,110 : caption 1,"Scanner direct" : on_click 1,scan1 button 2 : top 2,10 : left 2,130 : width 2,110 : caption 2,"Scanner dialogue" : on_click 2,scan2 button 3 : top 3,10 : left 3,250 : width 3,110 : caption 3,"Sauver" : on_click 3,sauver alpha 4 : top 4,150: left 4,10 : font_bold 4 : caption 4,"Nom du fichier (préfixe+numéro)" alpha 5 : top 5,175: left 5,10 : font_underline 5: caption 5,"Préfixe :" alpha 6 : top 6,220: left 6,10 : font_underline 6: caption 6,"Numéro:" edit 7 : top 7,175: left 7,60 : width 7,180 : text 7,"Image":on_change 7,nf spin 8 : top 8,220: left 8,60 : width 8,50 : min 8,1 : max 8,999 : position 8,1:on_change 8,nf alpha 9 : top 9,200: left 9,130 : font_bold 9 : caption 9,"Format image" combo 10 :top 10,220:left 10,130 : width 10,90:on_change 10,nf item_add 10,".bmp":item_add 10,".jpg":item_add 10,".png" : text 10,".jpg" alpha 11 :top 11,250: left 11,10 :font_bold 11:font_color 11,0,0,255:gosub nf list 12 : top 12,40 : left 12,10 : width 12,230 : on_click 12,choix picture 14 : top 14,40 : left 14,250 : width 14,283 : height 14,400 : stretch_on 14
TW% = dll_call0("CreateScanner") res% = dll_call2("GetScannerSources",TW%,handle(12)) sel% = dll_call1("GetSelectedScannerSource",TW%) res% = dll_call2("SelectListBoxItem",handle(12),sel%)
on_user_event pret on_close 0,close0
end
close0: res% = dll_call1("DeleteScanner",TW%) return choix: sel% = item_index(12):res% = dll_call2("SelectScannerSource",TW%,sel%) return
scan1: res% = dll_call1("StartSelectedScanner",TW%) return
scan2: res% = dll_call1("StartScannerWithDialog",TW%) return sauver: f$ = caption$(11) if file_exists(f$)=1 if message_confirmation_yes_no("Ce fichier existe déjà. Remplacer ?")<>1 then return end_if clipboard_copy 14:res% = dll_call1("SaveAnyImageFile",adr(f$)) position 8,position(8)+1 return
pret: res% = dll_call1("CopyScannerImapeToClipBoard",TW%):clipboard_paste 14:display return
nf: ff$=upper$(text$(7)) if ff$="CON" or ff$="PRN" or ff$="AUX" or ff$="NUL" or ff$="COM" or ff$="LPT" message "Nom de fichier interdit! Recommencez!":text 7,"Image" end_if for i=1 to len(V$) C$=mid$(V$,i,1):q=instr(text$(7),C$) if q>0 then message "Caractère interdit! Recommencez!":text 7,"Image" next i caption 11,"C:\SCAN\"+text$(7)+str$(position(8))+text$(10) return J'ai vu que l'on pouvait avoir accès à certain réglage avec le bouton "Scanner dialogue", ce qui est très bien, mais j'aurais aimé, plutôt que de passer par ce bouton, avoir accès à des fonctions supplémentaires telles le choix de la "résolution en ppp", une sélection directe en noir et blanc ou couleur et la possibilité de délimiter une zone à scanner dans l'aperçu de l'image. Mais ne te casse pas la tête si ce n'est pas possible à faire ou trop difficile! A bientôt. | |
| | | Contenu sponsorisé
| Sujet: Re: KGF_dll - nouvelles versions | |
| |
| | | | KGF_dll - nouvelles versions | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |