Hej hopp...... Hej Igen OKI doki... Tack... Har dock inte kikat på din DLL ännu då jag sitter hemma... Hej Igen VB erbjuder inget bra sätt skriver du.... Igen Skulle just komma till det..... IgenLäsa minnescell
Eftersom jag får så dåligt med svar på min fråga om att kolla om lpt1 är online.... Ställer jag denna fråga istället..
Kan man med någon funktion/API-funktion kolla innehållet i en minnsecell..
Eller säge MMU-ifrån eller vad ?
/peterhSv: Läsa minnescell
VB erbjuder inget bra sätt att läsa DOS minnet därför får
man använda sig av en DLL .
Jag har skrivit en enkel DLL i Delphi 32 bit som jag skickar till dig
Om du via den ropar adress 889 så kommer du att få
svar 79 om printern inte är online och 223 om den är online.
Option Explicit
'Lägg PortCom.dll i samma mapp som ditt VB prog
Private Declare Function PortByteCom Lib "PortCom.dll" _
(ByVal Adress As Integer) As Byte
Private Sub Command1_Click()
'Lpt1 ligger normalt på adress 888
'adress 889 visar printer status online
'svar 79 offline 223 = online
'sen finns det en massa andra intressanta adresser
'som ni får läsa om GamePort tex brukar ligga på
'adress 513 Com1 på 1016 (märk ! brukar)
Dim ret As Byte, pAdress As Integer
pAdress = 889
ret = PortByteCom(pAdress)
Label2 = ret
End Sub
mvh
SvenSv: Läsa minnescell
Men kollar man på adress 0040:0008 (tror jag) så ser man vilken adress lpt1 har.... Oftast är det väl H$0378 (888 decimalt) men inte alltid... Klarar din DLL av att kika på andra minnes celler också ?
/Peterh
Jag hade funderingar på att skriva en egen variant i C. Men då du redan gjort jobbet så kan jag lika gärna använda din....Sv: Läsa minnescell
>Klarar din DLL av att kika på andra minnes celler också ?
Javisst du kan kolla vilken adress du vill en byte itaget .
Nu har jag låst på 889 eftersom det var den du frågade efter.
mvh
SvenSv: Läsa minnescell
Finns det överhuvudtaget ett sätt ??
/peterh
PS.
Borde du inte deklarerat Adress i din dll till Long istället för Integer.... Eller är det Delphis integer datatyp som avses och den kanske är 32 bitar ??? eller är den rent utav 64 nej det kan den väl ändå inte vara.
Eller ?Sv: Läsa minnescell
Vore intressant om du har möjlighet att kolla DLL :en
i Win 2000 och NT 4 >
Vet inte om den funkar i den miljön.
DSSv: Läsa minnescell
Sitter på NT workstation 4 och jag får undantagsfel....
Så tyvärr funkar det inte så bra då tydligen på NT... åtminstone.
/Tack för besväret.... Men jag skriver en egen i C, eller så kanske jag skiter i det. Men det vore kul att kunna prompta användaren om att skrivaren är offline... Men det är inte nödvändigt egentligen..
/peterhSv: Läsa minnescell
>Borde du inte deklarerat Adress i din dll till Long istället för Integer...
Eftersom dll :en riktar sig mot portarna så räcker det med Integer
0040 :0000 COM1 address (zero if unused)
0040 :0002 COM2 address (zero if unused)
0040 :0004 COM3 address (zero if unused)
0040 :0006 COM4 address (zero if unused)
0040 :0008 LPT1 address (zero if unused)
0040 :000A LPT2 address (zero if unused)
0040 :000C LPT3 address (zero if unused)
skulle nog kunna vara long (gammalt stuf)
Beträffande NT 4 så var det de jag misstänkte NT tillåter inte
manipulering i DOS miljön
nog på denna tråd
Sven