Hola a todos,
tengo una aplicacion que se ejecuta en un equipo dedicado con una cuenta de usuario limitado y necesito poder abrir la carpeta de impresoras desde delphi..., he encontrado el siguiente codigo en
trucomania
Código:
procedure TForm1.Button1Click(Sender: TObject); var PIDL:PItemIDList; Info:TShellExecuteInfo; pInfo:PShellExecuteInfo; WaitCode:DWord; begin {Obtenemos PIDL de la carpeta virtual} {get PIDL of the virtual folder} SHGetSpecialFolderLocation(Handle, CSIDL_PRINTERS, PIDL); {Puntero a Info} {Pointer to Info} pInfo:=@Info; {Rellenamos Info} {Fill info} With Info do begin cbSize:=SizeOf(Info); fMask:=SEE_MASK_NOCLOSEPROCESS+ SEE_MASK_IDLIST; wnd:=Handle; lpVerb:=nil; lpFile:=nil; {Parametros al ejecutable} {Executable parameters} lpParameters:=nil; lpDirectory:=nil; nShow:=SW_ShowNormal; hInstApp:=0; lpIDList:=PIDL; end; {Ejecutamos} {Execute} ShellExecuteEx(pInfo); {Esperamos que termine} {Wait to finish} repeat WaitCode := WaitForSingleObject(Info.hProcess,500); Application.ProcessMessages; until (WaitCode <> WAIT_TIMEOUT); end;
pero me gustaria que solamente se pueda gestionar las impresoras, nada de pulsar el boton de arriba y acceder al panel de control, a el explorador de windows ni nada parecido, solamente a impresoras para detener trabajos, eliminar impresoras, añadir nuevas. Por supuesto la cuenta de usuario que ejecutará el comando de abrir impresoras tiene permisos limitados.
El equipo ejecuta win xp y ademas conozco la cuenta del admistrador.
¿¿¿Sabeis como puedo limitar la apertura de la carpeta de impresoras????
Gracias,
David.