[C#] LPT aansturen, mogelijk?

Pagina: 1
Acties:

  • nhimf
  • Registratie: September 2000
  • Laatst online: 19-08 10:00

nhimf

Lekker belangrijk allemaal

Topicstarter
Is het mogelijk om de lpt en com poorten aan te sturen met C#?
Ik kan het nergens vinden. Alleen hoe met c++, maarjah daar heb ik niet zo veel aan.
Als het kan, hoe kan dit dan.
De help van de .net sdk levert ook niet veel bruikbaars op, maar ik heb altijd ruzie met die help.

Ik stink niet, ik ruik gewoon anders


  • Surehand
  • Registratie: Februari 2003
  • Laatst online: 18-08 15:40
Probeer de links eens die je hier vindt

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Is http://www.gotdotnet.com/...oard/Thread.aspx?id=15715 wat? 't Is wel VB maar dat moet vrij vlot te porten zijn.

[ Voor 26% gewijzigd door Rataplan op 11-04-2003 07:53 ]


Journalism is printing what someone else does not want printed; everything else is public relations.


  • nhimf
  • Registratie: September 2000
  • Laatst online: 19-08 10:00

nhimf

Lekker belangrijk allemaal

Topicstarter
Ah bedank voor de 2 tips, ik had zelf op gotdotnet een ander progje gevonden, maar dat was voor de com poort. Maar ik ga hiermee aan de slag en kijken of het wat wordt ;)

ps dat was een ander progje dan de eerste tip

Ik stink niet, ik ruik gewoon anders


  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Ik zal je wat tikwerk besparen (als ik daar al niet te laat mee ben):
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#region dll imports
[DllImport("KERNEL32.DLL")]
public static extern int CreateFileA(
    string lpFileName, 
    uint dwDesiredAccess, 
    uint dwShareMode, 
    [MarshalAs(UnmanagedType.Struct)] SECURITY_ATTRIBUTES lpSecurAttrs,
    uint dwCreationDisposition, 
    uint dwFlagsAndAttributes, 
    uint hTemplateFile
    ); 

[DllImport("KERNEL32.DLL")]
public static extern int CloseHandle(
    int hObject);

#endregion 

#region print functionality

[StructLayout(LayoutKind.Sequential)]
public struct SECURITY_ATTRIBUTES 
{
    int nLength;
    int lpSecurityDescriptor;
    int bInheritHandle;
}

private int PrintDirect(string LPTPORT, string afdrukBuffer)
{
    uint GENERIC_READ = 0x80000000;
    uint GENERIC_WRITE = 0x40000000;
    uint FILE_SHARE_READ = 1;
    uint FILE_SHARE_WRITE = 2;
    uint FILE_ANY_ACCESS = 0;
    uint FILE_READ_ACCESS  = 1;
    uint FILE_WRITE_ACCESS = 2;
    uint OPEN_EXISTING = 3;

    SECURITY_ATTRIBUTES SA = new SECURITY_ATTRIBUTES();

    int hPort = CreateFileA(LPTPORT, GENERIC_WRITE, FILE_SHARE_WRITE, 
            SA, OPEN_EXISTING, 0, 0);
    IntPtr hPortP = new IntPtr(hPort); 

    FileStream outFile = new FileStream(hPortP, FileAccess.Write, false); 
    StreamWriter fileWriter = new StreamWriter(outFile);
    
    // fileWriter.AutoFlush = false;

    fileWriter.WriteLine(afdrukBuffer);

    fileWriter.Flush(); 
    fileWriter.Close(); 
    outFile.Close(); 

    return CloseHandle(hPort);
}
#endregion

...maar dan moet jij uitleggen waarom de dll-aanroep in regel 42/43 altijd -1 teruggeeft ;) Volgens mij heeft het iets met de niet-geinitialiseerde status van SA te maken...

[ Voor 11% gewijzigd door Rataplan op 11-04-2003 09:39 ]


Journalism is printing what someone else does not want printed; everything else is public relations.