Comment faire une declaration en dotnet ? [Résolu]

Signaler
Messages postés
15
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
7 septembre 2009
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
Salut, j'ai trouvé un code pour changer le papierpeint de windows, je veux l'effectuer en vb.net mais pas moyen,

Quelqu'un a une idée ?

L'erreur se trouve sur declare

Private Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

Merci d'avance

10 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Je verrai l'import



Imports
system.Runtime.InteropServices




Et la déclaration



Private

Declare

Function
SystemParametersInfo
Lib

"user32"

Alias

"SystemParametersInfoA"
(
ByVal
uAction
As

Integer
,
ByVal
uParam
As

Integer
,
ByVal
lpvParam
As

Integer
,
ByVal
fuWinIni
As

Integer
)
As

Integer




en dotnet, on remplace les long par des integer
vb6 long = 32bits
dotnet long = 64bits.




Kenji



Il était une fois, un pauvre petit règlement que personne ne lisait. Il est tout sympa mais il est triste, aidez-le, lisez-le, ca lui ferait tellement plaisir ainsi qu'a nous. Merci.
Ca sent le sondage sur ce lien
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
17
Salut,

je ne suis pas en dotnet, mais d'après les sources existantes, elles ont l'air d'être déclaré ainsi :

<DllImport("user32")> Shared Function SystemParametersInfo(ByVal uAction As Long, ByVal uParam As Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

++
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
17
Beh teh, salut Kenji !

C'est quoi la déclaration que j'ai trouvé ?

Sinon, je vérifie sur allapi qu'il n'y ait pas une fonction du framework, pas pour ce cas.
Vu ton exemple, j'en déduis donc que tu peux utiliser la fonction d'API comme en vb6.
Il suffit juste de transformer les Long en Integer ?
Pourquoi as-tu aussi modifier le type Any ?

Merci pour tes lumières ;)

++
Messages postés
15
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
7 septembre 2009

Merci pour les infos... sais tu que signifie le "auto" que l'on pleu trouver quelque fois entre "declare" et "function"

Merci encore
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
La déclaration que t'as trouvé, c'est une autre forme. Qui marche aussi sans doute. Moi j'utilise toujours avec le declare.
Les types de données change de vb6 a dotnet


               vb6          dotnet
short         8 bits       16 bits
integer      16 bits      32 bits
long          32 bits      64 bits

Les apis marche avec generalement avec des valeurs 32bits donc il faut adapter.



Le any, j'ai jammais su a quoi il correspondais en vb6. En dotnet il existe plus. (comme ca c'est réglé)
D'apres ce que j'ai pu voir sur des examples de cet api, on lui passait une integer à ce parametre, j'ai donc décider de mettre ce même type de valeur. 

Voili, voilou,
j'espere que c'est assez clair et que je ne dis pas n'importe quoi.

Tu t'en sort avec ton bouquin ?



Kenji
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
17
Oui Kenji, c est clair, merci.

Pour le Any, je ne sais pas non plus, peut-être une sorte de Variant, va savoir.
Pour le bouquin, non, je n y ai pas encore vraiment touché, je me perfectionne d abord dans vb6 (même s il est déjà en train de disparaître...), et après on attaque.

Pour le Any, si quelqu un sait, qu il n hésite pas.

Ps : Pourquoi, des fois avec FF (FireFox), je n arrive pas à taper les apostrophes, ça me fait un équivalent de Ctrl + F (rechercher), et je n ai plus accès à mes touches de direction ainsi que le Ctrl + C, et ça commence sérieusement à me gonfler !!!
Si qqun à la soluce pour régler cela, je suis preneur, merci.

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
J'ai pas trouvé grand chose sur le any avec google.
Pour ton probleme de navigateur, prend IE. J'ai jammais eu aucun problems avec lui.



Kenji
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Mortalino, pour ton problème d'apostrophe, j'ai le même souci. Il semblerait que cela vienne de la dernière version de FF (1.5.0.6), et que ce soit en fait un racourci implanté de façon volontaire par l'équipe de développement de FF.

Ce racourci ne doit pas etre actif lorsque c'est des zones de saisie qui ont le focus.

Il semblerait donc que le problème vienne de la TextBox ici, qui doit etre mal déclarée comme zone de saisie, ou lorsque elle a le focus.

D'apres certaines réponses sur les forums, une solution temporaire, c'est de vider le cache et de redémarrer FF. Le problème se calme pendant quelque temps.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
17
Ok, merci les gars, je vais retenter IE6 mais je le trouve moins fluide que FF, dommage ce problème. (le cache avait déjà été vidé).

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
C'est comme tu veux. Perso il m'en faudra beaucoup plus pour retourner à IE6. Je ne sais même pas si j'en suis capable, je crois pas

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #