Autor Beitrag
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Fr 21.03.03 21:33 
Hi,

jeder von euch hat sich schon mal einen Druckertreiber installiert. Da sind ja meisten Setup's mit bei oder INF-Dateien. Wenn ich jetzt mit der rechten Maustaste auf die INF-Datei klicken bekomme ich ein Menü, mit der Option Installieren. Wie kann ich jetzt diese Option mit Delphi aufrufen, so dass er mir den Druckertreiber installiert ? Ich habe natürlich die nötigen Rechte etc.
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 22.03.03 10:59 
1. Einfach, aber nicht unbedingt richtig: ShellExecute mit dem Verb 'install' und dem Namen der INF-Datei aufrufen.

2. Der richtige Weg: du beschäftigst dich mal mit der Setup-API von Microsoft. Dazu ist ein Blick ins PSDK immer gut, und bei den JEDIs findest du eine Übersetzung der entsprechenden Headerdatei als Delphi-Unit.
toms
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1099
Erhaltene Danke: 2



BeitragVerfasst: Sa 22.03.03 12:17 
Musst mal probieren, ob das geht:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
uses 
  ShellAPI; 

function InstallINF(const PathName: string; hParent: HWND): Boolean; 
var 
  instance: HINST; 
begin 
  instance := ShellExecute(hParent, 
    PChar('open'), 
    PChar('rundll32.exe'), 
    PChar('setupapi,InstallHinfSection DefaultInstall 132 ' + PathName), 
    nil, 
    SW_HIDE); 

  Result := instance > 32; 
end; { InstallINF } 

// Aufruf:

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  InstallINF('C:\XYZ.inf', 0); 
end;


(Quelle: SDC)
bis11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Sa 22.03.03 13:39 
Hi,

erstmal danke für eure Antworten.

@Toms

Dein Code-Beispiel habe ich ausprobiert, aber leider installiert er mir nicht den Druckertreiber. Gibt es noch einen anderen Weg einen Druckertreiber zu installieren, wenn ich keine Setup - EXE habe.

@MathiasSimmack

Über ShellExecute mit dem Verb 'install' geht es auch nicht. Ich bekomme auch keine Fehlermeldung. Und aus der PSDK werde ich auch nicht richtig schlau.
bis11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Di 25.03.03 20:26 
Ich danke nochmals allen Dir mir eine Antwort gegeben haben, aber ich habe jetzt mein Problem selber gelöst, da nach 3 Tagen nach meinem letzten Posting keine Antwort gekommen ist.
toms
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1099
Erhaltene Danke: 2



BeitragVerfasst: Di 25.03.03 20:49 
Zitat:
aber ich habe jetzt mein Problem selber gelöst


Wie denn?
bis11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Di 25.03.03 20:53 
Ich habe einen Novell-Server, mit dem ich eine Softwareverteilung machen kann. Da habe ich für jede Treiberversion ein Packet erstellt. Dieses Packet schreibt mir einen Registry-Key und dieser wird dann abgefragt und es wird damit auch passend reagiert drauf.
bis11 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Do 03.04.03 14:39 
Hi,

nun habe ich meine Idee dem Chef gezeigt und er war schon ganz zufrieden. Nur möchte er gerne, dass ich die Druckertreiber über die INF-Dateien installiere. Den Code den mir freundlicher Weise toms gepostet hat funktioniert zwar, damit meine ich, ich kann Ihn compilieren, aber mein Druckertreiber wird nicht installiert. Dann habe ich es schon über verschiedene rundll32 - Befehle probiert, was auch keinen Erfolg gebracht hat. Hat jemand noch eine Idee für mich ?