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 |
|
|
| Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 | |
|
+8Francis-mr Pedro Minibug papydall Jean Claude JL35 Marc Jack 12 participants | |
Auteur | Message |
---|
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Ven 22 Avr 2016 - 17:46 | |
| Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Je viens de mettre à disposition une nouvelle version instantanée. Voici les changements par rapport à la version du 20 mars 2016 : 1 - Correction des bugs de la version du 20 mars 2016 : Régression sur la commande POSITIONCommandes liés à l'impression et qui provoquaient un plantage : PRINT_TARGET_IS 2D_CLEAR PRINT_LOCATE PRINT_X_LOCATE PRINT_Y_LOCATE
Ces bugs viennent du fait que je maintiens en parallèle la version Windows et la version MAC de Panoramic et que je n'avais pas bien fait la part des choses dans les PRINT (ce qui est une galère à coder sous MAC) 2 - Nouvelle commande : SPRITE_TEXT N,T$ qui permet au SPRITE de numéro N d'afficher le texte T$. Les paramètres du texte : police, taille, couleur et attributs (gras, italique, ...) sont ceux affectés au SCENE2D dans lequel se trouve le SPRITE. Pour cela, les commandes de la famille FONT ont été étendues au SCENE2D (les commandes de la famille FONT étaient jusqu'à présent inactives sur un SCENE2D). Voici un petit exemple : - Code:
-
dim X10,Y10 dim X11,Y11 dim X12,Y12 dim X13,Y13
dim i%
scene2D 1
width 0,600:height 0,600 full_space 1
sprite_create_hide
rem création de 4 SPRITEs à partir d'un texte rem les paramètres du texte sont ceux des Fonts sur le SCENE2D
sprite 10 font_size 1,20 font_color 1,255,0,0 font_bold 1 sprite_text 10,"Panoramic"
sprite 11 font_size 1,15 font_color 1,0,255,0 font_bold_off 1 sprite_text 11,"est un langage"
sprite 12 font_color 1,255,0,255 font_bold_off 1 sprite_text 12,"FACILE"
sprite 13 font_size 1,20 font_color 1,0,255,255 font_underline 1 sprite_text 13,"à utiliser"
rem postions initiales x10=700:y10=700 x11=0:y11=700 x12=700:y12=0 x13=-100:y13=0
sprite_position 10,x10,y10 sprite_position 11,x11,y11 sprite_position 12,x12,y12 sprite_position 13,x13,y13
sprite_show_all
REM LES POSITIONS FINALES SONT : REM POUR SPRITE 10 : (200,200) REM POUR SPRITE 11 : (205,230) REM POUR SPRITE 12 : (235,260) REM POUR SPRITE 13 : (215,280)
for i%=1 to 80 x10=curve_value(200,x10,0.3) y10=curve_value(200,y10,0.3) sprite_position 10,x10,y10 x11=curve_value(205,x11,0.3) y11=curve_value(230,y11,0.3) sprite_position 11,x11,y11 x12=curve_value(235,x12,0.3) y12=curve_value(260,y12,0.3) sprite_position 12,x12,y12 x13=curve_value(215,x13,0.3) y13=curve_value(280,y13,0.3) sprite_position 13,x13,y13 pause 40 next i%
_________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Ven 22 Avr 2016 - 17:52 | |
| | |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Ven 22 Avr 2016 - 17:58 | |
| J'ai pris un réel plaisir à coder cette commande. Je vais regarder maintenant l'application aux SPRITEs de BRIGHTNESS, CONTRAST et GAMMA. J'envisage aussi de coder un SNAPSHOT pour enregistrer un SCENE2D (avec ses SPRITEs) dans un fichier .bmp ou .jpg
Le problème c'est le temps qui me manque ... _________________ username : panoramic@jack-panoramic password : panoramic123 | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Ven 22 Avr 2016 - 18:29 | |
| Ça c'est super ! je vais commencer à m'amuser avec illico !
Et le futur (?) Snapshot me plairait bougrement aussi, ça ouvre plein de perspectives. Pourvu que le boulot te fiche un peu la paix et te laisse un peu de temps libre.
Merci Jack. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Ven 22 Avr 2016 - 19:08 | |
| Super !
Je vais tester ça, assez vite car je suis sur une création d'un jeu en 2D.
A+ | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Ven 22 Avr 2016 - 19:37 | |
| Merci Jack.
Et cette autre nouveauté : une nouvelle fonction curve_value(x,y,p)
Un petit mot là-dessus ? | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Ven 22 Avr 2016 - 20:32 | |
| Merci Jack pour cette nouvelle version et ses corrections Je télécharge et je teste de suite... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Ven 22 Avr 2016 - 21:21 | |
| - Papydall a écrit:
- Et cette autre nouveauté : une nouvelle fonction curve_value(x,y,p)
Bonne observation Papydall. Du coup, j'ai fait des tests, pour voir ce qu'il y a derrière. Voici un exemple qui reprend le code de Jack, c'est intéressant. - Code:
-
dim X10,Y10 dim X11,Y11 dim X12,Y12 dim X13,Y13
dim i%
scene2D 1
width 0,600:height 0,600 full_space 1
sprite_create_hide
rem création de 4 SPRITEs à partir d'un texte rem les paramètres du texte sont ceux des Fonts sur le SCENE2D
sprite 10 font_size 1,20 font_color 1,255,0,0 font_bold 1 sprite_text 10,"Panoramic"
sprite 11 font_size 1,15 font_color 1,0,255,0 font_bold_off 1 sprite_text 11,"est un langage"
sprite 12 font_color 1,255,0,255 font_bold_off 1 sprite_text 12,"FACILE"
sprite 13 font_size 1,20 font_color 1,0,255,255 font_underline 1 sprite_text 13,"à utiliser"
rem postions initiales x10=700:y10=700 x11=0:y11=700 x12=700:y12=0 x13=-100:y13=0
sprite_position 10,x10,y10 sprite_position 11,x11,y11 sprite_position 12,x12,y12 sprite_position 13,x13,y13
sprite_show_all
REM LES POSITIONS FINALES SONT : REM POUR SPRITE 10 : (200,200) REM POUR SPRITE 11 : (205,230) REM POUR SPRITE 12 : (235,260) REM POUR SPRITE 13 : (215,280)
for i%=1 to 80 x10=200 : y10=curve_value(190,y10,0.2) sprite_position 10,x10,y10 x11=205 : y11=230 sprite_position 11,x11,y11 x12=235 : y12=260 sprite_position 12,x12,y12 x13=215 : y13=280 sprite_position 13,x13,y13 pause 40 next i%
| |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 6:42 | |
| Toujours le même problème avec TERMINATEC’est même pire avec cette version V.09.27i7 ! Voici un extrait de mon programme - Code:
-
rem ============================================================================ label clic dim i main_menu 10 sub_menu 11 : parent 11,10 : caption 11 ,"Tirage" sub_menu 12 : parent 12,11 : caption 12, "Aléatoire" sub_menu 13 : parent 13,12 : caption 13, "Votre jeu" sub_menu 14 : parent 14,12 : caption 14, "Les quatre jeux" sub_menu 15 : parent 15,11 : caption 15, "Quitter" sub_menu 16 : parent 16,10 : caption 16, "Infos" for i = 11 to 16 : on_click i,clic : next i end rem ============================================================================ Clic: select number_click case 13 : Votre_Jeu() case 14 : Les_4_Jeux() case 15 : Quitter() case 16 : Infos() end_select
return rem ============================================================================ SUB Votre_Jeu()
END_SUB rem ============================================================================ SUB Les_4_Jeux()
END_SUB rem ============================================================================ SUB Infos()
END_SUB rem ============================================================================ SUB Quitter()
terminate END_SUB rem ============================================================================
Si je choisis de quitter, j’obtiens : Et mon menu disparait ! Pour quitter mon programme sans utiliser TERMINATE, j’ai crée ma propre procédure qui est efficace à tous les coups. - Code:
-
rem ============================================================================ SUB Quitter() dim_local ret%,hWnd hWnd = handle(0) dll_on "user32" ret% = dll_call4("PostMessageA",hWnd,16,0,0) : ' 16 c'est la constante de fermeture END_SUB rem ============================================================================
| |
| | | Pedro
Nombre de messages : 1594 Date d'inscription : 19/01/2014
| Sujet: Version 27i7. Sam 23 Avr 2016 - 7:59 | |
| Bonjour.
Pourquoi se casser la tête avec 'Terminate' ?
Personnellement, je l'ai remplacé définitivement par ce qui suit:
res%=dll_call1("KillProcessByHandle",handle(0)) | |
| | | Francis-mr
Nombre de messages : 186 Date d'inscription : 26/11/2012
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 8:11 | |
| Bonjour Merci Papydall et Pedro Avlarez, mais je trouve illogique de faire appel à une dll pour fermer Panoramic. Je reste donc pour l'instant avec la version 0.9.27i5. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 10:09 | |
| Moi au Terminate j'ai: "PANORAMIC.exe a cessé de fonctionner ... etc." D'accord avec toi Francis, on ne va pas installer une dll uniquement pour ça. Tu as cette solution, à la place du Terminate: - Code:
-
EXECUTE "cmd.exe /c Taskkill.exe /F /IM PANORAMIC.exe /T": RETURN Mais c'est un palliatif, en attendant. | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 12:07 | |
| Bonjour à tous! Merci Jack pour cette nouvelle version! Tiens, tiens! Voilà la commande curve_value() qui revient après une brève apparition dans la version 0.9.22i3! Ça date! Pour ceux qui souhaitent l'utiliser, j'avais copier à l'époque les explications de Jack dessus avec son exemple! CURVE_ANGLE(DESTINATION, CURRENT, SPEED) : retourne un angle auto-interpolé basé sur une vitesse donnée CURVE_VALUE(DESTINATION, CURRENT, SPEED) : retourne une valeur auto-interpolée basée sur une vitesse donnée Ces 2 dernières fonctions sont des aides pour le programmeur, car elles évitent de programmer des calculs compliqués de position intermédiaire. Vous indiquez la valeur que vous voulez atteindre (destination), la valeur actuelle (current), et la valeur de la vitesse (speed) avec laquelle vous voulez atteindre la destination. Vous ne vous cassez pas la tête et vous mettez cette fonction dans une boucle: tous les valeurs intermédiaires seront calculées ! Par exemple, on veut amener une caméra d'une position haute vers l'arrière d'un véhicule (un cube rouge), on met 3 fois cette fonction dans une boucle (une fois pour X, une fois pour Y et une fois pour Z) et le tour est joué ! Toutes les positions de la caméra sont calculées automatiquement ! Exemple appliqué au lissage d'un mouvement de caméra: - Code:
-
' déclaration des variables pour tracer le quadrillage dim maxi,nb_case,taille_case,i dim vehicx,vehicy,vehicz dim cam_posx,cam_posy,cam_posz dim posx_cible,posy_cible,posz_cible dim deltax,deltay,deltaz,lissage
' taille maximale du quadrillage maxi=800
' nombre de cases sur X ou Y nb_case=100
' taille d'une case taille_case=int(maxi/nb_case)
full_space 0:scene3D 1:full_space 1 color 1,0,0,0
' tracé des des nb-case+1 lignes horizontales for i=0 to nb_case 3d_line i+2, 0, i*taille_case, 0 3d_line i+2, nb_case*taille_case, i*taille_case, 0 3d_line_width i+2,3 3d_color i+2,255,255,0 next i
' tracé des nb-case+1 lignes verticales for i=0 to nb_case 3d_line i+nb_case+3, i*taille_case, 0, 0 3d_line i+nb_case+3, i*taille_case, nb_case*taille_case, 0 3d_line_width i+nb_case+3,3 3d_color i+nb_case+3,255,255,0 next i
' création du véhicule 3d_cube 1,8:3d_color 1,255,0,0
' position initiale du véhicule vehicx=nb_case*taille_case/2 vehicy=nb_case*taille_case/2 vehicz=4 3d_x_position 1,vehicx 3d_y_position 1,vehicy 3d_z_position 1,vehicz
' position initiale de la caméra cam_posx=vehicx cam_posy=vehicy cam_posz=500 cam_position cam_posx, cam_posy, cam_posz
' la caméra pointe sur le véhicule point_position vehicx, vehicy, vehicz
' point à atteindre par la caméra posx_cible=vehicx posy_cible=vehicy-25 posz_cible=vehicz
' vitesse de lissage lissage=0.3
for i=1 to 90 ' les positions intermédiaires sont calculées ici cam_posx=curve_value(posx_cible,cam_posx,lissage) cam_posy=curve_value(posy_cible,cam_posy,lissage) cam_posz=curve_value(posz_cible,cam_posz,lissage) cam_position cam_posx,cam_posy,cam_posz wait 50 next i
terminate Voilà à plus! PS pour Jack! Quand comptes-tu intégrer les commandes d'animation des mesh 3d à Panoramic. 3d_animation_play N,P ; 3d_animation_loop N,P ; o3d_animation_count(N), etc... Pour les 3d_actor, fichiers md2. Merci | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Sam 23 Avr 2016 - 12:34 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 12:45 | |
| @Francis-mr: Tu dis: - Citation :
- Bonjour
Merci Papydall et Pedro Avlarez, mais je trouve illogique de faire appel à une dll pour fermer Panoramic. Je reste donc pour l'instant avec la version 0.9.27i5. Je te comprends. Alors, il y a une autre solution. Va sur mon WebDav, dossier DLLs, et télécharge le petit programme KillMySelf.exe (375 ko). Place-le dans le dossier de ron application, et utilise une SUB TERMINATE() selon ce modèle: - Code:
-
label fini
button 1 : caption 1,"Terminate" on_click 1,fini end
fini: terminate() message "Oups..." return
sub terminate() dim_local s$, scr$, bat$, axp$ s$ = chr$(34)+dir_current$+"\KillMySelf.exe"+chr$(34)+" "+str$(handle(0)) scr$ = "C:\TEMP\Vbscript.vbs" bat$ = "C:\TEMP\Bat.bat" file_open_write 9, bat$: file_writeln 9, s$: file_close 9 axp$ = "CreateObject("+chr$(34)+"Wscript.Shell"+chr$(34)+").Run " axp$ = axp$ + chr$(34) + bat$ + chr$(34) + ", 0, True" file_open_write 9, scr$: file_writeln 9, axp$: file_close 9 execute_wait "WSCRIPT.exe "+scr$ file_delete bat$: file_delete scr$ end_sub
J'ai utilisé l'excellente sub de JL35 pour appeler KillMySelf.exe en lui passant le handle de la form 0. Et cet utilitaire, sans ouvrir une fenêtre noire, va tuer le programme Panoramic par la même fonction de KillProcessByHandle de KGF.dll, mais sans KGF.dll. Et voilà, tu es en Panoramic pur, sans DLL. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 13:14 | |
| Oui Klaus, mais inconvénient: il faut quand même une ressource externe qui est KillMySelf.exe. Si c'est juste pour supprimer la fenêtre noire, on peut remplacer le s/p qui contient TERMINATE (ici Quit) par: - Code:
-
Quit: DIM prog$,vb$, qu$: vb$ = "C:\Temp\Vb.vbs": qu$ = CHR$(34) prog$ = "Taskkill /F /IM PANORAMIC.exe /T": ' tâche à tuer FILE_OPEN_WRITE 9, vb$: ' ===== Création du script .vbs ===== FILE_WRITELN 9,"CreateObject("+qu$+"Wscript.Shell"+qu$+").Run "+qu$+prog$+qu$+",0,True" FILE_CLOSE 9 EXECUTE_WAIT "WSCRIPT.exe "+vb$: ' ===== Exécution du script ===== FILE_DELETE vb$ RETURN On peut aussi mettre ça sous forme de sub. C'est valable pour les nouveaux programmes, en attendant mieux, mais il reste un inconvénient majeur pour tous les programmes existants (sous forme de source): il faut les modifier avant de les lancer, et ça c'est un peu rédhibitoire... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 13:17 | |
| Ben, oui... certes. Mais Taskkill est une ressource externe également. Et dangereuse, car elle peut tuer des programmes en cours qu'on voulait préserver. Alors que KillMySelf ne tue que le processus dont le handle est passé en paramètre, ou rien du tout si le handle n'est pas valide. D'ailleurs, tel que tu le publies, ça ne tue que le processus lancé par PANORAMIC_EDITOR (en espérant qu'il n'y en a pas d'autres...). Ce n'est pas applicable en l'état à des programmes générés en EXE. Alors que KillMyProcess marche dans tous les cas. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 13:31 | |
| ? A ma connaissance, Taskkill est intégré à Windows (C:\Windows\System32\taskkill.exe) ? Et on peut obtenir les paramètres acceptés en tapant en ligne de commande: taskkill /? Et on ne risque pas de se tromper de paramètre si c'est en dur dans le programme. Ceci dit, tu as raison, tel qu'écrit ça tue tous les processus Panoramic.exe, mais je suis parti de l'hypothèse qu'on est en phase de mise au point d'un programme, sous forme de source.
En ce qui concerne les exécutables, ce défaut du Terminate n'est censé se produire que pour les sources compilés avec la dernière version en cause, donc qui devraient contenir la correction ci-dessus.
Dans tous les cas ce Terminate défectueux est quand même assez insupportable, et je crois bien que je vais revenir à la version précédente de l'Editeur. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 14:54 | |
| Salut tout le monde Merci pour toute cette littérature sur comment terminate un programme Panoramic. Certains (j’en fais parti moi-même) n’aiment pas toujours trimballer une DLL non native pour des raisons de partage. Mais quand la DLL en question est une DLL native (qui se trouve nécessairement sur vos PC), il n’y a aucune raison pour aller chercher midi à quatorze heures. Il suffit de l’utiliser, c’est tout. La SUB suivante qui fait ce que devrait faire TERMINATE, n’est pas si compliqué que ça et elle n’alourdit pas le programme pour autant. - Code:
-
rem ============================================================================ SUB Quitter() dim_local ret%,hWnd hWnd = handle(0) dll_on "user32" ret% = dll_call4("PostMessageA",hWnd,16,0,0) : ' 16 c'est la constante de fermeture END_SUB rem ============================================================================
Ceci dit, c’est à Jack de trouver une bonne fois pour toute, une solution complète et définitive à ce problème qui traine depuis longtemps. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 15:01 | |
| Merci Bignono pour les explications et la demonstration de CURVE_ANGLE(DESTINATION, CURRENT, SPEED) et CURVE_VALUE(DESTINATION, CURRENT, SPEED)Grâce à toi, je me sens que je suis un peu plus cultivé qu'il y a une minute! | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 15:07 | |
| Mouais... le code 16 correspond au message WM_CLOSE. Ce message est envoyé normalement par Windows à une forme lorsqu'on clique sur la croix rouge et doit provoquer la fermeture de la form, après suppression de tous les objets qui en font partie. En fait, cela déclenche l'évènement ON_CLOSE de la form, si cela a été spécifié dans le programme Panoramic. Tout cela est très bien si tout se passe bien... Par contre, si dans une DLL par exemple, certaines ressources sont encore allouées et non libérées, cela peut conduire à des violations de mémoire. Voici le source de KilMySelf: - Code:
-
program KillMySelf;
{$APPTYPE CONSOLE}
uses Windows, SysUtils, Messages, dialogs;
var par1: string; hnd: hwnd;
function KillProcessByHandle(hWindowHandle: HWND):integer; stdcall; export; // KGF64 var hprocessID: INTEGER; processHandle: THandle; DWResult: DWORD; begin try SendMessageTimeout(hWindowHandle, WM_CLOSE, 0, 0, SMTO_ABORTIFHUNG or SMTO_NORMAL, 5000, DWResult); if isWindow(hWindowHandle) then begin { Get the process identifier for the window} GetWindowThreadProcessID(hWindowHandle, @hprocessID); if hprocessID <> 0 then begin { Get the process handle } processHandle := OpenProcess(PROCESS_TERMINATE or PROCESS_QUERY_INFORMATION, False, hprocessID); if processHandle <> 0 then begin { Terminate the process } TerminateProcess(processHandle, 0); CloseHandle(ProcessHandle); end; end; end; finally end; result := 0; end;
begin { TODO -oUser -cConsole Main : placez le code ici } if ParamCount=0 then exit; par1 := paramstr(1); try hnd := strtoint(par1); except showmessage('? handle invalide'); end; try KillProcessByHandle(hnd); except showmessage('? handle inconnu'); end;
end. On voit qu'à partir du handle de la form, on trouve le handle du process ce qui n'est pas la même chose ! Puis, on "tue" le processus de façon "dure", avant de libérer le handle réservé. C'est beaucoup plus sûr et marche dans tous les cas. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 15:53 | |
| Oui Maitre Klaus, on ne peut pas te contredire et te lire est une bonne source d’informations pour celui qui veut comprendre. Tout ça élargit notre horizon et pousse à réfléchir et c’est bien ainsi. Mais l’idéal c’est que Jack puisse tordre le cou une bonne fois pour toute à TERMINATE en lui ordonnant (sur un ton militaire) de se comporter comme il se doit ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 16:00 | |
| Surtout que ça marchait jusqu'à ces derniers temps, c'est d'autant plus agaçant ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 17:47 | |
| Il existe aussi une autre solution, mais je suis d'accord TERMINATE doit rentrer dans le rang. L'autre solution: ne pas utiliser TERMINATE, mais plutôt END et laisser l'utilisateur fermer la fenêtre par la croix rouge. Bien sur, ce n'est pas valable à tous les coups. A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 Sam 23 Avr 2016 - 18:07 | |
| Certes, ça marche mais ce n'est pas satisfaisant. Si tu veux compiler un programme, il contiendra l'erreur dans l'exécutable.
Moi perso je suis retourné à la version précédente, ça m'embête trop, en attendant les beaux jours. | |
| | | Contenu sponsorisé
| Sujet: Re: Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 | |
| |
| | | | Version instantanée du 22 avril 2016 : PANORAMIC V 0.9.27i7 | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |