![]() |
Drucker via RunDll32 umbennen
Hallo,
neulich habe ich einen Thread eröffnet in dem es um das Umbennen eines Druckers ging. Ich habe mich heute wieder dran gesetzt und rausgefunden, dass man in der Kommandozeile einen Drucker auf folgende Weise erfolgreich umbennen kann:
Code:
Nun habe ich es via ShellExecute probiert. Doch das passiert nix, außer, dass Windows sein "Ding"-Sound abspielt. Der Druckername ändert sich nicht. Hier mein Code:
rundll32 printui.dll,PrintUIEntry /Xs /n "ALTERNAME" Printername "NEUERNAME"
Delphi-Quellcode:
Geht sowas nicht über ShellExecute? Den Drucker-Einstellungen-Dialog hatte ich schonmal offen.
ShellExecute(0, 'NULL', 'rundll32', 'printui.dll,PrintUIEntry /Xs /n "ALT" Printername "NEU"' , nil, 0);
Danke |
Re: Drucker via RunDll32 umbennen
Ruf mal ein cmd/command mit dem Rest als Parameter auf
|
Re: Drucker via RunDll32 umbennen
Hm...
falls du es so gemeint hast...
Delphi-Quellcode:
... das geht auch nicht.
ShellExecute(0, 'NULL', 'cmd', 'rundll32 printui.dll,PrintUIEntry /Xs /n "wow" Printername "NEU"' , nil, 0);
Ich kann noch nichteinmal die Kommandozeile mit folgendem Code öffnen:
Delphi-Quellcode:
Seltsam... oder stehe ich auf der Leitung?
ShellExecute(0, 'open', 'C:\Windows\System32\cmd.exe', nil, nil, 0);
|
Re: Drucker via RunDll32 umbennen
Das 0 als letzter Parameter heist unsichtbar
Was wird den zurückgegeben? |
Re: Drucker via RunDll32 umbennen
Och nö... Stimmt ja - das habe ich ganz übersehen. Nun wird wenigstens die CMD sichtbar. Aber den Parameter trägt er mir nicht ein.
Es ist lediglich der Pfad des aktuellen Verzeichnisses zu sehen. Hier meine aktuelle Version
Delphi-Quellcode:
Auch das direkte Aufrufen der Parameter im "Dateinamen"-Parameter funktioniert nicht (so:)
ShellExecute(0, 'open', 'C:\Windows\System32\cmd.exe', 'rundll32 printui.dll,PrintUIEntry /Xs /n "wow" Printername "NEU"' , nil, SW_SHOW);
Delphi-Quellcode:
Bei der oberen Version wird 42 zurückgegeben. SysErrorMessage sagt: "Der Vorgang wurde erfolgreich ausgeführt.". Nun ja, wenn man die Parameter missachtet, hat SysErrorMessage sogar recht...
ShellExecute(0, 'open', 'C:\Windows\System32\cmd.exe rundll32 printui.dll,PrintUIEntry /Xs /n "wow" Printername "NEU"' ,', nil, nil, SW_SHOW);
|
Re: Drucker via RunDll32 umbennen
Versuch es mal so:
Delphi-Quellcode:
ShellExecute(0, 'open', 'cmd.exe', '/C rundll32 printui.dll,PrintUIEntry /Xs /n "wow" Printername "NEU"' , nil, SW_SHOW);
|
Re: Drucker via RunDll32 umbennen
Vielen Dank. Das funktioniert super. Ich kannte den /C-Parameter garnicht.
Super :bounce1: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz