Copier ip dans clipboard (masm)

Soyez le premier à donner votre avis sur cette source.

Vue 6 182 fois - Téléchargée 387 fois

Description

Comme j'en ai marre de faire ipconfig pour récupérer mon IP j'ai fait un petit programme pour le copier dans le presse papier. En C c'est pas drôle alors je l'ai fait en ASM.
J'ai mis aussi la source en C comme ca c'est plus facile à comprendre.

Source / Exemple :


.486
      .model flat, stdcall
      option casemap :none

      include \masm32\include\windows.inc
      include \masm32\include\masm32.inc
      include \masm32\include\gdi32.inc
      include \masm32\include\user32.inc
      include \masm32\include\kernel32.inc
      include \masm32\include\Comctl32.inc
      include \masm32\include\comdlg32.inc
      include \masm32\include\shell32.inc
      include \masm32\include\oleaut32.inc
      include \masm32\include\dialogs.inc
      include \masm32\include\ws2_32.inc

      includelib \masm32\lib\masm32.lib
      includelib \masm32\lib\gdi32.lib
      includelib \masm32\lib\user32.lib
      includelib \masm32\lib\kernel32.lib
      includelib \masm32\lib\Comctl32.lib
      includelib \masm32\lib\comdlg32.lib
      includelib \masm32\lib\shell32.lib
      includelib \masm32\lib\oleaut32.lib
      includelib \masm32\lib\ws2_32.lib

      .data?
           wsa          dd     100 dup(?)
           szHostName   dd     64 dup(?)
      .code

start:
      push   offset wsa
      push   202h
      call   WSAStartup

      mov    ecx, offset szHostName
      push   ecx
      push   256
      push   ecx
      call   gethostname
      call   gethostbyname

      mov    ecx, [eax] + 12            ; décalage pour h_addr_list de la structure hostent
      mov    ebx, [ecx]
      mov    edx, [ebx]
      push   edx

      call   WSACleanup
      push   100
      push   66                         ; GHND
      call   GlobalAlloc

      pop    edx
      push   eax
      push   eax
      push   eax
      push   edx
      push   eax
      call   GlobalLock

      pop    ecx
      push   eax
      push   ecx

      call   inet_ntoa                  ; texte dans eax, copie dans ecx
      pop    ecx

suiteCopie:
      mov    dl, [eax]
      test   dl, dl
      jz     finCopie
      mov    [ecx], dl
      inc    eax
      inc    ecx
      jmp    suiteCopie
finCopie:

      push   0
      call   OpenClipboard
      call   EmptyClipboard
      push   1                           ; CF_TEXT
      call   SetClipboardData
      call   CloseClipboard
      call   GlobalFree

      push   eax
      call   ExitProcess
end start

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
41
Date d'inscription
mardi 8 mai 2007
Statut
Membre
Dernière intervention
4 octobre 2012

bonjour,
Moi j' ai un petit problème j' ai voulu intégrer le code a mon programme.
j' ai tenter de le mettre en procédure mais sa ferme mon programme.
alors je ne sais pas si je l' appel mal ou si la procédure n'es pas bonne.
qqun peut m' envoyer un exemple?
Messages postés
780
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
16 avril 2009
1
Je trouve le programme en lui-même inutile (bon ok je passe par routeur donc cela ME sert pas à grand chose)....
Mais sinon le fait de mettre le code en c dans le zip, je trouve cette idée bonne! En plus cela m'a l'air bien codé (côté ASM)
Bravo => 9/10
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Les cahngements commencent à suiteCopie: tu enlève tout ce qu'il y de l&à jusqu'a la fin.
Tu cherche la longueur de la chaine contenue dans eax et tu l'écris dans le fichier avec WriteFile
Messages postés
30
Date d'inscription
dimanche 24 octobre 2004
Statut
Membre
Dernière intervention
4 juillet 2005

Oui je vois...
Je débute encore pas mal mais, je suppose que c'est ça qu'il faut modifier pour le copier dans le fichier texte : "push 1 ; CF_TEXT
call SetClipboardData"

Sinon navré pour cette histoire d'image, suis encore trop habitué aux langages de haut niveau.

Merci.
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
Pour écrire dans un fichier c'est a peu pareil, au lieu de copier tu écris la chaine dans le fichier.
Par contre une image vers un fichier jpg, ca n'a aucun rapport
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.