Exe, procedure, ou fonction orpheline :delphi
Résolu/Fermé
MisterGé
Messages postés
116
Date d'inscription
samedi 19 février 2011
Statut
Membre
Dernière intervention
3 août 2013
-
18 sept. 2011 à 11:51
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 27 sept. 2011 à 07:34
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 27 sept. 2011 à 07:34
A voir également:
- Exe, procedure, ou fonction orpheline :delphi
- Fonction si et - Guide
- Svchost exe - Guide
- .Exe - Télécharger - Divers Utilitaires
- Frst64.exe - Télécharger - Sécurité
- Fonction moyenne excel - Guide
9 réponses
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
27 sept. 2011 à 07:34
27 sept. 2011 à 07:34
Pas à ma connaissance, ne serait-ce que du fait que delphi intègre un assembleur X86 Cisc, incompatible avec les plateformes mac Risc précédants la version Intel...
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
18 sept. 2011 à 12:23
18 sept. 2011 à 12:23
Je pense que l'emploi de la fonction Win32 'CopyFileEx' devrait faire l'affaire...
Et à titre d'info, pour appeler une application indépendante, il suffit d'utiliser la fonction 'ShellExecute', quant au fait de lancer une procédure sans attendre qu'elle finisse, il faut pour cela utiliser un thread...
Et à titre d'info, pour appeler une application indépendante, il suffit d'utiliser la fonction 'ShellExecute', quant au fait de lancer une procédure sans attendre qu'elle finisse, il faut pour cela utiliser un thread...
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
19 sept. 2011 à 20:36
19 sept. 2011 à 20:36
Si je comprends bien tu vas faire autant de lectures des fichiers d'origines que de nombre de clés USB connectés... Or c'est plus rapide de faire une seule lecture de l'original en écrivant sur toutes les clés en même temps (vu que ce sont des supports différents) et si tu connectes une clé USB en cours de route tu pourrais partager la charge en faisant des lectures non plus sur les originaux mais sur les copies déjà effectuées...
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
19 sept. 2011 à 21:32
19 sept. 2011 à 21:32
Pour récupérer les paramètres de la ligne de commande, transmis par shellexecute, il faut utiliser 2 fonctions de l'unité System, 'ParamCount' qui donne le nombre de paramètres et 'ParamStr' qui renvoie la chaine du paramètre voulu.
Quant au hwnd demandé en 1er paramètre de ShellExecute, je n'ai pas essayé, mais ça doit marcher avec 0, le handle du bureau...
Sinon, je suis d'accord avec la précision de KX, c'est plus compliqué que de juste s'appuyer sur le cache disque, mais c'est sûrement beaucoup plus performant...
Quant au hwnd demandé en 1er paramètre de ShellExecute, je n'ai pas essayé, mais ça doit marcher avec 0, le handle du bureau...
Sinon, je suis d'accord avec la précision de KX, c'est plus compliqué que de juste s'appuyer sur le cache disque, mais c'est sûrement beaucoup plus performant...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
21 sept. 2011 à 20:48
21 sept. 2011 à 20:48
Comme tu l'as dit, la vitesse de copie des USB est plus faible que celle du disque dur, c'est pour ça que pendant une écriture tu as largement le temps d'en démarrer une deuxième, troisième, voir quatrième...
Après je ne pense pas que ce soit vraiment plus compliqué à programmer, il suffit de lire des données (avec BlockRead de mémoire), puis de faire une boucle pour chaque port d'écriture (avec BlockWrite). Le plus compliqué je pense c'est de lister les fichiers d'un répertoire, mais je pense que c'est un problème que tu as déjà résolu.
Et puis soyons honnête, je doute que le Delphi soit véritablement le plus performant des langages pour faire des opérations d'aussi bas niveau...
Après je ne pense pas que ce soit vraiment plus compliqué à programmer, il suffit de lire des données (avec BlockRead de mémoire), puis de faire une boucle pour chaque port d'écriture (avec BlockWrite). Le plus compliqué je pense c'est de lister les fichiers d'un répertoire, mais je pense que c'est un problème que tu as déjà résolu.
Et puis soyons honnête, je doute que le Delphi soit véritablement le plus performant des langages pour faire des opérations d'aussi bas niveau...
MisterGé
Messages postés
116
Date d'inscription
samedi 19 février 2011
Statut
Membre
Dernière intervention
3 août 2013
8
19 sept. 2011 à 19:44
19 sept. 2011 à 19:44
Bonjour Nicocorico,
Merci de m'avoir répondu aussi rapidement.
Je me demandais comment récupérer au sein de mon exe lancé avec shellexecute, les parametres que je rentre dans l'appelle de shellexecute??
par exemple :
ShellExecute(Handle,'Open','C:\Windows\Calc.exe',nil,Nil,SW_SHOWDEFAULT);
Dans une autre application qui ouvre des page web je remplace les 2 champs "nil nil" par le chemin de la page web et son emplacement,
comment récupérer ce qui remplace les nil nil dans l'exe qui est ici représenté par c/windows/calc.exe
Et aussi esque le handle a un grand role à jouer ?
Merci d'avance
Bonne soirée.
Merci de m'avoir répondu aussi rapidement.
Je me demandais comment récupérer au sein de mon exe lancé avec shellexecute, les parametres que je rentre dans l'appelle de shellexecute??
par exemple :
ShellExecute(Handle,'Open','C:\Windows\Calc.exe',nil,Nil,SW_SHOWDEFAULT);
Dans une autre application qui ouvre des page web je remplace les 2 champs "nil nil" par le chemin de la page web et son emplacement,
comment récupérer ce qui remplace les nil nil dans l'exe qui est ici représenté par c/windows/calc.exe
Et aussi esque le handle a un grand role à jouer ?
Merci d'avance
Bonne soirée.
MisterGé
Messages postés
116
Date d'inscription
samedi 19 février 2011
Statut
Membre
Dernière intervention
3 août 2013
8
21 sept. 2011 à 20:19
21 sept. 2011 à 20:19
Merci à vos réponses à tous les deux :)
Je pense que je vais simplement me contenter de la cache du dd et non de relire sur les clés en cours de remplissage.
Parce que le facteur limitant la vitesse de copie c'est l'usb 2 dont le débit est assez faiblard face à celui du sata 2.
Surtout dans la mesure ou je pense que les personnes qui vont se servir du prog désormais n'auront que 4 ports usb donc 4 copies de front.
Enfin la lecture unique avec remplissage simultané m'intéresse beaucoup aussi mais je pense que cela leur compliquerait trop les choses : / et ca me compliquerait sans doute beaucoup aussi, humble programmateur amateur du dimanche que je suis :) car je sais pas pourquoi mais j'ai l'intuition qu'il faut passer par des termes obscurs tels que "buffer" XD
En tout cas merci encore :)
Je pense que je vais simplement me contenter de la cache du dd et non de relire sur les clés en cours de remplissage.
Parce que le facteur limitant la vitesse de copie c'est l'usb 2 dont le débit est assez faiblard face à celui du sata 2.
Surtout dans la mesure ou je pense que les personnes qui vont se servir du prog désormais n'auront que 4 ports usb donc 4 copies de front.
Enfin la lecture unique avec remplissage simultané m'intéresse beaucoup aussi mais je pense que cela leur compliquerait trop les choses : / et ca me compliquerait sans doute beaucoup aussi, humble programmateur amateur du dimanche que je suis :) car je sais pas pourquoi mais j'ai l'intuition qu'il faut passer par des termes obscurs tels que "buffer" XD
En tout cas merci encore :)
Heremion
Messages postés
538
Date d'inscription
vendredi 20 mai 2011
Statut
Membre
Dernière intervention
1 juin 2022
102
26 sept. 2011 à 14:30
26 sept. 2011 à 14:30
L'appel de Application.ProcessMessage permet de signaler que les instructions suivantes peuvent être exécutées sans attendre le résultat des instructions précédentes normalement.
nicocorico
Messages postés
799
Date d'inscription
dimanche 19 juin 2011
Statut
Membre
Dernière intervention
3 juillet 2018
138
26 sept. 2011 à 17:06
26 sept. 2011 à 17:06
Pas exactement : ProcessMessage permet simplement de vider la liste des messages en cours de Windows, utile lors d'un traitement long dans le thread principal de l'application...
MisterGé
Messages postés
116
Date d'inscription
samedi 19 février 2011
Statut
Membre
Dernière intervention
3 août 2013
8
27 sept. 2011 à 01:00
27 sept. 2011 à 01:00
Merci pour ces nouvelles indications :)
Je pense quelles me seront sans doute utiles dans un prochain prog :)
Une dernière question rapide (des réponses oui ou non suffiront ;)) qui n'a pas grand chose à voir avec le post de départ: est -il possible de porter un prog delphi vers mac (sous delphi ? ou autrement ?)
Bonne soirée à tous
Je pense quelles me seront sans doute utiles dans un prochain prog :)
Une dernière question rapide (des réponses oui ou non suffiront ;)) qui n'a pas grand chose à voir avec le post de départ: est -il possible de porter un prog delphi vers mac (sous delphi ? ou autrement ?)
Bonne soirée à tous