Port parralèle

Résolu
benbonjour Messages postés 8 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 août 2009 - 8 juil. 2009 à 18:45
benbonjour Messages postés 8 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 août 2009 - 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

13 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
8 août 2009 à 21:46
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
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
8 juil. 2009 à 21:07
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)
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
8 juil. 2009 à 21:40
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
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
9 juil. 2009 à 13:20
Bien vu, Casy
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
benbonjour Messages postés 8 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 août 2009
27 juil. 2009 à 17:56
merci!

J'essayerais en rentrant de vacances!!
0
benbonjour Messages postés 8 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 août 2009
5 août 2009 à 18:08
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
5 août 2009 à 21:13
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
0
benbonjour Messages postés 8 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 août 2009
6 août 2009 à 17:47
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 août 2009 à 17:56
&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
0
benbonjour Messages postés 8 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 août 2009
6 août 2009 à 18:09
donc le registre se trouve bien en &h378 pour controlé les 8 sorties. D'où vient le problème alors?
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
6 août 2009 à 21:30
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
0
benbonjour Messages postés 8 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 août 2009
8 août 2009 à 18:21
Mon imprimante à toujours été en USB sur ce port.

As tu essayé le programme pour voir ce qui ce passe?
0
benbonjour Messages postés 8 Date d'inscription mercredi 9 janvier 2008 Statut Membre Dernière intervention 9 août 2009
9 août 2009 à 12:02
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!
0
Rejoignez-nous