Leider gottes findet er immernoch nur %Printer%.
Habe selber auch noch ein wenig rumprobiert aber verzweifel förmlich drann...
Leider gottes findet er immernoch nur %Printer%.
Habe selber auch noch ein wenig rumprobiert aber verzweifel förmlich drann...
Und wieder hat sich mein Problem erweitert, soweit funktioniert SEuBo's vorschlag ganz gut allerdings nicht bei jeder Inf-Datei.
z.B.
; HP LaserJet 2100 Series driver - 2K
; HP LaserJet 2100 Series driver installation file for MS Windows 2000
; Copyright © Copyright Hewlett-Packard 1996, 1997, 1998, 1999, 2000, 2001
; All Rights Reserved.
; Version section
[Version]
Signature="$Windows NT$"
Provider=HP
layoutfile=hpbf212i.inf
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
Class=Printer
catalogfile=hp212ep6.cat
DriverVer=12/30/2003,4.27.2100.410
; Manufacturer section
[Manufacturer]
HP=HPLaserPrinter
; Model sections.
[HPLaserPrinter]
%Printer%=hpbf212i.pmd,DOT4PRT\HEWLETT-PACKARDHP_LA928D&BPRINT,HEWLETT-PACKARDHP_LA928D
; Installer Sections
[hpbf212i.pmd]
CopyFiles=hpbf212e_FILES,LANGMON_FILES
DataSection=hpbf212e_DATA
DataFile=hpbf212i.pmd
; Data Sections
[hpbf212e_DATA]
DriverFile=hpbf212g.dll
ConfigFile=hpbf212e.dll
HelpFile=hpbf212e.hlp
LanguageMonitor=%HP_LANG_MONITOR%
; Copy Sections
[hpbf212e_FILES]
hpbf212e.dll
hpbf212g.dll
hpbf212i.pmd
hpbf212e.hlp
hpbafd32.dll
hpbftm32.dll
[LANGMON_FILES]
hpdcmon.dll
[DestinationDirs]
hpbf212e_FILES=66000
LANGMON_FILES=66000
DefaultDestDir=66000
; Localizable Strings
[Strings]
Printer="HP LaserJet 2100 Series PCL 6"
DiskID1="HP LaserJet 2100 Series PCL 6 Printer Driver Disk"
HP_LANG_MONITOR="HP LaserJet 5 Language Monitor,hpdcmon.dll"
Alles anzeigen
Hier findet er %Printer% was soweit ja richtig ist, nur %Printer% ist ein String in dem HP LaserJet 2100 Series PCL 6 steht(siehe Zeile 54) also müsste mein Script quasi irgendwie den String erkennen und zu den Punkt springen wo sein Inhalt steht um diesen das auszulesen. (Ich hasse Inf-Dateien).
ahh, also dann ist Section schon besser als direkt den namen auslesen da bei Sectionen der name auf jedenfall stimmen müsste. Werd evtl. bei glück heute noch testen können. Meld mich dann.
SEuBo: ist es auch noch möglich unter der gefundenen Section den darin stehenden Namen auszulesen? sodass er zuerst die section sucht und wenn er diese gefunden hat den Model namen der dort steht.
Wäre Super ;). Soweit funktionierts aber gut.
@Xenobiologist: Deine Lösung funktioniert soweit schonmal, muss jedoch noch genauer testen und hab grade net so viel zeit.
SEuBo: Wie kann ich da den Dateipfad angeben wo die inf ist? xD
Blick da net so richtig durch, wei ClipGet ist ja für datei aus der zwichenablage aber wie krieg ich die inf darein?? *grins*
Edit: Es geht darum das Druckermodell rauszusuchen womit der Drucker per Inf datei isntalliert wird.(Oft sind es nicht die bekannte betzeichnung(die auf dem Drucker oder im Handbuch stehen) sondern i.welche abkürzungen oder sonstwas)
Hi,
ich will gerne eine Inf Datei auslesen (Inf-Datei von Druckertreiber) da ich an einen Script Arbeite was hier auf meiner Arbeit sämtliche drucker mit 2klicks installiert, jedoch wäre es sehr viel Arbeit die Druckernamen aus den Inf-Dateien per hand rauszusuchen und als Variablen im Script zu speichern(wie ich es mit 4 Druckern gemacht habe zum test). Ich denke mal das man das Problem mit RegExp lösen kann allerdings kenne ich mich damit noch NULL aus. Desweiteren besteht das Problem das die Inf-Dateien nicht gleichmäßig aufgebaut sind, jeder Herrsteller kann sie im prinzip selbst gestallten, nur das Shema bleibt gleich.
Hier mal 2ausschnitte als Beispiel:
;HP Printer Driver
;Windows NT printer installation INF file
;Copyright Hewlett-Packard 2001 - 2007
[Version]
Signature="$Windows NT$"
Provider=Hewlett-Packard
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
Class=Printer
CatalogFile=hp1055c1.cat
DriverVer=01/03/2007,4.31
; The Manufacturer sections lists all of the manufacturers
; that we willdisplay in the Dialog box
[Manufacturer]
"HP"=Models
; Model sections. Each section here corresponds with an entry listed in the
; [Manufacturer] section, above. The models will be displayed in the order
; that they appear in the INF file.
[Models]
"HP DesignJet 1050C PS3" = HP1050C1.PPD,LPTENUM\Hewlett-PackardDesig912D
"HP DesignJet 1055CM PS3" = HP1055C1.PPD,LPTENUM\Hewlett-PackardDesig4E6B
Alles anzeigen
Hier müsste er zu Manufacture gehen dann lesen das "HP"=Models ist und zu Models gehen um die hier 2 Modelle auszulesen und zu speichern. Eig. nicht so schwer denk ich aber:
; HPP1010H.INF
; SuperPrint 5.5 hp LaserJet 1010 Series
; Copyright (C) 2002 Zenographics Inc.
[Version]
Signature="$Chicago$"
Provider=%ZS%
ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
Class=Printer
DriverVer=05/28/2003,5.60.1604.0
catalogfile.nt=hpp1010h.cat
[DestinationDirs]
DefaultDestDir = 11
DRIVER = 11
DRIVER2K = 66000
HELP = 11
HELP2K = 66000
PAREPP = 11
PRTPROCS = 66001
PRTPROCS_COPY = 66000
SD = 11
SDNT = 66000
SD4INI = 10
SD9X = 11
LANGMON_FILES = 11
LANGMON_FILES_NT5 = 66002
LANGMON_DRVCOPY = 66000
[Manufacturer]
"HP"
[HP]
%LJ1010% = LJ1010, DOT4PRT\VID_03F0&PID_0C17&REV_0100
%LJ1010% = LJ1010, DOT4PRT\VID_03F0&PID_0C17&DOT4&PRINT_HPZ
%LJ1010% = LJ1010, DOT4PRT\Hewlett-Packardhp_La17C4&PRINT_HPZ
%LJ1010% = LJ1010, LPTENUM\Hewlett-Packardhp_La17C4, Hewlett-Packardhp_La17C4
%LJ1010% = LJ1010, USBPRINT\Hewlett-Packardhp_La17C4
%LJ1012% = LJ1010, DOT4PRT\VID_03F0&PID_0D17&REV_0100
%LJ1012% = LJ1010, DOT4PRT\VID_03F0&PID_0D17&DOT4&PRINT_HPZ
%LJ1012% = LJ1010, DOT4PRT\Hewlett-Packardhp_LaD645&PRINT_HPZ
%LJ1012% = LJ1010, LPTENUM\Hewlett-Packardhp_LaD645, Hewlett-Packardhp_LaD645
%LJ1012% = LJ1010, USBPRINT\Hewlett-Packardhp_LaD645
%LJ1015% = LJ1010, DOT4PRT\VID_03F0&PID_0E17&REV_0100
%LJ1015% = LJ1010, DOT4PRT\VID_03F0&PID_0E17&DOT4&PRINT_HPZ
%LJ1015% = LJ1010, DOT4PRT\Hewlett-Packardhp_La1404&PRINT_HPZ
%LJ1015% = LJ1010, LPTENUM\Hewlett-Packardhp_La1404, Hewlett-Packardhp_La1404
%LJ1015% = LJ1010, USBPRINT\Hewlett-Packardhp_La1404
Alles anzeigen
Hier heißt der 2te Teil nach Manufacture, HP und nicht mehr Model.
Somit kann man den ersten teil finden aber wie den 2ten?(Da der in jeder 3ten Inf-Datei anders heißt)
Hoffe mir kann geholfen werden. Schonmal Danke für eure Mühe ![]()
Guck dir mal die Hilfe zu TreeViewItem an.
Evtl. kannste die TreeViewID nutzen um zu gucken ob der eintrag makiert ist. (wenn es das ist was du brauchst)
konnte es leider nicht testen da ich in der Schule bin und hier leider kein AutoIt installiert ist.
Ich kriege da nen Error wenn ich es starten will.
"ERROR: _GDIPlus_BrushSetSolidColor() already defined."
Habe mich grade nochmal ein wenig rangesetzt und noch eine bewegende Kugel hinzugefügt.
Desweiteren haben die Objekte nun auch Texturen ;).
Werde die Tage wohl mal ein größeres Projekt mit diesen Thema anfangen, und dieses natürlich auch hier im Forum vorstellen =).
Hier der Code:
[autoit]#include "GlPluginUtils.au3"
$x = 40
$y = -50
$z = 5
HotKeySet("{ESC}", "End")
;~ Texture
TextureSetBuffer(1)
TextureAdd("Texture", @ScriptDir & "\autoit9.bmp")
TextureSetMode(1)
;~ GL GUI
$Title = "Erste GL"
DefineGlWindow($Title, 800, 600)
SetClearColor(0.2, 0.0, 0.0)
;~ Licht und Schatten
CreateLight(0, 150, 150, 68)
SetLightAmbient(0, 0.0, 0.1, 0.1)
SetLightDiffuse(0, 0.8, 0.8, 0.8)
SetLightSpecular(0.5, 5.1, 2.0, 1.0)
;~ Objekt
$Wurfel = ObjectCreate()
$Cube = AddCube($Wurfel, 60, 60, 60, 0.3, 0.3, 0.2, 1.0)
ObjectTranslate($Wurfel, $x, $y, $z)
ObjectRotate($Wurfel, 0, 0, -23)
$Kugel = ObjectCreate()
$Sphere = AddSphere($Kugel, 10, 60, 80, 40, 20, 20, 0.3, 0.3, 0.2, 1.0)
ObjectTranslate($Kugel, -20, -10, -10)
ObjectRotate($Kugel, 0, 0, +32)
;~ Texturieren
TextureBind($Wurfel, $Cube, "Texture")
TextureBind($Kugel, $Sphere, "Texture")
;~ Kamera
SetCamera(100, 60, 250, 0, 0, 0)
setPrint($Wurfel)
setPrint($Kugel)
$CheckWindowTimer = TimerInit()
$Y_Axis = 0
$Y_Axis2 = 0
While 1
SceneDraw()
Sleep(15)
;~ Rotieren Lassen
ObjectRotate($Wurfel, $Y_Axis, $Y_Axis, 0)
$Y_Axis += 0.8
ObjectRotate($Kugel, $Y_Axis2, $Y_Axis2, 0)
$Y_Axis2 -= 0.8
;~ prüft ob GUI offen ist
If TimerDiff($CheckWindowTimer) > 1000 Then
If WinExists($Title) = 0 Then Exit
$CheckWindowTimer = TimerInit()
EndIf
WEnd
Func End()
Exit
EndFunc ;==>End
Hi,
ich habe mir heute mal ein OpenGL Plugin für Autoit angeschaut und zu anfang mal einen drehenden Würfel gemacht.
Hoffe ich habe meine Arbeit einigermaßen gut gemacht. ![]()
Die benötigten dll's sind im .zip ordner vorhanden und müssten ggf. nur in den Windows Ordner kopiert werden. (Ausser:"Au3GlPlugin.dll" )
Danke für dein Feedback. Werde deine kleinen "vorschläge" mal zur kenntniss nehmen, und bei Zeit nochmal den Kalender bearbeiten um auch diese schönheitsfehler(vorallem mit den Input-Boxen) ausbügeln.
Die Termine auch in die .Ini zu speichern hab ich garnet drann gedacht xD. Evtl. werd ich das mal testen und gucken was ich persönlich besser finde ;).
Danke für die Hilfe habs jetzt hinbekommen, gebe einfach einen Befehl zum erstellen des anschlusses an das CMD ![]()
Case $Install
$sCommand = "cscript %systemdrive%\windows\system32\prnport.vbs -a -r " & $Name & " -h " & $hIP & " -o " & $Protocol & " -n " & $hPort
_RunDOS($sCommand)
nuts: werde deine lösung auch mal testen und gucken welche ich nutzten werde.
Genau, es soll erstmal nur den Anschluss erstellen, wie ich das mit den Treiber machen werde weiss ich schon ;).
Ja habe ich noch:
Set wshshell = CreateObject("WScript.Shell")
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objNewPort = objWMIService.Get _
("Win32_TCPIPPrinterPort").SpawnInstance_
objNewPort.Name = "IP_132.1.83.12"
objNewPort.Protocol = 1
objNewPort.HostAddress = "132.1.83.12"
objNewPort.PortNumber = "9100"
objNewPort.SNMPEnabled = False
objNewPort.Put_
wshshell.run "C:\Drucker_Script\1.bat"
Alles anzeigen
Hi zusammen,
ich bin grade dabei ein script mit AutoIT zu schreiben das drucker automatisch hinzufügt und installiert.
Jetzt habe ich allerdings das problem das das script den drucker hinzufügen soll(noch nicht die Treiber installieren) und ich nirgendwo was gefunden habe wie das gehen soll. Bei VB waren das nur 5 zeilen, aber will es jetzt mit AutoIT machen. Gibt es da was?
Danke im vorraus für die Hilfe!
mfg AltairKD
Sauberes Script, läuft auch ganz gut ;). Bin mal auf die nächste Version gespannt.
Und nochmal ein Update von meinen Terminkalender. ![]()
Eingefügt wurde nun ein Menü und die Funktion schon erstellte Termine zu bearbeiten.
Desweiteren kommen bei eintrag eines neuen Termins nicht immerwieder neue InputBoxen sondern einfach nur eine GUI in der alles eingetragen werden kann. Ladet euch einfach mal die Version runter und gibt mir euer FeedBack.
Danke!
ja schon gut fürs erste.
Eigene Seiten hinzufügen wäre wirklich nicht schlecht und das dann in ne .ini datei schreiben lassen. Wird auch net all zu schwer sein.
Also habe soweit alles umsetzten können.
1. Wenn man bereits eine Datei gespeichert hat und nochmal das script öffnet wird dieses automatisch die datei laden.
2. Wenn man bei neuen Termin Cancel drückt werden die restlichen punkte nicht mehr abgefragt
3. Man kann mit den Traymenü nun Schliessen, Verstecken und Anzeigen.
Also soweit schon fertig, nurnoch die feinarbeit, hier schonmal das jetztige ergebnis!
edir: Standard Passwort ist wie gehabt "12345".
Wesentlich geiler als die erste Version. Saubere Arbeit von dir.
@Bakku:Freut mich das es dir Graphisch schonmal gefällt
.
Werde das die Tage nochmal bearbeiten so das es beim schliessen automatisch in die vorhandene(falls voranden) Datei speichert und beim öffnen wieder automatisch von dieser ladet.
@Pinguin94:
Stimmt, da hatte ich garnet drann gedacht xD, werde das natürlich auch nochmal bearbeiten und die fertige Version dann nochmal posten. ![]()