pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: une astuce Jeu 23 Nov 2017 - 17:30 | |
| bsr voila ce que j'ai découvert au debut j'ai chercher un moyen pour imprimer une photo Malgré les conseil de klaus je n'ai pas réussi a faire le code d'impréssion donc j'ai abandonné kgf donc j'ai chercher dans google et voila ce que j'ai trouvé et que j'ai adobté pour tourD v2 rundll32.exe shimgvw.dll, ImageView_Fullscreen %1 qui fait lancé la visionneuse de windows donc pour ça je lance un fichier *.bat source bat - Code:
-
File_Open_Write 1,"Print.bat" File_WriteLn 1,"@echo off" File_WriteLn 1,"set file="+fichier$ File_WriteLn 1,"start %SystemRoot%\System32\rundll32.exe "+Chr$(34)+"%SystemRoot%\System32\shimgvw.dll"+Chr$(34)+", ImageView_Fullscreen %file%"+" %1" File_WriteLn 1,"Exit" File_Close 1 execute_Wait "Print.bat"
mais un gros problème se pose. a un certain nombre exécuté l'ordi se mets cracher sans trouver le problême et a mon avis la librairie devais resté en mémoire en nombre illimité et voila ce que j'ai trouvé avec obsession - Code:
-
dim fichier$ Label Open Open_Dialog 1 Filter 1,"Bimap|*.bmp|JPeg|*.Jpg" gosub Open End
Open: fichier$=file_name$(1) If fichier$="_" Then Return execute_Wait "rundll32.exe|shimgvw.dll, ImageView_Fullscreen "+fichier$ Return A exécuter 2 programmes en même temps bonne soirée A titre d'information tous les renseignements sur les dll de windows ce qui vas ravir klaus et papy http://www.win7dll.info/ | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: une astuce Jeu 23 Nov 2017 - 18:39 | |
| Je suis surpris que tu n'aies pas réussi à imprimer avec KGF.dll. Voici vite fait un programme permettant de charger une image dans un picture pour le visualiser, puis imprimer l'image par un bouton "Imprimer". Juste une image - on peut compléter en ajoutant du texte, imprimer plusieurs images, etc. Le code est commenté pour que tu voies la logique derrière ces fonctions. - Spoiler:
' demo_impression_images.bas
label charger, imprimer, choix
dim res%, image$, ImprimanteDefaut%, nom$, phnd%, chnd%
picture 1 : top 1,10 : left 1,10 : width 1,300 : height 1,200 open_dialog 2 button 3 : top 3,10 : left 3,330 : caption 3,"Charger" : on_click 3,charger button 4 : top 4,40 : left 4,330 : caption 4,"Imprimer" : on_click 4,imprimer
list 10 : top 10,250 : left 10,10 : on_click 10,choix
dll_on "KGF.dll"
ImprimanteDefaut% = DLL_call1("GetPrinterNames",handle(10)) res% = dll_call2("SelectListBoxItem",handle(10),ImprimanteDefaut%) end
charger: image$ = file_name$(2) if image$="_" then return if file_exists(image$)=0 then return file_load 1,image$ return choix: ImprimanteDefaut% = item_index(10) nom$ = item_index$(10) res% = dll_call2("SelectListBoxItem",handle(10),ImprimanteDefaut%) res% = DLL_call4("PrinterManager",9,adr(phnd%),adr(chnd%),ImprimanteDefaut%) return imprimer:
' pour passer en mode paysage, il faut le faire ici ! Défaut: portrait. ' res% = DLL_call4("PrinterManager",4,adr(phnd%),adr(chnd%),1)
' démarrer l'impression - oblibatoire res% = DLL_call4("PrinterManager",1,adr(phnd%),adr(chnd%),0) ' optionnellement, définir le nombre de copies (3 copies dans cet exemple) ' res% = DLL_call4("PrinterManager",5,adr(phnd%),adr(chnd%),3) ' optionnellement, définir in titre de l'impression ' titre$ = "Mon impression de photos" ' res% = DLL_call4("PrinterManager",5,adr(phnd%),adr(titre$),len(titre$)) ' optionnellement, positionner en absolu sur la page (coordonnées (100,150) ) res% = DLL_call6("PrinterFunction",4,adr(phnd%),adr(chnd%),0,100,150) ' placer l'image dans la page (à l'endroit du positionnement (dimensions 600x450 pixels) res% = DLL_call6("PrinterFunction",7,adr(phnd%),adr(chnd%),adr(image$),600,450) ' ... placer d'autres images, du texte, ... ' fermer l'impression res% = DLL_call4("PrinterManager",3,adr(phnd%),adr(chnd%),0) return
| |
|
pascal10000
Nombre de messages : 812 Localisation : Troyes Date d'inscription : 05/02/2011
| Sujet: Re: une astuce Jeu 23 Nov 2017 - 19:36 | |
| bonsoir klaus voilà c'est plus claire dans cette exemple et plus simple je comprend mieux pour que je puisse décoder un source il faut qu'il soit programmé à l'art de panoramic comme je le fait toujours moi et la programmation sa fait deux même dans mes programmes je m'y perd des fois merci cbp | |
|