Avatar billede hugopedersen Nybegynder
05. marts 2010 - 10:07 Der er 6 kommentarer og
1 løsning

Ingen installeret printer på Windows XP = crash

Jeg er igeng med at teste et program på forskellige platforme og er løbet ind i et lille problem på Windows XP
Hvis man laver en standard installation af XP, er der normalt ikke installeret en printer. Det bevirker at mit program der bruger Printers crasher ved opstart.

Hvordan kan man evt. fange det? (problemet er nok ikke særlig relevant da programmet skal skrive ud og installation af en printer derfor vil være krævet, men for at gøre brugeren opmærksom på problemet)
Avatar billede preppydude Nybegynder
05. marts 2010 - 10:58 #1
Den må give dig en fejl i hovedet når du debugger - gør den ikke det?
Avatar billede hugopedersen Nybegynder
05. marts 2010 - 11:06 #2
Problemet i det er at jeg ikke har Delphi på maskinen jeg tester på (en VMWare session) så jeg kompiler på en og tester på en anden.

Det er kun XP som sagt - Vista og Win7 har altid en eller anden form for printer installeret om det så kun er den der XPS fidus. Men det er nok til at fejlen ikke kommer.
Avatar billede kroning Nybegynder
05. marts 2010 - 11:31 #3
Test om der er nogle printer
if Printer.Printers.Count=0 then
  //ingen printer
Avatar billede hugopedersen Nybegynder
05. marts 2010 - 11:45 #4
Jeg har efter lidt roden rundt (og sletning af printere på min kodemaskine) fundet frem til at det der trigger fejlen er Printer.PrinterIndex som jeg bruger til at finde hvilken printer der er default så jeg kan skifte tilbage til den
Jeg lavede så en try except rundt om den og nu starter programmet lige så fint.

Men jeg vil godt give jer points for input hvis i smider svar.
Avatar billede preppydude Nybegynder
05. marts 2010 - 11:50 #5
Ellers tak. :)
Avatar billede kroning Nybegynder
05. marts 2010 - 11:54 #6
Det er noget fusk :-) blot at pakke PrinterIndex ind i en try except, du bør teste om Printer.Printers.Count=0 inden du benytter PrinterIndex.
Avatar billede hugopedersen Nybegynder
08. marts 2010 - 08:18 #7
Jamen så laver jeg da bare

if Printer.Printers.Count > 0 then
  Settings.LabelPrinter := RegistryValues.ReadInteger(conRegistry_Printer, 'Label printer', Printer.PrinterIndex)
else
  Logfile.Error('No printer found on computer');
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester