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 |
|
|
| MyDrive Connector | |
| | |
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Sam 25 Jan 2014 - 20:15 | |
| Chez moi, cela fonctionne correctement avec la dernière version sur le webdav. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: MyDrive Connector Sam 25 Jan 2014 - 21:45 | |
| Yes !!!!!!!!! Et chez les autres, sous W7 ? | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 0:20 | |
| Rien à faire. Chez moi, il faut un stop ou un message, ou un wait pour que ça quitte. Je me suis dit que c’est une question de timing. J’ai viré l’objet timer et ses subordonnés timer_intervall , on_timer et la sub O_timer(..) J’ai viré aussi les sous-programmes Quitter_croix, Fin et Quitter. Dans le sous-programme Toolbar_actions, j’ai modifié le case 12 ( qui est censé mettre fin au programme) par l’unique commande TERMINATE. J’ai lancé l’exécution du programme et … contre toute attente … ça a MARCHE ! Et ainsi, je peux quitter soit par la croix rouge, soit par l’icône Quitter sans avoir besoin ni de ModifyToolbar, ni de RemoveToolbar et aussi sans dll_off. Voici le code qui fonctionne chez moi (plus court et fonctionnel) - 1,2,3, cliquez ! :
- Code:
-
rem ============================================================================ Variables() Labels() Start_Dll() GUI() Init() end ' ------------------------------------------------------------------------------ Sub Variables() dim Titre$ : Titre$ ="My Drive Connector" dim W_GUI% : W_GUI% =298 dim H_GUI% : H_GUI% =450 dim T_GUI% : T_GUI% =(screen_y-H_GUI%)/2 dim L_GUI% : L_GUI% =(screen_x-W_GUI%)/2 dim obj%,O_List%,O_DList% dim MDC_DB$: MDC_DB$ =dir_current$+"\Fichiers\MDC_DB.bdd" dim MDC_NewFiche%,NF_edit1%,NF_edit2%,NF_edit3%,NF_Button%,clic%,NF_verif% dim Select_List%,Nom$,Login$,pw$
End_sub ' ------------------------------------------------------------------------------ Sub Labels() ' Click Label clic ' Change Label Toolbar_actions,FC_Black End_sub ' ------------------------------------------------------------------------------ Sub Start_Dll() dim KGF$,res% KGF$=Dir_current$+"\Fichiers\KGF.dll" dll_on KGF$ End_sub ' ------------------------------------------------------------------------------ Sub GUI() width 0,W_GUI% : height 0,H_GUI% : top 0,T_GUI% : left 0,L_GUI% Caption 0,Titre$ : font_name 0,"arial" :font_bold 0 :font_color 0,0,0,230 MenuTB() obj%=obj%+1 : O_List%=obj% O_List(O_List%,TB_Container%,1,5,0,height(TB_Container%)-6,width(TB_Container%)-1,"") cursor_point O_List% : On_click O_List%,clic obj%=obj%+1 : O_DList% =obj% O_DList(O_DList%,"")
End_sub ' ------------------------------------------------------------------------------ Sub Init() if file_exists(MDC_DB$)=1 file_load O_DList%,MDC_DB$ Init_Liste() else if message_information_yes_no("La base compte est vide"+chr$(13)+"Voulez vous créer un compte ?...")=1 F_NewFiche() else exit_sub end_if end_if End_sub ' ------------------------------------------------------------------------------ Sub Init_Liste() dim_local x%,L$,sep% clear O_List% if count(O_DList%)>0 for x%= 1 to count(O_Dlist%) L$=item_read$(O_DList%,x%) sep%=instr(L$,"|") L$=left$(L$,sep%-1) item_add O_List%,L$ next x% res% = dll_call4("ModifyToolbar",3,2,1,0) else res% = dll_call4("ModifyToolbar",3,2,0,0) end_if End_sub ' ------------------------------------------------------------------------------ Sub MenuTB() dim_local x% dim TB_Position% :TB_Position% =0 dim TB_IcoSize% :TB_IcoSize% = 16 dim TB_Lib$ :TB_Lib$ =dir_current$+"\Fichiers\MDC.ilb" dim chg_hor% :chg_hor% =16 dim chg_ver% :chg_ver% =(TB_IcoSize%-16)+76 dim icon$(12),ic$ dim after% dim hint$(12),h$ dim TB_Edit%, TB_Container%, TB_Button%
obj%=obj%+1 :TB_Edit%=obj% Edit TB_Edit% : hide TB_Edit% :On_Change TB_Edit%,Toolbar_actions
obj%=obj%+1 :TB_Container%=obj% Container TB_Container%
res% = dll_call4("CreateToolbar",handle(0),handle(TB_Edit%),0,TB_Position%) res% = dll_call4("ModifyToolbar",7,TB_IcoSize%,0,0) Adapter_Container() res% = dll_call4("ModifyToolbar",8,1,0,0) res% = dll_call4("ModifyToolbar",2,0,0,0)
if file_exists(TB_Lib$)=1 res% = dll_call4("ModifyToolbar",5,adr(TB_Lib$),0,0) icon$(1) = "USER_1" icon$(2) = "USER_2" icon$(3) = "USER_3" icon$(4) = " " icon$(5) = " " icon$(6) = " " icon$(7) = " " icon$(8) = " " icon$(9) = " " icon$(10)= " " icon$(11)= "USER_7" icon$(12)= "USER_6" else icon$(1) = "KGF_140" icon$(2) = "KGF_186" icon$(3) = "KGF_336" icon$(4) = " " icon$(5) = " " icon$(6) = " " icon$(7) = " " icon$(8) = " " icon$(9) = " " icon$(10)= " " icon$(11)= " " icon$(12)= "KGF_204" end_if hint$(1) = "Ajouter un compte" hint$(2) = "Supprimer un compte" hint$(3) = "Se connecter à un compte" hint$(4) = "" hint$(5) = "" hint$(6) = "" hint$(7) = "" hint$(8) = "" hint$(9) = "" hint$(10)= "" hint$(11)= "" hint$(12)= "Quitter" for x%=1 to 12 h$=hint$(x%) ic$=icon$(x%) res% = dll_call4("AddButtonToToolbar",x%,x%-1,adr(h$),adr(ic$)) if ic$="USER_7" res% = dll_call4("ModifyToolbar",3,x%,0,0) end_if next x% End_sub ' ------------------------------------------------------------------------------ Sub Adapter_Container() select TB_Position% case 0 top TB_Container%,TB_IcoSize%+10 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%)+10 case 1 left TB_Container%,TB_IcoSize%+12 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) case 2 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) case 3 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) end_select End_sub ' ------------------------------------------------------------------------------ Toolbar_actions: TB_Button%=val(text$(TB_Edit%)) if TB_Button%<0 Message_Error() else select TB_Button% case 1 : F_NewFiche() case 2 : Remove_Fiche() case 3 : Connection() case 12: terminate end_select end_if return ' ------------------------------------------------------------------------------ Sub Remove_Fiche() dim_local L$ if Select_list%<>0 item_delete O_List%,Select_list% item_delete O_DList%,Select_List% file_save O_DList%,MDC_DB$ Init_Liste() else Message "Sélectionnez un nom..." end_if End_sub ' ------------------------------------------------------------------------------ Sub Connection() dim_local hnd%,s$,T$,cpt% res% = dll_call1("GetKeyboardState",20) if res%>0 then res% = dll_call5("SendSingleKey",handle(0),20,0,0,0) if Select_List%=0 : exit_sub :end_if hide 0 Execute "http://www.mydrive.ch" hide 0 pause 1000
while left$(T$,7)<>"MyDrive" T$ = string$(255," ") hnd% = dll_call1("GetActiveWindowTitle",adr(T$)) if T$<>string$(255," ") if left$(T$,7)="MyDrive" exit_while end_if end_if end_while
s$ = Login$ hnd% = dll_call0("GetActiveControl") res% = dll_call2("SendStringAsText",hnd%,adr(s$)) s$ = chr$(9) res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 s$ = pw$ res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 s$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 show 0 End_sub ' ------------------------------------------------------------------------------ Clic: clic%=number_click if clic%=NF_Button% :Save_Compte():end_if if clic%=O_List% :Select_Liste():end_if return ' ------------------------------------------------------------------------------ Sub Select_Liste() dim_local sep%,L$ Nom$="":Login$="":pw$="" if item_index(O_List%)>0 Select_List%=item_index(O_List%) L$=item_read$(O_DList%,Select_List%) sep%=instr(L$,"|") Nom$ = left$(L$,sep%-1) L$=right$(L$,len(L$)-sep%) sep%=instr(L$,"|") Login$= left$(L$,sep%-1) pw$=right$(L$,len(L$)-sep%) end_if End_sub ' ------------------------------------------------------------------------------ Sub Save_Compte() dim_local L$ if text$(NF_edit1%)="":message "Champ 'Pseudo' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if if text$(NF_edit2%)="":message "Champ 'Login' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if if text$(NF_edit3%)="":message "Champ 'Password' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if Verif_liste() if NF_verif%=1 if message_warning_yes_no("Une fiche :"+text$(NF_edit1%)+" existe déjà !"+chr$(13)+"Voulez créer la fiche ?...")<>1 Text NF_edit1%,"" Text NF_edit2%,"" Text NF_edit3%,"panoramic123" Hide MDC_NewFiche% exit_sub end_if end_if L$=text$(NF_edit1%)+"|"+Text$(NF_edit2%)+"|"+Text$(NF_edit3%) item_add O_DList%,L$ file_save O_DList%,MDC_DB$ Init_Liste() Text NF_edit1%,"" Text NF_edit2%,"" Text NF_edit3%,"panoramic123" Hide MDC_NewFiche% End_sub ' ------------------------------------------------------------------------------ Sub Verif_liste() dim_local T$,x% NF_verif%=0 if count(O_List%)>0 for x%=1 to count(O_List%) T$=item_read$(O_List%,x%) if T$=Text$(NF_edit1%) NF_verif%=1 exit_for end_if next x% end_if End_sub ' ------------------------------------------------------------------------------ Sub Message_Error() if TB_Button%=-1 then Adapter_Container() if TB_Button%=-2 then message "Error 2" if TB_Button%=-3 then message "Error 3" if TB_Button%=-4 then message "Error 4" End_sub ' ------------------------------------------------------------------------------ Sub F_NewFiche() dim_local hnd% if MDC_NewFiche%>0 show MDC_NewFiche% text NF_edit3%,"panoramic123" Font_color NF_edit3%,120,120,120 else obj%=obj%+1 : MDC_NewFiche%=obj% O_Form(obj%,0,1,0,0,205,350,"Créer un compte") font_name obj%,"arial" : font_size obj%,8 obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,10,10,0,0,"Pseudo") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit1%=obj% O_Edit(obj%,MDC_NewFiche%,1,25,10,0,200) obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,50,10,0,0,"Login") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit2%=obj% O_Edit(obj%,MDC_NewFiche%,1,65,10,0,300) obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,90,10,0,0,"Password") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit3%=obj% O_Edit(obj%,MDC_NewFiche%,1,105,10,0,200) text obj%,"panoramic123" : font_color obj%,120,120,120 on_click NF_edit3%,FC_black obj%=obj%+1 :NF_Button%=obj% O_Button(obj%,MDC_NewFiche%,1,135,width(MDC_NewFiche%)-100,0,0,"Enregistrer",1) end_if hnd%=handle(MDC_NewFiche%) res% = DLL_call2("WindowTopMost",hnd%,1) End_sub ' ------------------------------------------------------------------------------ Sub O_Form(No%,P%,V%,T%,L%,H%,W%,C$) if No%> 0 then FORM No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 : Top No%,T% : Else : Top No%,(Screen_y-H%)/2 : End_If If L% > 0 : Left No%,L%: Else : Left No%,(Screen_x-W%)/2: End_If if C$<>"" then Caption No%,C$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Alpha(No%,P%,V%,T%,L%,H%,W%,C$) ALPHA No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if C$<>"" then Caption No%,C$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Edit(No%,P%,V%,T%,L%,H%,W%) EDIT No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% End_Sub ' ------------------------------------------------------------------------------ Sub O_List(No%,P%,V%,T%,L%,H%,W%,F$) LIST No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if F$<>"" if file_exists F$ then file_load No%,F$ end_if End_Sub
' ------------------------------------------------------------------------------ Sub O_Dlist(No%,F$) DLIST No% if F$<>"" then file_load No%,F$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Button(No%,P%,V%,T%,L%,H%,W%,C$,Cl%) BUTTON No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if C$<>"" then Caption No%,C$ if Cl%> 0 then on_click No%,Clic cursor_point No% End_Sub ' ------------------------------------------------------------------------------ FC_Black: Font_color NF_edit3%,0,0,0 return rem ============================================================================
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 0:49 | |
| Ecoute, Papydall - tu me laisses sans voix. Ca fonctionne, et je ne me l'explique pas. Dans un sens, tant mieux - je ne prétends pas avoir la connaissance absolue. Mais j'aime bien comprendre.
As-tu une explication ? Je sais, ça paraît bizarre que ce soit moi qui te pose une question sur le fonctionnement de mon propre code. Et pourtant... Explication il doit y avoir, et explication il y aura. D'une manière ou d'une autre, il faut élucider cela, car la porté de cela est beaucoup plus large que ce simple programme.
EDIT
Et ça marche aussi dans mon programme de démo de toolbar: sans on_close 0 ni timer, juste un terminate sec, dans le traitement du bouton de sortie. Bluffant. Mais les faits sont là. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 1:30 | |
| La seule explication qui me parait plausible, réside dans le fonctionnement de la commande TERMINATE. En effet, l’aide sur TERMINATE dit : « Cette commande TERMINATE arrête définitivement l’exécution du programme et libère la mémoire. Tous les objets sont détruits. Le programme n’existe plus en mémoire » La commande TERMINATE détruit entre autres la ToolBar qui est considérée comme objet comme n’importe quel objet. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 1:45 | |
| Les faits te donnent raison, Papydall. Pourtant, ce n'est pas ce qui devrait se passer. En effet, l'objet toolbar a bien la form 0 comme parent, mais pas comme propriétaire (owner). Et c'est le propriétaire qui est, sous Windows, responsable de la suppression de ses "possessions", pas le parent de la suppression de ses enfants.
D'accord, dans le cas général, propriétaire et parent sont identique. Mais ce n'est pas le cas ici. Je constate bien que ça fonctionne, mais je ne m'explique pas la raison. Enfin - puisqu'il en est ainsi, je vais adapter mon programme de démo, ainsi que mon tuto sur la toolbar. Ce sera fait demain.
En tout cas, un grand MERCI à toi, Papydall, d'avoir eu la curiosité de te pencher sur ce problème, et mes ficilitations d'avoir trouvé la solution ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 2:05 | |
| Il n’y a pas de quoi me remercier. J’ai simplement essayé de comprendre car j’ai aussi ce côté d’insatisfaction quand je ne comprends pas. Tout le plaisir est pour moi. J’avais écrit une fois que je suis un eternel étudiant. Je sais que tu connais le sens de la satisfaction qu’on éprouve quand on a réussi une chose. De mon côté aussi de te féliciter pour tout ce que tu fais pour Panoramic et pour la communauté. PS : J’ai remplacé le TERMINATE par un END et ça n’a pas marché. Preuve de plus que TERMINATE détruit les objets parent (FORM 0) et fils (ToolBar) | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 9:09 | |
| J'ai adapté mon tuto toolbar dans le dossier "Articles à corriger", Ygeronimi. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 9:30 | |
| En lisant les dernière interventions j'ai eu une idée.
Je ne peux pas l'essayer puisque que sous W8 je n'ai pas ce problème de fermeture, je suis seulement obligé d'augmenter le premier temps de pause de la procédure Connection().
Donc mon idée, c'est de remplacer HIDE 0 par DELETE 0, ainsi la ToolBar sera supprimée.
PS: IL FAUT LE FAIRE APRES LA PAUSE pour laisser le temps au navigateur.
Je ne sais pas ce çà vaut, c'est juste pour aider.
A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 10:31 | |
| Oui Jean Claude, mais FORM 0 cannot be deleted ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 13:53 | |
| | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 13:58 | |
| FORM 0, on peut jouer avec : le cacher, le montrer, l’agrandir, le réduire, le déplacer et beaucoup d’autres choses encore, mais, (car il y a toujours un mais) on ne peut ni le créer ni le détruire ! Seul PANORAMIC le crée et seule la commande TERMINATE le détruit ! Et c'est tant mieux! Imaginer le contraire. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 14:11 | |
| Oui, ma piste n'est pas la bonne... A+ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 15:04 | |
| Je remets ici la version qui semble bien marcher, sous XP et W7 (grâce à Papydall): - Code:
-
' MyDriveConnector.bas
Variables() Labels() Start_Dll() GUI() Init() end ' ------------------------------------------------------------------------------ Sub Variables() dim Titre$ : Titre$ ="My Drive Connector" dim W_GUI% : W_GUI% =298 dim H_GUI% : H_GUI% =450 dim T_GUI% : T_GUI% =(screen_y-H_GUI%)/2 dim L_GUI% : L_GUI% =(screen_x-W_GUI%)/2 dim obj%,O_List%,O_DList% dim MDC_DB$: MDC_DB$ =dir_current$+"\MDC_DB.bdd" dim MDC_NewFiche%,NF_edit1%,NF_edit2%,NF_edit3%,NF_Button%,clic%,NF_verif% dim Select_List%,Nom$,Login$,pw$ dim MDC_timer% End_sub ' ------------------------------------------------------------------------------ Sub Labels() ' Click Label clic ' Change Label Toolbar_actions,FC_Black End_sub ' ------------------------------------------------------------------------------ Sub Start_Dll() dim KGF$,res% KGF$="KGF.dll" : ' <============= adaapter le chemin si nécessaire ! dll_on KGF$ End_sub ' ------------------------------------------------------------------------------ Sub GUI() width 0,W_GUI% : height 0,H_GUI% : top 0,T_GUI% : left 0,L_GUI% Caption 0,Titre$ : font_name 0,"arial" :font_bold 0 :font_color 0,0,0,230 MenuTB() obj%=obj%+1 : O_List%=obj% O_List(O_List%,TB_Container%,1,5,0,height(TB_Container%)-6,width(TB_Container%)-1,"") cursor_point O_List% : On_click O_List%,clic obj%=obj%+1 : O_DList% =obj% O_DList(O_DList%,"") obj%=obj%+1 : MDC_Timer%=obj% O_Timer(obj%,0,500) End_sub ' ------------------------------------------------------------------------------ Sub Init() if file_exists(MDC_DB$)=1 file_load O_DList%,MDC_DB$ Init_Liste() else if message_information_yes_no("La base compte est vide"+chr$(13)+"Voulez vous créer un compte ?...")=1 F_NewFiche() else exit_sub : ' anciennement end_sub ! end_if end_if End_sub ' ------------------------------------------------------------------------------ Sub Init_Liste() dim_local x%,L$,sep% clear O_List% if count(O_DList%)>0 for x%= 1 to count(O_Dlist%) L$=item_read$(O_DList%,x%) sep%=instr(L$,"|") L$=left$(L$,sep%-1) item_add O_List%,L$ next x% res% = dll_call4("ModifyToolbar",3,2,1,0) else res% = dll_call4("ModifyToolbar",3,2,0,0) end_if End_sub ' ------------------------------------------------------------------------------ Sub MenuTB() dim_local x% dim TB_Position% :TB_Position% =0 dim TB_IcoSize% :TB_IcoSize% = 16 dim TB_Lib$ :TB_Lib$ =dir_current$+"\Fichiers\MDC.ilb" dim chg_hor% :chg_hor% =16 dim chg_ver% :chg_ver% =(TB_IcoSize%-16)+76 dim icon$(12),ic$ dim after% dim hint$(12),h$ dim TB_Edit%, TB_Container%, TB_Button%
obj%=obj%+1 :TB_Edit%=obj% Edit TB_Edit% : hide TB_Edit% :On_Change TB_Edit%,Toolbar_actions
obj%=obj%+1 :TB_Container%=obj% Container TB_Container%
res% = dll_call4("CreateToolbar",handle(0),handle(TB_Edit%),0,TB_Position%) res% = dll_call4("ModifyToolbar",7,TB_IcoSize%,0,0) Adapter_Container() res% = dll_call4("ModifyToolbar",8,1,0,0) res% = dll_call4("ModifyToolbar",2,0,0,0)
if file_exists(TB_Lib$)=1 res% = dll_call4("ModifyToolbar",5,adr(TB_Lib$),0,0) icon$(1) = "USER_1" icon$(2) = "USER_2" icon$(3) = "USER_3" icon$(4) = " " icon$(5) = " " icon$(6) = " " icon$(7) = " " icon$(8) = " " icon$(9) = " " icon$(10)= " " icon$(11)= "USER_7" icon$(12)= "USER_6" else icon$(1) = "KGF_140" icon$(2) = "KGF_186" icon$(3) = "KGF_336" icon$(4) = " " icon$(5) = " " icon$(6) = " " icon$(7) = " " icon$(8) = " " icon$(9) = " " icon$(10)= " " icon$(11)= " " icon$(12)= "KGF_204" end_if hint$(1) = "Ajouter un compte" hint$(2) = "Supprimer un compte" hint$(3) = "Se connecter à un compte" hint$(4) = "" hint$(5) = "" hint$(6) = "" hint$(7) = "" hint$(8) = "" hint$(9) = "" hint$(10)= "" hint$(11)= "" hint$(12)= "Quitter"
for x%=1 to 12 h$=hint$(x%) ic$=icon$(x%) res% = dll_call4("AddButtonToToolbar",x%,x%-1,adr(h$),adr(ic$)) if ic$="USER_7" res% = dll_call4("ModifyToolbar",3,x%,0,0) end_if next x% End_sub ' ------------------------------------------------------------------------------ Sub Adapter_Container() select TB_Position% case 0 top TB_Container%,TB_IcoSize%+10 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%)+10 case 1 left TB_Container%,TB_IcoSize%+12 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) case 2 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) case 3 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) end_select End_sub ' ------------------------------------------------------------------------------ Toolbar_actions: TB_Button%=val(text$(TB_Edit%)) if TB_Button%<0 Message_Error() else select TB_Button% case 1 : F_NewFiche() case 2 : Remove_Fiche() case 3 : Connection() case 12 : terminate end_select end_if return ' ------------------------------------------------------------------------------ Sub Remove_Fiche() dim_local L$ if Select_list%<>0 item_delete O_List%,Select_list% item_delete O_DList%,Select_List% file_save O_DList%,MDC_DB$ Init_Liste() else Message "Sélectionnez un nom..." end_if End_sub ' ------------------------------------------------------------------------------ Sub Connection() dim_local hnd%,s$,T$,cpt% res% = dll_call1("GetKeyboardState",20) if res%>0 then res% = dll_call5("SendSingleKey",handle(0),20,0,0,0) hide 0 Execute "http://www.mydrive.ch" hide 0 pause 3000
while left$(t$,7)<>"MyDrive" T$ = string$(255," ") hnd% = dll_call1("GetActiveWindowTitle",adr(T$)) if T$<>string$(255," ") if left$(T$,7)="MyDrive" exit_while end_if end_if end_while
s$ = Login$ hnd% = dll_call0("GetActiveControl") res% = dll_call2("SendStringAsText",hnd%,adr(s$)) s$ = chr$(9) res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 s$ = pw$ res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 s$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 show 0 End_sub ' ------------------------------------------------------------------------------ Clic: clic%=number_click if clic%=NF_Button% :Save_Compte():end_if if clic%=O_List% :Select_Liste():end_if return ' ------------------------------------------------------------------------------ Sub Select_Liste() dim_local sep%,L$ Nom$="":Login$="":pw$="" if item_index(O_List%)>0 Select_List%=item_index(O_List%) L$=item_read$(O_DList%,Select_List%) sep%=instr(L$,"|") Nom$ = left$(L$,sep%-1) L$=right$(L$,len(L$)-sep%) sep%=instr(L$,"|") Login$= left$(L$,sep%-1) pw$=right$(L$,len(L$)-sep%) end_if End_sub ' ------------------------------------------------------------------------------ Sub Save_Compte() dim_local L$ if text$(NF_edit1%)="":message "Champ 'Pseudo' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if if text$(NF_edit2%)="":message "Champ 'Login' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if if text$(NF_edit3%)="":message "Champ 'Password' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if Verif_liste() if NF_verif%=1 if message_warning_yes_no("Une fiche :"+text$(NF_edit1%)+" existe déjà !"+chr$(13)+"Voulez créer la fiche ?...")<>1 Text NF_edit1%,"" Text NF_edit2%,"" Text NF_edit3%,"panoramic123" Hide MDC_NewFiche% end_sub end_if end_if L$=text$(NF_edit1%)+"|"+Text$(NF_edit2%)+"|"+Text$(NF_edit3%) item_add O_DList%,L$ file_save O_DList%,MDC_DB$ Init_Liste() Text NF_edit1%,"" Text NF_edit2%,"" Text NF_edit3%,"panoramic123" Hide MDC_NewFiche% End_sub ' ------------------------------------------------------------------------------ Sub Verif_liste() dim_local T$,x% NF_verif%=0 if count(O_List%)>0 for x%=1 to count(O_List%) T$=item_read$(O_List%,x%) if T$=Text$(NF_edit1%) NF_verif%=1 exit_for end_if next x% end_if End_sub ' ------------------------------------------------------------------------------ Sub Message_Error() if TB_Button%=-1 then Adapter_Container() if TB_Button%=-2 then message "Error 2" if TB_Button%=-3 then message "Error 3" if TB_Button%=-4 then message "Error 4" End_sub ' ------------------------------------------------------------------------------ Sub F_NewFiche() dim_local hnd% if MDC_NewFiche%>0 show MDC_NewFiche% text NF_edit3%,"panoramic123" Font_color NF_edit3%,120,120,120 else obj%=obj%+1 : MDC_NewFiche%=obj% O_Form(obj%,0,1,0,0,205,350,"Créer un compte") font_name obj%,"arial" : font_size obj%,8 obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,10,10,0,0,"Pseudo") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit1%=obj% O_Edit(obj%,MDC_NewFiche%,1,25,10,0,200) obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,50,10,0,0,"Login") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit2%=obj% O_Edit(obj%,MDC_NewFiche%,1,65,10,0,300) obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,90,10,0,0,"Password") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit3%=obj% O_Edit(obj%,MDC_NewFiche%,1,105,10,0,200) text obj%,"panoramic123" : font_color obj%,120,120,120 on_click NF_edit3%,FC_black obj%=obj%+1 :NF_Button%=obj% O_Button(obj%,MDC_NewFiche%,1,135,width(MDC_NewFiche%)-100,0,0,"Enregistrer",1) end_if hnd%=handle(MDC_NewFiche%) res% = DLL_call2("WindowTopMost",hnd%,1) End_sub ' ------------------------------------------------------------------------------ Sub O_Form(No%,P%,V%,T%,L%,H%,W%,C$) if No%> 0 then FORM No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 : Top No%,T% : Else : Top No%,(Screen_y-H%)/2 : End_If If L% > 0 : Left No%,L%: Else : Left No%,(Screen_x-W%)/2: End_If if C$<>"" then Caption No%,C$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Alpha(No%,P%,V%,T%,L%,H%,W%,C$) ALPHA No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if C$<>"" then Caption No%,C$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Edit(No%,P%,V%,T%,L%,H%,W%) EDIT No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% End_Sub ' ------------------------------------------------------------------------------ Sub O_List(No%,P%,V%,T%,L%,H%,W%,F$) LIST No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if F$<>"" if file_exists F$ then file_load No%,F$ end_if End_Sub ' ------------------------------------------------------------------------------ Sub O_Timer(No%,OO%,Inter%) TIMER No% if OO%=1 then timer_on No% if OO%=0 then timer_off No% if inter%>0 then timer_interval No%,inter% End_Sub ' ------------------------------------------------------------------------------ Sub O_Dlist(No%,F$) DLIST No% if F$<>"" then file_load No%,F$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Button(No%,P%,V%,T%,L%,H%,W%,C$,Cl%) BUTTON No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if C$<>"" then Caption No%,C$ if Cl%> 0 then on_click No%,Clic cursor_point No% End_Sub ' ------------------------------------------------------------------------------ FC_Black: Font_color NF_edit3%,0,0,0 return ' ------------------------------------------------------------------------------
Comme d'habitude, il faut éventuellement adapter le chemin vers la DLL, en ligne 32. Je m'en sers maintenant régulièrement, et ça a l'air stable.
Dernière édition par Klaus le Dim 26 Jan 2014 - 16:26, édité 1 fois | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 16:19 | |
| ça marche, OK.
Ligne 57, je préfère EXIT_SUB à END_SUB. (Je ne dis pas que c’est incorrect : c’est une simple préférence) Une SUB doit avoir un seul END_SUB et autant de EXIT_SUB que nécessaire ; mais ce n’est pas une obligation. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 16:25 | |
| Tu as parfaitement raison. J'adapte dans le code ci-dessus, et chez moi. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 26 Jan 2014 - 17:57 | |
| J' ai fait un test sur le dernier code. La suppression du on_close 0 ne provoque pas d' erreur Mais la suppression des lignes pour la sortie par le bouton donne : "PANORAMIC.exe a cessé de fonctionner..." Il serait tant que Jack s' exprime sur ce sujet qui nous rend tous chêvre... En attendant de trouver mieux, je vous propose de garder le code de la sortie par le bouton de la toolbar... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 18:53 | |
| Qu'est-ce qui ne marche plus ? Chez moi, absolument tout marche. Qu'est-ce que tu appelles "suppression des lignes par le bouton sortie" ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 26 Jan 2014 - 20:52 | |
| Les lignes de code du bouton "Quitter" de la barre d' outils sont nécessaires sous w7 ( Timer et autres... ) Seul les lignes de code de la fermeture par la croix sont supprimables pour moi. Voilà le code source que je conserve et qui fonctionne sous w7 : - Spoiler:
- Code:
-
Variables() Labels() Start_Dll() GUI() Init() end ' ------------------------------------------------------------------------------ Sub Variables() dim Titre$ : Titre$ ="My Drive Connector" dim W_GUI% : W_GUI% =298 dim H_GUI% : H_GUI% =450 dim T_GUI% : T_GUI% =(screen_y-H_GUI%)/2 dim L_GUI% : L_GUI% =(screen_x-W_GUI%)/2 dim obj%,O_List%,O_DList% dim MDC_DB$: MDC_DB$ =dir_current$+"\MDC_Fichiers\MDC_DB.bdd" dim MDC_NewFiche%,NF_edit1%,NF_edit2%,NF_edit3%,NF_Button%,clic%,NF_verif% dim Select_List%,Nom$,Login$,pw$ dim MDC_timer% End_sub ' ------------------------------------------------------------------------------ Sub Labels() ' Click Label Fin,clic ' Change Label Toolbar_actions,FC_Black End_sub ' ------------------------------------------------------------------------------ Sub Start_Dll() dim KGF$,res% KGF$=Dir_current$+"\MDC_Fichiers\KGF.dll" dll_on KGF$ End_sub ' ------------------------------------------------------------------------------ Sub GUI() width 0,W_GUI% : height 0,H_GUI% : top 0,T_GUI% : left 0,L_GUI% Caption 0,Titre$ : font_name 0,"arial" :font_bold 0 :font_color 0,0,0,230 MenuTB() obj%=obj%+1 : O_List%=obj% O_List(O_List%,TB_Container%,1,5,0,height(TB_Container%)-6,width(TB_Container%)-1,"") cursor_point O_List% : On_click O_List%,clic obj%=obj%+1 : O_DList% =obj% O_DList(O_DList%,"") obj%=obj%+1 : MDC_Timer%=obj% O_Timer(obj%,0,500) End_sub ' ------------------------------------------------------------------------------ Sub Init() if file_exists(MDC_DB$)=1 file_load O_DList%,MDC_DB$ Init_Liste() else if message_information_yes_no("La base compte est vide"+chr$(13)+"Voulez vous créer un compte ?...")=1 F_NewFiche() else end_sub end_if end_if End_sub ' ------------------------------------------------------------------------------ Sub Init_Liste() dim_local x%,L$,sep% clear O_List% if count(O_DList%)>0 for x%= 1 to count(O_Dlist%) L$=item_read$(O_DList%,x%) sep%=instr(L$,"|") L$=left$(L$,sep%-1) item_add O_List%,L$ next x% res% = dll_call4("ModifyToolbar",3,2,1,0) else res% = dll_call4("ModifyToolbar",3,2,0,0) end_if End_sub ' ------------------------------------------------------------------------------ Sub MenuTB() dim_local x% dim TB_Position% :TB_Position% =0 dim TB_IcoSize% :TB_IcoSize% = 16 dim TB_Lib$ :TB_Lib$ =dir_current$+"\MDC_Fichiers\MDC.ilb" dim chg_hor% :chg_hor% =16 dim chg_ver% :chg_ver% =(TB_IcoSize%-16)+76 dim icon$(12),ic$ dim after% dim hint$(12),h$ dim TB_Edit%, TB_Container%, TB_Button%
obj%=obj%+1 :TB_Edit%=obj% Edit TB_Edit% : hide TB_Edit% :On_Change TB_Edit%,Toolbar_actions
obj%=obj%+1 :TB_Container%=obj% Container TB_Container%
res% = dll_call4("CreateToolbar",handle(0),handle(TB_Edit%),0,TB_Position%) res% = dll_call4("ModifyToolbar",7,TB_IcoSize%,0,0) Adapter_Container() res% = dll_call4("ModifyToolbar",8,1,0,0) res% = dll_call4("ModifyToolbar",2,0,0,0)
if file_exists(TB_Lib$)=1 res% = dll_call4("ModifyToolbar",5,adr(TB_Lib$),0,0) icon$(1) = "USER_1" icon$(2) = "USER_2" icon$(3) = "USER_3" icon$(4) = " " icon$(5) = " " icon$(6) = " " icon$(7) = " " icon$(8) = " " icon$(9) = " " icon$(10)= " " icon$(11)= "USER_7" icon$(12)= "USER_6" else icon$(1) = "KGF_140" icon$(2) = "KGF_186" icon$(3) = "KGF_336" icon$(4) = " " icon$(5) = " " icon$(6) = " " icon$(7) = " " icon$(8) = " " icon$(9) = " " icon$(10)= " " icon$(11)= " " icon$(12)= "KGF_204" end_if hint$(1) = "Ajouter un compte" hint$(2) = "Supprimer un compte" hint$(3) = "Se connecter à un compte" hint$(4) = "" hint$(5) = "" hint$(6) = "" hint$(7) = "" hint$(8) = "" hint$(9) = "" hint$(10)= "" hint$(11)= "" hint$(12)= "Quitter" for x%=1 to 12 h$=hint$(x%) ic$=icon$(x%) res% = dll_call4("AddButtonToToolbar",x%,x%-1,adr(h$),adr(ic$)) if ic$="USER_7" res% = dll_call4("ModifyToolbar",3,x%,0,0) end_if next x% End_sub ' ------------------------------------------------------------------------------ Sub Adapter_Container() select TB_Position% case 0 top TB_Container%,TB_IcoSize%+10 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%)+10 case 1 left TB_Container%,TB_IcoSize%+12 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) case 2 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) case 3 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) end_select End_sub ' ------------------------------------------------------------------------------ Toolbar_actions: TB_Button%=val(text$(TB_Edit%)) if TB_Button%<0 Message_Error() else select TB_Button% case 1 : F_NewFiche() case 2 : Remove_Fiche() case 3 : Connection() case 12 timer_on MDC_timer% timer_interval MDC_timer%,500 on_timer MDC_timer%,fin end_select end_if return ' ------------------------------------------------------------------------------ Sub Remove_Fiche() dim_local L$ if Select_list%<>0 item_delete O_List%,Select_list% item_delete O_DList%,Select_List% file_save O_DList%,MDC_DB$ Init_Liste() else Message "Sélectionnez un nom..." end_if End_sub ' ------------------------------------------------------------------------------ Sub Connection() dim_local hnd%,s$,T$,cpt% res% = dll_call1("GetKeyboardState",20) if res%>0 then res% = dll_call5("SendSingleKey",handle(0),20,0,0,0) if Select_List%=0 : exit_sub :end_if hide 0 Execute "http://www.mydrive.ch" hide 0 pause 1000
while left$(T$,7)<>"MyDrive" T$ = string$(255," ") hnd% = dll_call1("GetActiveWindowTitle",adr(T$)) if T$<>string$(255," ") if left$(T$,7)="MyDrive" exit_while end_if end_if end_while
s$ = Login$ hnd% = dll_call0("GetActiveControl") res% = dll_call2("SendStringAsText",hnd%,adr(s$)) s$ = chr$(9) res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 s$ = pw$ res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 s$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 show 0 End_sub ' ------------------------------------------------------------------------------ Clic: clic%=number_click if clic%=NF_Button% :Save_Compte():end_if if clic%=O_List% :Select_Liste():end_if return ' ------------------------------------------------------------------------------ Sub Select_Liste() dim_local sep%,L$ Nom$="":Login$="":pw$="" if item_index(O_List%)>0 Select_List%=item_index(O_List%) L$=item_read$(O_DList%,Select_List%) sep%=instr(L$,"|") Nom$ = left$(L$,sep%-1) L$=right$(L$,len(L$)-sep%) sep%=instr(L$,"|") Login$= left$(L$,sep%-1) pw$=right$(L$,len(L$)-sep%) end_if End_sub ' ------------------------------------------------------------------------------ Sub Save_Compte() dim_local L$ if text$(NF_edit1%)="":message "Champ 'Pseudo' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if if text$(NF_edit2%)="":message "Champ 'Login' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if if text$(NF_edit3%)="":message "Champ 'Password' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if Verif_liste() if NF_verif%=1 if message_warning_yes_no("Une fiche :"+text$(NF_edit1%)+" existe déjà !"+chr$(13)+"Voulez créer la fiche ?...")<>1 Text NF_edit1%,"" Text NF_edit2%,"" Text NF_edit3%,"panoramic123" Hide MDC_NewFiche% end_sub end_if end_if L$=text$(NF_edit1%)+"|"+Text$(NF_edit2%)+"|"+Text$(NF_edit3%) item_add O_DList%,L$ file_save O_DList%,MDC_DB$ Init_Liste() Text NF_edit1%,"" Text NF_edit2%,"" Text NF_edit3%,"panoramic123" Hide MDC_NewFiche% End_sub ' ------------------------------------------------------------------------------ Sub Verif_liste() dim_local T$,x% NF_verif%=0 if count(O_List%)>0 for x%=1 to count(O_List%) T$=item_read$(O_List%,x%) if T$=Text$(NF_edit1%) NF_verif%=1 exit_for end_if next x% end_if End_sub ' ------------------------------------------------------------------------------ Sub Message_Error() if TB_Button%=-1 then Adapter_Container() if TB_Button%=-2 then message "Error 2" if TB_Button%=-3 then message "Error 3" if TB_Button%=-4 then message "Error 4" End_sub ' ------------------------------------------------------------------------------ Sub F_NewFiche() dim_local hnd% if MDC_NewFiche%>0 show MDC_NewFiche% text NF_edit3%,"panoramic123" Font_color NF_edit3%,120,120,120 else obj%=obj%+1 : MDC_NewFiche%=obj% O_Form(obj%,0,1,0,0,205,350,"Créer un compte") font_name obj%,"arial" : font_size obj%,8 obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,10,10,0,0,"Pseudo") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit1%=obj% O_Edit(obj%,MDC_NewFiche%,1,25,10,0,200) obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,50,10,0,0,"Login") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit2%=obj% O_Edit(obj%,MDC_NewFiche%,1,65,10,0,300) obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,90,10,0,0,"Password") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit3%=obj% O_Edit(obj%,MDC_NewFiche%,1,105,10,0,200) text obj%,"panoramic123" : font_color obj%,120,120,120 on_click NF_edit3%,FC_black obj%=obj%+1 :NF_Button%=obj% O_Button(obj%,MDC_NewFiche%,1,135,width(MDC_NewFiche%)-100,0,0,"Enregistrer",1) end_if hnd%=handle(MDC_NewFiche%) res% = DLL_call2("WindowTopMost",hnd%,1) End_sub ' ------------------------------------------------------------------------------ Sub O_Form(No%,P%,V%,T%,L%,H%,W%,C$) if No%> 0 then FORM No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 : Top No%,T% : Else : Top No%,(Screen_y-H%)/2 : End_If If L% > 0 : Left No%,L%: Else : Left No%,(Screen_x-W%)/2: End_If if C$<>"" then Caption No%,C$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Alpha(No%,P%,V%,T%,L%,H%,W%,C$) ALPHA No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if C$<>"" then Caption No%,C$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Edit(No%,P%,V%,T%,L%,H%,W%) EDIT No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% End_Sub ' ------------------------------------------------------------------------------ Sub O_List(No%,P%,V%,T%,L%,H%,W%,F$) LIST No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if F$<>"" if file_exists F$ then file_load No%,F$ end_if End_Sub ' ------------------------------------------------------------------------------ Sub O_Timer(No%,OO%,Inter%) TIMER No% if OO%=1 then timer_on No% if OO%=0 then timer_off No% if inter%>0 then timer_interval No%,inter% End_Sub ' ------------------------------------------------------------------------------ Sub O_Dlist(No%,F$) DLIST No% if F$<>"" then file_load No%,F$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Button(No%,P%,V%,T%,L%,H%,W%,C$,Cl%) BUTTON No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if C$<>"" then Caption No%,C$ if Cl%> 0 then on_click No%,Clic cursor_point No% End_Sub ' ------------------------------------------------------------------------------ FC_Black: Font_color NF_edit3%,0,0,0 return ' ------------------------------------------------------------------------------ Fin: timer_off MDC_timer% res% = dll_call4("ModifyToolbar",8,0,0,0) res% = dll_call1("RemoveToolbar",1) dll_off terminate
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: MyDrive Connector Dim 26 Jan 2014 - 23:25 | |
| Etrange. Laissonsl es autres fans de W7 exprimer leurs expériences avant de tout chambouler à nouveau... | |
| | | Invité Invité
| Sujet: Re: MyDrive Connector Lun 27 Jan 2014 - 1:02 | |
| Bonsoir,
Je ne suis pas du tout ce poste, juste regardé sans plus. Je suis sous W7. Si il faut je veux bien faire l'essai pour avoir un autre avis, vu le mal que vous vous donnez pour aboutir à ce code. Mais j'ai besoin de savoir, sans aller tout relire, ce qu'il faut télécharger.
Comme KGF je ne la télécharge pas souvent, je m'aperçois que j'ai x. exemplaires à différents endroits. Je suppose qu'il faut aussi télécharger des boutons, et où ont les mets? Avec la DLL?
Là ce soir, je continue encore un peu sur mon programme, et j’arrête.
Edit: Je vois en regardant le code: c'est quoi MDC_DB.bdd, il faut aussi télécharger une base de donnés. ? |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: MyDrive Connector Lun 27 Jan 2014 - 2:07 | |
| Je te remercie de bien vouloir tester. Il faut télécharger: KGF.dll de mon WebDav tel qu'il est actuellement et - Code:
-
' MyDriveConnector.bas
Variables() Labels() Start_Dll() GUI() Init() end ' ------------------------------------------------------------------------------ Sub Variables() dim Titre$ : Titre$ ="My Drive Connector" dim W_GUI% : W_GUI% =298 dim H_GUI% : H_GUI% =450 dim T_GUI% : T_GUI% =(screen_y-H_GUI%)/2 dim L_GUI% : L_GUI% =(screen_x-W_GUI%)/2 dim obj%,O_List%,O_DList% dim MDC_DB$: MDC_DB$ =dir_current$+"\MDC_DB.bdd" dim MDC_NewFiche%,NF_edit1%,NF_edit2%,NF_edit3%,NF_Button%,clic%,NF_verif% dim Select_List%,Nom$,Login$,pw$ dim MDC_timer% End_sub ' ------------------------------------------------------------------------------ Sub Labels() ' Click Label clic ' Change Label Toolbar_actions,FC_Black End_sub ' ------------------------------------------------------------------------------ Sub Start_Dll() dim KGF$,res% KGF$="KGF.dll" : ' <============= adaapter le chemin si nécessaire ! dll_on KGF$ End_sub ' ------------------------------------------------------------------------------ Sub GUI() width 0,W_GUI% : height 0,H_GUI% : top 0,T_GUI% : left 0,L_GUI% Caption 0,Titre$ : font_name 0,"arial" :font_bold 0 :font_color 0,0,0,230 MenuTB() obj%=obj%+1 : O_List%=obj% O_List(O_List%,TB_Container%,1,5,0,height(TB_Container%)-6,width(TB_Container%)-1,"") cursor_point O_List% : On_click O_List%,clic obj%=obj%+1 : O_DList% =obj% O_DList(O_DList%,"") obj%=obj%+1 : MDC_Timer%=obj% O_Timer(obj%,0,500) End_sub ' ------------------------------------------------------------------------------ Sub Init() if file_exists(MDC_DB$)=1 file_load O_DList%,MDC_DB$ Init_Liste() else if message_information_yes_no("La base compte est vide"+chr$(13)+"Voulez vous créer un compte ?...")=1 F_NewFiche() else exit_sub end_if end_if End_sub ' ------------------------------------------------------------------------------ Sub Init_Liste() dim_local x%,L$,sep% clear O_List% if count(O_DList%)>0 for x%= 1 to count(O_Dlist%) L$=item_read$(O_DList%,x%) sep%=instr(L$,"|") L$=left$(L$,sep%-1) item_add O_List%,L$ next x% res% = dll_call4("ModifyToolbar",3,2,1,0) else res% = dll_call4("ModifyToolbar",3,2,0,0) end_if End_sub ' ------------------------------------------------------------------------------ Sub MenuTB() dim_local x% dim TB_Position% :TB_Position% =0 dim TB_IcoSize% :TB_IcoSize% = 16 dim TB_Lib$ :TB_Lib$ =dir_current$+"\Fichiers\MDC.ilb" dim chg_hor% :chg_hor% =16 dim chg_ver% :chg_ver% =(TB_IcoSize%-16)+76 dim icon$(12),ic$ dim after% dim hint$(12),h$ dim TB_Edit%, TB_Container%, TB_Button%
obj%=obj%+1 :TB_Edit%=obj% Edit TB_Edit% : hide TB_Edit% :On_Change TB_Edit%,Toolbar_actions
obj%=obj%+1 :TB_Container%=obj% Container TB_Container%
res% = dll_call4("CreateToolbar",handle(0),handle(TB_Edit%),0,TB_Position%) res% = dll_call4("ModifyToolbar",7,TB_IcoSize%,0,0) Adapter_Container() res% = dll_call4("ModifyToolbar",8,1,0,0) res% = dll_call4("ModifyToolbar",2,0,0,0)
if file_exists(TB_Lib$)=1 res% = dll_call4("ModifyToolbar",5,adr(TB_Lib$),0,0) icon$(1) = "USER_1" icon$(2) = "USER_2" icon$(3) = "USER_3" icon$(4) = " " icon$(5) = " " icon$(6) = " " icon$(7) = " " icon$(8) = " " icon$(9) = " " icon$(10)= " " icon$(11)= "USER_7" icon$(12)= "USER_6" else icon$(1) = "KGF_140" icon$(2) = "KGF_186" icon$(3) = "KGF_336" icon$(4) = " " icon$(5) = " " icon$(6) = " " icon$(7) = " " icon$(8) = " " icon$(9) = " " icon$(10)= " " icon$(11)= " " icon$(12)= "KGF_204" end_if hint$(1) = "Ajouter un compte" hint$(2) = "Supprimer un compte" hint$(3) = "Se connecter à un compte" hint$(4) = "" hint$(5) = "" hint$(6) = "" hint$(7) = "" hint$(8) = "" hint$(9) = "" hint$(10)= "" hint$(11)= "" hint$(12)= "Quitter"
for x%=1 to 12 h$=hint$(x%) ic$=icon$(x%) res% = dll_call4("AddButtonToToolbar",x%,x%-1,adr(h$),adr(ic$)) if ic$="USER_7" res% = dll_call4("ModifyToolbar",3,x%,0,0) end_if next x% End_sub ' ------------------------------------------------------------------------------ Sub Adapter_Container() select TB_Position% case 0 top TB_Container%,TB_IcoSize%+10 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%)+10 case 1 left TB_Container%,TB_IcoSize%+12 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) case 2 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) case 3 width TB_Container%,(width(0)-chg_hor%) height TB_Container%,(height(0)-chg_ver%) end_select End_sub ' ------------------------------------------------------------------------------ Toolbar_actions: TB_Button%=val(text$(TB_Edit%)) if TB_Button%<0 Message_Error() else select TB_Button% case 1 : F_NewFiche() case 2 : Remove_Fiche() case 3 : Connection() case 12 : terminate end_select end_if return ' ------------------------------------------------------------------------------ Sub Remove_Fiche() dim_local L$ if Select_list%<>0 item_delete O_List%,Select_list% item_delete O_DList%,Select_List% file_save O_DList%,MDC_DB$ Init_Liste() else Message "Sélectionnez un nom..." end_if End_sub ' ------------------------------------------------------------------------------ Sub Connection() dim_local hnd%,s$,T$,cpt% res% = dll_call1("GetKeyboardState",20) if res%>0 then res% = dll_call5("SendSingleKey",handle(0),20,0,0,0) hide 0 Execute "http://www.mydrive.ch" hide 0 pause 3000
while left$(t$,7)<>"MyDrive" T$ = string$(255," ") hnd% = dll_call1("GetActiveWindowTitle",adr(T$)) if T$<>string$(255," ") if left$(T$,7)="MyDrive" exit_while end_if end_if end_while
s$ = Login$ hnd% = dll_call0("GetActiveControl") res% = dll_call2("SendStringAsText",hnd%,adr(s$)) s$ = chr$(9) res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 s$ = pw$ res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 s$ = chr$(13) res% = dll_call2("SendStringAsText",hnd%,adr(s$)) pause 1000 show 0 End_sub ' ------------------------------------------------------------------------------ Clic: clic%=number_click if clic%=NF_Button% :Save_Compte():end_if if clic%=O_List% :Select_Liste():end_if return ' ------------------------------------------------------------------------------ Sub Select_Liste() dim_local sep%,L$ Nom$="":Login$="":pw$="" if item_index(O_List%)>0 Select_List%=item_index(O_List%) L$=item_read$(O_DList%,Select_List%) sep%=instr(L$,"|") Nom$ = left$(L$,sep%-1) L$=right$(L$,len(L$)-sep%) sep%=instr(L$,"|") Login$= left$(L$,sep%-1) pw$=right$(L$,len(L$)-sep%) end_if End_sub ' ------------------------------------------------------------------------------ Sub Save_Compte() dim_local L$ if text$(NF_edit1%)="":message "Champ 'Pseudo' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if if text$(NF_edit2%)="":message "Champ 'Login' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if if text$(NF_edit3%)="":message "Champ 'Password' vide"+chr$(13)+"Enregistrement impossible...":end_sub:end_if Verif_liste() if NF_verif%=1 if message_warning_yes_no("Une fiche :"+text$(NF_edit1%)+" existe déjà !"+chr$(13)+"Voulez créer la fiche ?...")<>1 Text NF_edit1%,"" Text NF_edit2%,"" Text NF_edit3%,"panoramic123" Hide MDC_NewFiche% end_sub end_if end_if L$=text$(NF_edit1%)+"|"+Text$(NF_edit2%)+"|"+Text$(NF_edit3%) item_add O_DList%,L$ file_save O_DList%,MDC_DB$ Init_Liste() Text NF_edit1%,"" Text NF_edit2%,"" Text NF_edit3%,"panoramic123" Hide MDC_NewFiche% End_sub ' ------------------------------------------------------------------------------ Sub Verif_liste() dim_local T$,x% NF_verif%=0 if count(O_List%)>0 for x%=1 to count(O_List%) T$=item_read$(O_List%,x%) if T$=Text$(NF_edit1%) NF_verif%=1 exit_for end_if next x% end_if End_sub ' ------------------------------------------------------------------------------ Sub Message_Error() if TB_Button%=-1 then Adapter_Container() if TB_Button%=-2 then message "Error 2" if TB_Button%=-3 then message "Error 3" if TB_Button%=-4 then message "Error 4" End_sub ' ------------------------------------------------------------------------------ Sub F_NewFiche() dim_local hnd% if MDC_NewFiche%>0 show MDC_NewFiche% text NF_edit3%,"panoramic123" Font_color NF_edit3%,120,120,120 else obj%=obj%+1 : MDC_NewFiche%=obj% O_Form(obj%,0,1,0,0,205,350,"Créer un compte") font_name obj%,"arial" : font_size obj%,8 obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,10,10,0,0,"Pseudo") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit1%=obj% O_Edit(obj%,MDC_NewFiche%,1,25,10,0,200) obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,50,10,0,0,"Login") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit2%=obj% O_Edit(obj%,MDC_NewFiche%,1,65,10,0,300) obj%=obj%+1 O_Alpha(obj%,MDC_NewFiche%,1,90,10,0,0,"Password") font_color obj%,0,0,200 obj%=obj%+1 :NF_edit3%=obj% O_Edit(obj%,MDC_NewFiche%,1,105,10,0,200) text obj%,"panoramic123" : font_color obj%,120,120,120 on_click NF_edit3%,FC_black obj%=obj%+1 :NF_Button%=obj% O_Button(obj%,MDC_NewFiche%,1,135,width(MDC_NewFiche%)-100,0,0,"Enregistrer",1) end_if hnd%=handle(MDC_NewFiche%) res% = DLL_call2("WindowTopMost",hnd%,1) End_sub ' ------------------------------------------------------------------------------ Sub O_Form(No%,P%,V%,T%,L%,H%,W%,C$) if No%> 0 then FORM No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 : Top No%,T% : Else : Top No%,(Screen_y-H%)/2 : End_If If L% > 0 : Left No%,L%: Else : Left No%,(Screen_x-W%)/2: End_If if C$<>"" then Caption No%,C$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Alpha(No%,P%,V%,T%,L%,H%,W%,C$) ALPHA No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if C$<>"" then Caption No%,C$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Edit(No%,P%,V%,T%,L%,H%,W%) EDIT No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% End_Sub ' ------------------------------------------------------------------------------ Sub O_List(No%,P%,V%,T%,L%,H%,W%,F$) LIST No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if F$<>"" if file_exists F$ then file_load No%,F$ end_if End_Sub ' ------------------------------------------------------------------------------ Sub O_Timer(No%,OO%,Inter%) TIMER No% if OO%=1 then timer_on No% if OO%=0 then timer_off No% if inter%>0 then timer_interval No%,inter% End_Sub ' ------------------------------------------------------------------------------ Sub O_Dlist(No%,F$) DLIST No% if F$<>"" then file_load No%,F$ End_Sub ' ------------------------------------------------------------------------------ Sub O_Button(No%,P%,V%,T%,L%,H%,W%,C$,Cl%) BUTTON No% if P% > 0 then Parent No%,P% If V% = 0 Then hide No% If H% > 0 Then Height No%,H% If W% > 0 Then Width No%,W% If T% > 0 Then Top No%,T% If L% > 0 Then Left No%,L% if C$<>"" then Caption No%,C$ if Cl%> 0 then on_click No%,Clic cursor_point No% End_Sub ' ------------------------------------------------------------------------------ FC_Black: Font_color NF_edit3%,0,0,0 return ' ------------------------------------------------------------------------------
Eventuellement adapter le chemin vers la DLL en ligne 32. C'est tout. Le fichier MDC_DB.bdd est créé automatiquement par le programme. Les deux tests qui m'intéressent: 1. lancer le programme, puis sortir immédiatement par la croix rouge. Plantage ? 2. lancer le programme, puis sortir immédiatement par l'icône dans la toolbar, tout à fait à droite. Plantage ? Il n'y a aucune image à télécharger - il prend ses icônes dans la bibliothèque interne. Donc, juste la DLL et le code ci-dessus, puis 2 lancements et arrêts immédiats. C'est tout. | |
| | | Invité Invité
| Sujet: Re: MyDrive Connector Lun 27 Jan 2014 - 3:57 | |
| Bon je n'arrivais pas à dormir, donc je viens de faire l'essai.
Le programme s’arrête correctement par la croix de la fenêtre. Par contre en cliquant sur l'icône de la toolbar, j'ai le message suivant: 'Panoramic.exe a cessé de fonctionner Windows reccherche une solution au problème'.
|
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 27 Jan 2014 - 5:09 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: MyDrive Connector | |
| |
| | | | MyDrive Connector | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |