Devenir membre club
Connectez vous
Aide & règlement
Votre 1ère visite
Le règlement
Contacter les admins
Contacter le webmaster
Questions & réponses
Comment soutenir CodeS-SourceS
Comment faire un lien vers CodeS-SourceS
Autres questions
A propos & don
A propos du réseau
Les modérateurs
Remerciements
Faire un don
Le livre d'or
Tous les livres
Les dernières parutions
Les plus consultés
Les critiques
Le top des ventes
Le top favoris des membres
Recevoir des livres blancs
Tous les thèmes
Les derniers messages
Les nouveaux messages
Poser une question
Le Chat - IRC
Tous les tutoriels
Ajouter un tutoriel
Les tutoriels en vidéo
Les formations vidéos
Tous les codes
Ajouter un code
Filtrer par catégorie
Filtrer par date
Les plus récents
Les mis à jour
Les codes par jour
Filtrer par niveau
Niveau débutant
Niveau initié
Niveau expert
Filtrer par type
Les codes avec capture
Les codes avec zip
Les codes .Net
Filtrer par qualité
Les plus populaires
Les plus populaires du mois
Les plus téléchargés
Les mieux notés
Top par catégorie
Top des favoris
Filtrer par auteur
Tous les auteurs
Le top des membres
Les snippets
Déposer votre CV
Consulter les offres d'emploi ou de stage
Consulter les CVs
Déposer une offre d'emploi ou de stage
Modèles de CV et lettres
Trouver une convention collective
Les écoles d'informatique
Toutes les écoles
Ajouter une école
Les outils
Outils pour développeurs
Trouver des ressources
Base de données de CodeS-SourceS
Télécharger les meilleurs logiciels
Comparer les prix
Envoyer des ecards
Création de bannières
Annuaire de la prog
Tous les sites
Ajouter votre site
Le dico de la prog
Toutes les définitions
Ajouter une définition
Les évènements
Tous les évènements
Les évènements à venir
Ajouter un évènement
Téléchargements
CodeS-SourceS Toolbox
CodeS-SourceS Toolbar
Toolbar pour FireFox
Fonds d'écran
Les compil's
Nos partenaires
Magazine Programmez
Frontier.fr
Xiti
ProgOnline
Winwise
Editions Eyrolles
Toute la liste
Les RFC
CS
VB, VB.NET
ASP.NET,ASP
C, C++
ColdFusion
PHP
Javascript
Delphi
Flash
Java
Graphisme
Irc
Assembleur
C#
Mobilité
SQL
Foxpro
Python
Regex
Flex
Windev
Ce site au démarrage
begin process at 2012 02 10 14:12:37
Accueil
Codes
Tutoriels
Forum
Livres
Emploi
Services
Connexion
Trouver un code source :
dans
Tout le site
Codes
Tutoriels
Forum
Blogs
Livres
RFC
Icones
News .NET
Boutique
[ Dernières recherches ]
Veuillez saisir votre recherche... Ex: smtp, lire un fichier, rs232
Options de recherche :
Tous les codes
Tous les codes en .Net
Tous les codes sauf .Net
Langages disponibles :
Tous les langages
ASP / ASP.NET
Assembleur
C / C++ / C++.NET
C# / C#.NET
ColdFusion
Delphi
Flash
Flex, Air, ActionScript
Foxpro
Graphisme
IRC
JAVA / J2EE
Javascript / Ajax / DHTML
PDA / PocketPC
PHP
Python
Regex, Regular Expression, Expression régulière
SQL
Visual Basic, VB6, VB.NET, VB 2005, VB
107 commentaire(s) de rt15
sur des sources sur tout
CodeS-SourceS
Déposé sur
Récupérer toutes les valeurs d'un select multiple dans une va...
Ah oui, je n'avais pas vu la nuance (Toutes les valeurs plutôt que toutes les valeurs sélectionnées).
En fait, dans la plupart des cas, on connaît toutes les valeurs possibles côté serveur (Au moment de la construction du select). Ce que l'on ne sait pas, c'est ce que l'utilisateur va sélectionner parmi celle-ci. Mais bien sûr, il existe des cas où on veut toutes les valeurs.
La solution de KREVETTE m'a paru plus simple (Plus courte, uniquement PHP et HTML...) donc plus intéressante et moins risqué. Cependant elle ne résout pas le même problème. Mais par exemple, tu aurais pu t'inspirer du commentaire de PGPP pour te débarrasser de la ligne de renommage ->
document.forms[liste].elements.Col1.name = "Col1[]";
Donc j'ai commenté un peu vite et je m'en excuse.
Posté le :
07/08/2011 12:35:26
Déposé sur
Timer, sleep, chronométrage, vitesse du processeur, a la micr...
Suite à une question par MP de zapanyeti (En gros, un Sleep un peu précis en full VB6, mais des problèmes de dépassement de capacité) ->
Son code utilisait QueryPerformance* en leurs passant des LARGE_INTEGER et en travaillant sur les 32 bits de poids faible.
Une astuce (Je la connais de Renfield) consiste plutôt à utiliser le type Currency qui est sur 64 bits (Avec 4 digits derrière la virgule, mais ça n'a pas d'importance dans ce cas vu les opération effectuées).
Voici donc un code inspiré du sien qui nécessite une form avec un bouton btnWait.
Les attentes sont affichées dans la fenêtre d'exécution. Le résultat est assez précis.
====================================================
Option Explicit
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long
Private curFreq As Currency
Private stopLoop As Boolean
Public Sub WaitMicroSeconde(Duree As Long)
Dim curStart As Currency
Dim curEnd As Currency
Dim WaitTop As Currency
QueryPerformanceCounter curStart
WaitTop = (Duree * curFreq) / 1000000 + curStart
Do
QueryPerformanceCounter curEnd
Loop Until curEnd >= WaitTop
End Sub
Private Sub btnWait_Click()
Dim i As Integer
Dim curStart As Currency
Dim curEnd As Currency
btnWait.Enabled = False
For i = 0 To 200
If stopLoop Then Exit Sub
QueryPerformanceCounter curStart
WaitMicroSeconde 2000
QueryPerformanceCounter curEnd
Debug.Print "Waited " & (curEnd - curStart) / curFreq * 1000000 & " micro secondes"
Sleep 1
DoEvents
Next i
btnWait.Enabled = True
End Sub
Private Sub Form_Load()
QueryPerformanceFrequency curFreq
stopLoop = False
End Sub
Private Sub Form_Unload(Cancel As Integer)
stopLoop = True
End Sub
====================================================
Ce code devrait être franchement moins sujet aux dépassement de capacité quoiqu'ils peuvent encore se produire notamment lors du calcul de WaitTop. L'échec en cas de dépassement de capacité est désactivable dans les propriétés du projet, onglet "compilation", bouton "Optimisations avancées".
Posté le :
27/05/2011 10:08:04
Déposé sur
Libérer la taille maximale d'une fenêtre par subclassing
Ah bien vu le coup de l'unicode. A vu de nez, il y a au moins le CreateRemoteThread sur LoadLibraryA avec un nom de dll en unicode qui n'avait aucune chance de marcher. Mais pour porter complètement, j'aurais bien besoin d'une [cynisme]Delphi 2010 edition perso[/cynisme].
En tout cas ça marchait pas sur Vista non plus ! Problème de privilège, mais j'ai mis à jour le source avec la correction.
En tout cas, merci pour les commentaires et les essais. :)
Posté le :
30/10/2010 12:33:53
Déposé sur
Libérer la taille maximale d'une fenêtre par subclassing
Salut,
Bah non, vu de loin je n'ai pas d'idée... Et je n'ai accès ni à un SP3 (Je préfère rester en SP2), ni à deux écrans. Mais j'essaierais sur Vista demain.
Si tu as un peu de temps pour diagnostiquer, tu peux :
1/ Vérifier que la dll est injectée correctement dans l'autre processus. Facile avec processexplorer qui affiche dans le panneau du bas la liste des dlls (Switcher entre dll et handle avec ctrl+D et ctrl+ H). Tu peux aussi ajouter une MessageBox dans la dll.
2/ Tester si le problème est plutôt du côté du message en faisant une appli Delphi comme sur le lien plus haut:
http://www.delphicorner.f9.co.uk/articles/wapi8.htm
Mais au lieu de limiter la taille minimale, agrandir la taille maximale.
Posté le :
29/10/2010 12:10:28
Déposé sur
Lockdisk (autoriser un cd/dvd sur votre pc)
Salut,
Les tâches de fond à base de timer, c'est quand même pas la panacée... Tu as regardé du côté de WM_DEVICECHANGE ? Il semble qu'il informe à chaque changement de disque. Aide ici :
http://msdn.microsoft.com/en-us/library/aa363215(VS.85).aspx
Exemple Delphi là :
http://www.swissdelphicenter.ch/torry/showcode.php?id=372
Posté le :
24/05/2010 09:18:14
Déposé sur
Le crime parfait
Bin ton .bat semble marcher à part ça. Un goto :loop serait peut être un rien plus esthétique mais à part ça...
Je crois que tu as lu mon code comme ça en fait :
for i:=0 to 1000000 do
begin
Sleep(500);
end;
if FileExists('Project1.exe') then
DeleteFile('Project1.exe')
else
Application.Terminate;
Mais non non, je n'ai pas été sale à ce point là !
Posté le :
04/05/2010 17:44:34
Déposé sur
Le crime parfait
Bin mon code est une boucle. Qui s'arrête au bout d'un certain temps (Quelque chose comme 138 heures), effectivement, mais une boucle !
En gros c'est :
for i:=0 to 1000000 do
begin
Sleep(500);
if FileExists('Project1.exe') then
DeleteFile('Project1.exe')
else
Application.Terminate;
end;
Je vais jetter un oeil sur ton .bat, mais déjà c'est exist et non existS (Le DOS et ses méandres...). Mais c'est dommage de faire un .bat !
Posté le :
04/05/2010 17:26:53
Déposé sur
Le crime parfait
Si on trace dans le "end." on passe dans des fonctions genre :
FinalizeUnits
Finalization
Close
UninitAllocator
UnregisterModule
NotifyModuleUnload
UnsetExceptionHandler
Avec ton code, en Delphi6, on totalise 362 instructions (Comptées avec la commande wt de ntsd, http://msdn.microsoft.com/en-us/library/ff561497(VS.85).aspx) entre l'instruction suivant ShellExecute et l'appel à ExitProcess (Fonction d'arrêt du processus de Windows qui ne revient jamais à l'appelant).
Avec une section de finalization, ce score tombe à 314 instructions. Bon ça doit être plus important sur une grosse appli, mais ça reste un chiffre magnifiquement petit (A comparer 16350 instructions + 3 appels systèmes pour un Hello world en C + runtime fournie avec gcc).
Donc en fin de compte, la partie Delphi est tout à fait négligeable par rapport à ExitProcess qui doit se chiffrer en millions d'instructions au bas mot.
Donc ce n'est en effet pas très rigoureux : qui de ExitProcess ou de cmd sera le plus rapide ?
Que pense tu de faire attendre un peu cmd dans le cas ou un premier del échouerait (Comme sur l'exemple du batch de mon lien) ?
Avec le code suivant, le fichier est supprimé même avec un gros Sleep juste après le ShellExecute.
======================
ShellExecute(0, // Le crime parfait d'après Cirec. Thanks to him ! ;)
nil,
'CMD' ,
'/K "for /L %I IN (1 1 1000000) DO ping -n 2 127.0.0.1 > NUL && if EXIST Project1.exe (del Project1.exe) ELSE exit"',
nil ,
0);
======================
Posté le :
04/05/2010 16:25:12
Déposé sur
Le crime parfait
Salut Cari,
Cette méthode fonctionne bien sur un petit processus chétif. En revanche un gros processus bouffi a des chances de s'en sortir. Il y a en effet une "race condition".
ShellExecute est appelé et va lancé cmd en lui demandant d'exécuter une commande. ShellExecute n'est pas bloquant et ne va pas attendre la fin du processus lancé pour rendre la main à l'appelant. Si ShellExecute était bloquant, cela ne fonctionnerait pas du tout : del essaierait de supprimer le .exe alors qu'il est en cours d'utilisation.
Mais qui a-t-il après ShellExecute ? "end." Et le temps d'exécution de ce petit "end." n'est pas forcément ridicule, car c'est la que Delphi et Windows vont libérer un certain nombre de ressources. Et j'imagine que sur un gros processus, ce "end." prend un certain temps.
Et le problème est là : s'il prend plus de temps que le temps que met cmd.exe à se lancer, alors le .exe est toujours en cours d'utilisation au moment de l'appel de del. Donc le .exe survit.
Ca se vérifie avec ce genre de code ou on allonge artificiellement la durée de "end.".
=============================================
program Project1;
uses
ShellAPI, Windows;
begin
ShellAbout (0,
'cette petite application de 14Ko',
'Elle ne sert strictement à rien ( pffff... )' + #13#10 +
'Donc, judicieusement, elle disparaîtra ! ;) Caribensila',
0);
ShellExecute(0, // Le crime parfait d'après Cirec. Thanks to him ! ;)
nil,
'CMD' ,
'/K "del Project1.exe&&Exit"',
nil ,
0);
Sleep(5000);
end.
=============================================
Pour plus d'info sur l'auto suppression, il y a par exemple cette page :
http://www.catch22.net/tuts/selfdel
Mais aucune des solutions proposées ne semble parfaite...
La solution du batch n'est pas trop mal. Pour limiter la consommation CPU, on peut tenter de mettre ça dans la boucle :
ping -n 2 127.0.0.1 > NUL
La méthode avec COMSPEC est la même que la tienne, sauf qu'il récupère COMSPEC qui contient cmd ou command.com sur les antiquité.
Le DELETE_ON_CLOSE a l'air pas mal.
Les codes en assembleur ne sont pas très propres. Ils ne libèrent pas les ressources de la runtime C. Cela revient à appeler ExitProcess ou Halt dans du Delphi, sans passer par le "end." final ou par Terminate. Ces méthode fonctionnerait par contre convenablement sur des .exe sans runtime C (C'est à dire entre autre sans le "main" classique). L'utilisation de rundll32 est cependant une belle trouvaille.
Quand au méthode par injection de code, ça reste quand même très sale, pas le genre de truc que l'on peut embarqué dans une application sérieuse...
Posté le :
04/05/2010 10:05:47
Déposé sur
Editeur de code multi-langage - multicodeeditor (utilisation ...
Salut,
Il y a toujours eu quelques souci au niveau des zips sur CS. Pourtant 7-zip est du genre souple... Tu peux essayer avec un autre appli de décompression ? Peut être que unzip est dispo par défaut sur ubuntu.
Posté le :
05/04/2010 17:32:35
1
2
3
4
5
6
7
8
9
10
11
Nos sponsors
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3
par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article
par ROMELARD Fabrice
MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !
MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !
par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article
par Vko
[FRAMEWORK 4] LES TASKS ET LE THREAD UI
[FRAMEWORK 4] LES TASKS ET LE THREAD UI
par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article
par fathi
WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE
WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE
par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article
par JeremyJeanson
TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC
TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC
par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article
par ROMELARD Fabrice
La suite
RSS
Côté IT
Utiliser Office 365 pour un projet d?équipe - PART 2
Utiliser Office 365 pour un projet d?équipe - PART 1
SharePoint 2007 : Installation du Service Pack 3 de MOSS
SharePoint 2007 : Installation du Service Pack 3 de WSS V3
Installation de SQL Server DENALI CTP3
Mise à jour de Windows 2003 R2 vers Windows 2008 R2
Upgrade de SQL Server 2005 vers SQL Server 2008 R2
La suite
RSS
Offres d'emploi
Recherche Recherche développeur web ASP et ASP.Net
Recherche Analyste Programmeur Adélia
Recherche Développeur eZ Publish confirmé
Recherche AP (H/F) ACCESS EXCEL VBA
Recherche SUPPORT INFORMATIQUE / DEVELOPPEUR
Recherche Developpeur web
Recherche développeur Web
Déposer une offre
La suite
RSS
Formations Video
Coffret : Ateliers sur la mode
Atelier sur la mode : Motifs et matières
Atelier sur la mode : La planche tendance
Atelier sur la mode : De retour de pige et repérage
Corel Painter 12 : Les fondamentaux
Coffret : Microsoft Office 2010 de A à Z
De Microsoft Office 2003 à 2007 et 2010
La suite
RSS
Appels d'offres
Developpeur applications iphone - ipad - android
Budget :
800€
REPUBLICATION-Developpeur expert Joomla
Budget :
1 500€
URGENT-Conseil en architecture de site internet
Budget :
400€
La suite
RSS
Logiciels
Academy System (17.2.1.0)
ACADEMY SYSTEM (17.2.1.0)
Logiciel de gestion des établissements. - élèves/étudiants (inscription, dossier, absence...) -...
Cliquez pour télécharger Academy System
Easy-Planning (1.0.0.1)
EASY-PLANNING (1.0.0.1)
Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ...
Cliquez pour télécharger Easy-Planning
COLLECTOR PLUS (3.00B)
COLLECTOR PLUS (3.00B)
COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par : - L...
Cliquez pour télécharger COLLECTOR PLUS
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)
PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)
PONAMEDIA TV DEVIENS HELLLOOO FLASH LA TV SUR VOTRE ORDINATEUR. Toute une plateforme Multi...
Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO
LettresFaciles 2011 (8.0.0.1)
LETTRESFACILES 2011 (8.0.0.1)
LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types. Son inte...
Cliquez pour télécharger LettresFaciles 2011
+ de logiciels à télécharger
Vidéos drôles
Halloween Party
Terry Tate Office Linebacker Superbowl 2003
Jeu vidéo instructif
C'est un véritable vol !
Banana Song
Comment attraper la grippe A
Parodie Pub Window 7
La suite
RSS
Sondage...
Votre navigateur n'utilise pas le javascript, pour
voter aux sondages de ce site, cliquez ici
Statistiques
1 873 284
membres
107
nouveaux aujourd'hui
16 151
membres club
Comparez les prix
Motorola MILESTONE
Entre 489€ et 489€
Visiter le guide achat
CalendriCode
Février
2012
L
M
M
J
V
S
D
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
Consulter la suite du CalendriCode
Photothèque
Visiter la photothèque
CS Tool Box