>When user make choice in my form I want to change the default printer in Win95. I am sure there is an API function to do this. Any tricks !
Here's something. In my application, the user is able to choose the printer from a selection list. That's why there is some variables in this code. I'm sure you are gonna be able to handle that. :)
* Changement du driver dans WIN.INI
GETPROFSTR=REGFN("GetProfileString","CCC@CI","I")
WRPROF=REGFN("WriteProfileString","CCC","I")
JCOLDSET=REPLICATE(CHR(0),80)
JCSETTINGS=REPLICATE(CHR(0),80)
JNOLDLEN=CALLFN(GETPROFSTR,"Windows","Device","",@JCOLDSET,LEN(JCOLDSET))
JNRETLEN=CALLFN(GETPROFSTR,"Devices",IIF(tnImprimer<>3,aImprim(This.Multiplepages.Page1.nImprim.Value,4),;
'Print-2-Image'),"",@JCSETTINGS,LEN(JCSETTINGS))
IF JNRETLEN<1
=MESSAGEBOX("Cette imprimante n'est pas installée dans votre WIN.INI!",16,'Message')
=N_STPPARMS('MICHEL',1)
RETURN
ENDIF
JCNEWPRNT=IIF(tnImprimer<>3,ALLTRIM(aImprim(This.Multiplepages.Page1.nImprim.Value,4)),'Print-2-Image');
+","+LEFT(JCSETTINGS,JNRETLEN)
IF CALLFN(WRPROF,"Windows","Device",JCNEWPRNT)<1
=MESSAGEBOX("Il y a un problème d'écriture du fichier WIN.INI!",16,'Message')
=N_STPPARMS('MICHEL',1)
RETURN
ENDIF
#DEFINE HWND_BROADCAST 65535
#DEFINE WM_WININICHANGE 26
POSTMSG=REGFN("POSTMESSAGE","IICC","I")
=CALLFN(POSTMSG,HWND_BROADCAST,WM_WININICHANGE,0,"Windows")