Port parralèle [Résolu]

benbonjour 8 Messages postés mercredi 9 janvier 2008Date d'inscription 9 août 2009 Dernière intervention - 8 juil. 2009 à 18:45 - Dernière réponse : benbonjour 8 Messages postés mercredi 9 janvier 2008Date d'inscription 9 août 2009 Dernière intervention
- 9 août 2009 à 12:02
Bonjour,

Je souhaite commander le port parralèle avec VB2008.  J'ai fais une application windows forms simple. Je colle la valeur des sorties voulues dans un textbox pour comander et le programme commande les bonnes sorties. Mais je suis débutant et il doit manquer beaucoup de chose dans ce programme simpliste car ça ne marche pas. Pourriez vous me dire quoi?

Merci

Public

Class Form1

Public
Declare
Function Inp32
Lib
"inpout32.dll" (
ByVal PortAddress
As
Integer)
As
Integer

Public
Declare
Sub Out32
Lib
"inpout32.dll" (
ByVal PortAddress
As
Integer,
ByVal Value
As
Integer)

Public Value
As
Integer 

Private
Sub TextBox1_TextChanged(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles TextBox1.TextChanged
Dim Value (TextBox1.Text)TextBox1.SelectionStart 0

TextBox1.SelectionLength = TextBox1.Text.Length

End
Sub

Private
Sub Button1_Click(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click

Call Out32(&H378,
CByte(Value))

End
SubEnd

Class
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 8 août 2009 à 21:46
3
Merci
Ce code fonctionne chez moi, sans désactiver le driver imprimante, impramte débranchée (en fait, elle est en réparation, je ne peux donc pas faire le test avec une imprimante) :

Public Class Form1

Public Declare Function Inp32 Lib "inpout32.dll" (ByVal PortAddress As Short) As Short
Public Declare Sub Out32 Lib "inpout32.dll" (ByVal PortAddress As Short, ByVal Value As Short)

Public Value As Short

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged

Value = CShort(TextBox1.Text)
TextBox1.SelectionStart = 0
TextBox1.SelectionLength = TextBox1.Text.Length

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Call Out32(&H378S, Value)

End Sub

End Class


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i

Merci cs_casy 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de cs_casy
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 8 juil. 2009 à 21:07
0
Merci
Salut
"ça ne marche pas" ne veut rien dire.
Que se passe t-il ? Erreur ? laquelle ? sur quelle ligne ?
Que ne se passe t-il pas ? --> MSDN + Aide

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Commenter la réponse de cs_Jack
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 8 juil. 2009 à 21:40
0
Merci
Attention, les déclarations des fonctions de la dll que tu donnes sont pour VB6. En .Net elles sont différentes :

Public Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Short) As Short

Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Short, ByVal Value As Short)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Commenter la réponse de cs_casy
cs_Jack 14010 Messages postés samedi 29 décembre 2001Date d'inscription 28 août 2015 Dernière intervention - 9 juil. 2009 à 13:20
0
Merci
Bien vu, Casy
Commenter la réponse de cs_Jack
benbonjour 8 Messages postés mercredi 9 janvier 2008Date d'inscription 9 août 2009 Dernière intervention - 27 juil. 2009 à 17:56
0
Merci
merci!

J'essayerais en rentrant de vacances!!
Commenter la réponse de benbonjour
benbonjour 8 Messages postés mercredi 9 janvier 2008Date d'inscription 9 août 2009 Dernière intervention - 5 août 2009 à 18:08
0
Merci
bonjour!

J'ai donc fait le changement et lorsque j'essaye le programme, la valeur 1 dans TexteBox1, avec la ligne "Call Out (&H378, CByte (Value))" ce met en vert et une fenêtre "L'exception SEHException n'a pas été gérée" s'ouvre.

Une idée ou un programme avec des explications pour régler mon problème?

Merci
Commenter la réponse de benbonjour
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 5 août 2009 à 21:13
0
Merci
A priori tu as une erreur qui est générée à l'intérieur de la dll.

Es-tu sur que ton port parallèle se trouve en &H378 ?


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Commenter la réponse de cs_casy
benbonjour 8 Messages postés mercredi 9 janvier 2008Date d'inscription 9 août 2009 Dernière intervention - 6 août 2009 à 17:47
0
Merci
oups! j'avais pas regardé! le panneau de configuration me donne :

plage d'E/S ; paramètre 0378-037F

je dois mettre 037F au lieu de &H378, c'est bien cela? je ne voudrais pas me tromper encore une fois!

merci
Commenter la réponse de benbonjour
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 6 août 2009 à 17:56
0
Merci
&H378 pour le registre des données en sortie ou en entrée suivant configuration (signaux D0 à D7 du port)

&H379 pour le registre d'état en entrée (signaux ack, busy, pe, error, ....)

&H37A pour le registre de contrôle en sortie (signaux strobe, autofeed, init, ...)


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Commenter la réponse de cs_casy
benbonjour 8 Messages postés mercredi 9 janvier 2008Date d'inscription 9 août 2009 Dernière intervention - 6 août 2009 à 18:09
0
Merci
donc le registre se trouve bien en &h378 pour controlé les 8 sorties. D'où vient le problème alors?
Commenter la réponse de benbonjour
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 6 août 2009 à 21:30
0
Merci
Je vois pas

Ton port est-il utilisé par une imprimante ? As-tu essayer en désactivant ou désinstallant les drivers d'imprimantes utilisant ce port ?


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
Commenter la réponse de cs_casy
benbonjour 8 Messages postés mercredi 9 janvier 2008Date d'inscription 9 août 2009 Dernière intervention - 8 août 2009 à 18:21
0
Merci
Mon imprimante à toujours été en USB sur ce port.

As tu essayé le programme pour voir ce qui ce passe?
Commenter la réponse de benbonjour
benbonjour 8 Messages postés mercredi 9 janvier 2008Date d'inscription 9 août 2009 Dernière intervention - 9 août 2009 à 12:02
0
Merci
comme pour moi ça ne marchait pas j'ai retéléchargé la DLL et maintenant ça marche! j'ai testé au multimetre et les sorties sont bien commandé!

merci pour tout!
Commenter la réponse de benbonjour

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.