2016-07-07 6 views
2

Ich habe Probleme beim Debuggen eines bestimmten Papierkorbproblems. Ich habe den Eindruck, dass VB6 die Druckerinformationen beim Debuggen nicht aktualisiert/aktualisiert. Ich habe es auf ein einfaches Stück Code beschränkt.Druckerinformationen werden beim Debuggen nicht aktualisiert

Private Sub Form_Load() 
    Dim prt As Printer 

    For Each prt In Printers 
     AddOutput prt.DeviceName 
     AddOutput "Paperbin: " & prt.PaperBin 
    Next 
End Sub 

Dieser Code durchläuft alle Drucker und zeigt deren Namen und Papierkorbwerte an. Die Prozedur AddOutput fügt sie einem Textfeld hinzu. Wenn ich diesen Code von der VB6-IDE aus starte, ist der Wert für den Papierkorb für alle Drucker gleich. Wenn ich diesen Code zu einer ausführbaren Datei kompiliere und sie dann ausführe, zeigt die Ausgabe die korrekten Papierkorbwerte an. Ich fand heraus, dass, wenn ich eine Uhr dem prt Objekt hinzufüge und die Information zusammenbringe, dass der Papierkorb korrekt aktualisiert wird. Von diesem Moment an verwendet die VB6 IDE diesen spezifischen Papierkorbwert für alle Drucker.

Warum gibt die VB6 IDE den falschen Wert, während die kompilierte Version den richtigen Wert gibt?

ich getestet habe diesen Code auf Windows 7.

aktualisieren

Looping durch den Index keinen Unterschied machen, so mit For i = 0 to Printers.Count -1 hat das gleiche Problem wie For each prt in Printers verwenden.

Andere Eigenschaften sind ebenfalls betroffen. Eigenschaften wie PrintQuality, PaperSize und Duplex werden nicht aktualisiert. Die Eigenschaften DeviceName und Port werden korrekt aktualisiert.

+0

Es ist schon lange her, dass ich mit VB6 beschäftigt bin, also kann ich vielleicht nicht viel helfen, aber Sie haben mich neugierig gemacht: Werden die anderen Eigenschaften des Printer-Objekts aktualisiert, wenn sie innerhalb der IDE ausgeführt werden? Funktioniert es anders, wenn Sie eine Schleife nach Index durchführen anstatt eine For Each-Datei zu verwenden? –

+0

Aktualisiert 'DeviceName' korrekt? –

+0

Der 'DeviceName' wird korrekt aktualisiert. Looping nach Index macht keinen Unterschied. Andere Eigenschaften werden ebenfalls bewirkt. Ich habe nicht alle getestet, aber 'PaperSize',' Duplex' und 'PrintQuality' haben das gleiche Problem. – Martin

Antwort

0

Während es selten ist, auf etwas zu stolpern, das wie ein Plattformwanze aussieht, aber es scheint in diesem Fall eins zu sein. Ich empfehle die Installation der neuesten Service Pack (die für VB6 ist Service Pack 6), um sicherzustellen, dass Sie die neuesten Bugfixes haben. Ich vermute (obwohl es nur eine Vermutung ist), dass der Grund, warum es eingehalten, aber nicht in der IDE ist, dass beim Kompilieren verwendet die VB6-Laufzeit in neueren Versionen von Windows (die die aktuellen Service Packs enthält), aber in der IDE verwendet die Laufzeit der IDE (die Sie angegeben haben, war noch nicht gepatcht).

Verwandte Themen