Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I downloaded Microsoft SDK and Visual Studio 2015 on Windows 10 and a shortcut to file WPCups.exe showed up on my desktop. It's located in C:\Windows\SysWOW64\WindowsPowerShell\v1.0\Modules\TShell\TShell.
Some searching has turned up that it might be related to IP phones:
This is a CMD line utility to test and send ip over usb connectivity. Its included with the the WDK. It will connect to IPoverUSB.exe and will use RPC to talk to a Windows phone. It will drop a log file in your my documents folder that you may see also btw.
But it still seems odd to me, partially that it would install a shortcut onto my desktop. VirusTotal says it's clean, and IDA's disassembly looks like it's doing what the responder I quoted above says it should do, but I can't find any windows documentation, let alone a hash value.
In another forum someone mentioned that WPCups.exe is normally installed with Microsoft SDK, but I can't find any documentation confirming that.
It calls:
ADVAPI32.dll, KERNEL32.dll, WSOCK32.dll, WS2_32.dll, msvcrt.dll, IPHLPAPI.DLL, RPCRT4.dll.
Which seems reasonable.
I ran it on malwr.com but the analysis failed, that package "modules.packages.exe" start function raised an error...I suppose because of unmet dependancies? But the program looks like it should still end gracefully even without IPoverUSB.exe present.
Is anybody familiar with this file?
Update:
Because finding Windows documentation is apparently the most immediate path to madness:
From How Linux Works by Brian Ward
The standard printing system in Linux is CUPS (Linux CUPS), which is the same system used on Mac OS X. The CUPS server daemon is
called cupsd, and you can use the lpr command as a simple client to
send files to the daemon. One significant feature of CUPS is that it
implements Internet Print Protocol (IPP), a system that allows for
HTTP-like transactions amont clients and servers on TCP port 631. In
fact, if you have CUPS running on your system, you can probablt
connect to http://localhost:631/ to see you current configuration
and check on any printer jobs. Most network printers and print servers
support IPP, as does Windows, which can make setting up remote
printers a relatively simple task.
You probably won't be able to administer the system from the web
interface, because the default setup isn't very secure. Instead, your
distribution likely has a graphical settings interface to add and
modify printers. These tools manipulate the configuration files,
normally found in /etc/cups. It's usually best to let these tools do
the work for you, because configuration can be complicated. And even
if you do run into a problem and need to configure manually, it's
usually best to create a printer using the graphical tools so that you
have somewhere to start.
Many printers, including nearly all low-end models, do not understand
PostScript or PDF. In order for Linux to support one of these
printers, it must convert documents to a format specific to the
printer. CUPS sends the document to a Raster Image Processor (RIP) to
produce a bitmap. The RIP almost always uses the Ghostscript (gs)
program to do most of the real work, but it's somewhat complicated
because the bitmap must fit the format of the printer. Therefore, the
printer drivers that CUPS uses consult the PostScript Printer
Definition (PPD) file for the specific printer to figure out settings
such as resolution and paper sizes.
So, point Linux?
No, that has nothing to do with the Printing Deamon for Linux.
WPCups belongs to the TShell Powershell Module with is Part of the Development Toolskit for Apps which will be installed with the WDK.
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 8 years ago.
Improve this question
This looks like a common question. But I was not able to find answer for it. When we try to install windows programs, what exactly happens? What files are copied where? What is written in the registry?
Most programs come with an installation program named Setup.exe or Install.exe. When you install a program, the installation program usually does the following:
Looks for a previous version of the program on your hard disk. If it
finds a previous version, the program may ask whether you want to
replace the previous version.
Creates a folder in which to store the program files. Most
installation programs ask where you'd like this folder. Some
installation programs also create additional folders within this
folder. Windows creates a folder named Program Files, usually in C:\
(if Windows is stored in a partition or drive other than C, the
Program Files folder is usually in the same partition). We recommend
you install all your programs in folders within the Program Files
folder.
note Some software vendors have the bad habit of installing
application programs in locations other than your Program Files
folder. You can't do much about this; the additional folders may
clutter up your root folder, but they don't do any harm.
Copies the files onto your hard disk. If the program files are
compressed, the installation program uncompresses them. Usually, the
installation program copies most of the files into the program's
folder, but it may also put some files into your C:\Windows,
C:\Windows\System, or other folders.
Checks your system for the files and hardware it needs to run. For
example, an Internet connection program might check for a modem.
Adds entries to the Windows Registry to tell Windows which types of
files the program works with, which files the program is stored in,
and other information about the program.
Adds a command for the program to your Start | All Programs menu
(some programs add submenus to the Start | All Programs menu to
contain several commands). The installation program may also add a
shortcut to your Windows desktop to make running the program easy for
you. You can change the position on the Start menu of the command for
the program, get rid of the command, or create a command if the
installation program doesn't make one. You can also create a shortcut
icon on the desktop, if the installation program hasn't done so, or
move or delete the program's shortcut.
Asks you a series of questions to configure the program for your
system. The program may ask you to type additional information, like
Internet addresses, passwords, or software license numbers. It may
also ask which users should be able to run the program.
Every installation program is different, because it comes with the application program, not with Windows. If your computer is connected to a LAN or to the Internet, the installation program may configure your program to connect to other computers on the network.
Is there a version of the CUPS server available for Windows? Looking at the CUPS source code it seems it is ready for Visual Studio compilation, but I did not find any trace of an actual supported package. I'd like to set up a CUPS server on Windows so that I can print form Linux/MacOSX/Win clients to printers I set up on this server.
I've got a new answer for you:
Since some time there is a project called ippsample on GitHub. It's slowly approaching a mature version 1.0 release.
Here are the first two sentences of given as self-description in the mandatory README file:
"This code provides sample implementations of IPP Clients, Printers, and Proxies. It is largely based upon the CUPS software, with substantial changes to the ippproxy and ippserver implementations to make them more general-purpose and configurable." (my emphasis)
This project is hosted by the ISTO Printer Working Group (PWG), the same industry organization which develops and promotes the IPP as a general standard.
The ippserver, ipptool, ippfind, ippproxy and ipptransform components of the IPP Sample project together make up for a standard-conforming IPP Everywhere implementation, covering the client as well as the server side of printing.
The GitHub code for IPP Sample project is maintained by the very same Mike Sweet who also develops CUPS -- so it's the real thing.
Yes, it compiles and works nicely on Windows, and there are a bunch of .vclxproj and .sln files available to make the build process with MS Visual Studio as smooth as possible.
Yes, the IPP Sample code is working and can print to a CUPS server (or receive print jobs from there) running on macOS or any blend of Linux.
No, this is not yet a fully-blown CUPS server for Windows which can serve as a drop-in replacement for a Windows print server. It does not have with ALL the features which would be required.
But if you want to create such a beast:
this is the place were you would have to poke around first;
this is were you possibly could fork the code and start adding functionality to get where you want to go.
Oh, and did you know that Apple recently changed the license conditions for CUPS and made it more permissive, moving away from GPL2 to Apache 2.0 licensing?
You have never heard of "IPP Everywhere" before? It is the future of "driverless" printing.
Never heard of "driverless printing"? A slightly modified (and stripped down) version of it already implemented as "Apple AirPrint" for iPhone and iPad devices.
The current implementation of the CUPS-based printing stack includes new pieces of code in the cups-drivers project which recently moved to GitHub. This new code implements IPP Everywhere functionality.
This cups-filters project is under the stewardship by The Linux Foundation's OpenPrinting department ever since Apple handed over these parts of the original CUPS source code to them when they became no longer useful for macOS but were still important to Linux.
What are the basic ideas of driverless printing then?
Have the devices automatically announce their presence and their type of service in the local network. Use the IETF standard protocols mDNS and DNS-SD (which are implemented in macOS under the name of "Bonjour" and in Linux as "Avahi") to take note of the offered services.
Tell the print clients that they can use the IPP protocol in order to get a query response when they make a get-printer-attributes request. This request will tell them which set of print options the devices support. The print clients can then show an exactly tailored print dialog to show to the printing user a selection of choices. The print client will also be told what job submission formats each devices supports. This MUST be either PDF or a simple raster format called "PWG-Raster".
So... where would you need a specific "printer driver" in such an environment? Everything and everyone can create PDF documents nowadays. Check! No need for a device-specific conversion to any other print language.
Are there printers which support IPP Everywhere already? Oh yes, look here -- they are all said to be fully compliant with the standard:
List of IPP Everywhere printer models
The .sln and .vcproj files you've been seeing in the CUPS sources are not meant to compile all of CUPS for Windows.
They serve to compile only a few of its utilities (such as ipptool.exe)...
Making the complete CUPS server+filtering code work on Windows would be a daunting task, since Windows spooling and printing is so much different from the Unix world.
CUPS uses Internet Printing Protocol for client-server communications. According to Technet article, Windows can be used as IPP host:
To enable a computer running Windows
Server 2008 to act as a server
supporting Internet printing, you must
install the Web Server (IIS) role, the
Print Services role, and the Internet
Printing role service in the Print
Services role.
Moreover, it seems that Windows, Linux and Mac OS X clients can use printers shared via SMB.
"Making the complete CUPS server+filtering code work on Windows would be a daunting task, since Windows spooling and printing is so much different from the Unix world."
Back in the dial up internet days, I ran into a problem where some IPS' had a replacement dll for modem functionality. The problem with it was that the dll prevented legit programs from accessing the modem until you uninstalled the IPS program.
This same technique can be used to create a Windows CUPS server by writing a Windows spooling and printing replacement program that, rather than printing directly to the printer, hands off the printing tasks to the CUPS server.
It would of course, take someone with in depth knowledge of the windows spooling and printing protocols.
cygwin ports has patch files for implementing a cups in (some versions of) cygwin. I can't speak to how well it might work.
https://github.com/cygwinports-extras/cups
I have been looking into the possibility of creating a soft copy(image/EMF file) of everything printed from Windows - for archival purposes. Does anyone know if it is possible to create a hooking DLL that can grab the printed data in such a general way?
A low tech way of solving it might be to install pdf printer driver as the default printer and remove all others and set it up to automatically write all the files to certain directory on the network and then write a tiny app on another computer to monitor that folder for changes and if any new pdfs appear just print them out to a real printer.
Edit: Otherwise there's apparently something called the Print Monitor API. Here's an article that describes using that from VC++ 6 and seems to be pretty much what you want (assuming it's still supported by the OS you use).
Having looked at this problem in more detail the best solution seems to handle it through Spooler notifications in the Win32.
Windows XP Embedded is missing the NULL or "NUL" device. For one thing, Visual Studio seems to require it and trying to build a project aborts with a PRJ0015 error.
Anyone know how to configure an XPe image to include support for the NUL device?
"Null Device Driver" is available in the XPe Target Designer, but it's normally hidden. Apparently each component has a visibility level, and if it's lower than that set in the Target Designer options (Tools->Options), it's hidden. Null Device Driver is at level 200, so I set the level to 100 and could see it and install it.
There's another important situation where you're going to want the NUL device: if you're installing some or all of the Cygwin UNIX solutions for Windows. In particular, if you're doing something like, oh, I don't know, to pick a completely random example, trying to put an SSH server on the damned thing so you can, just on a lark, say, log in and maintain it.
That's right-- Cygwin actually maps its UNIX /dev/null device to the Windows NUL device. You know, for maximum compatibility. Just in case the platform-specific implementation of IMMEDIATELY THROWING DATA INTO THE TOILET AND OBLITERATING IT, NEVER TO BE SEEN AGAIN, UNTIL THE HEAT DEATH OF THE UNIVERSE, happened to be novel and innovative.
While cygwin will INSTALL without NUL available, it will not, in fact, actually enjoy a typical work day. This is most evident the first time you try to launch a bash shell, and notice a slew of error messages about /dev/null resulting in no such file or directory errors. One presumes the device is perhaps actually just an NTFS link, but who knows.
In any case, the fix is to add the "Null Device Driver" component, helpfully located under Software -> System -> Other, a surprisingly small category which also contains such useful components as Internet Checkers, the Schedule Service Command Line Utility, the 1394 Kernel Debugger Support Library, EBCDIC support for Microsoft Bob, some cheat codes for Zork, and the code pages to say "(A)bort, (R)etry, (I)gnore, (F)ail?" in Muppet Swedish ("(B)ork, b(o)rk, bo(r)k, bor(k)?")
Hope this helps,
Matt "Breakpoint" Heck
Running Visual Studio itself on XP Embedded doesn't seem like it'd be supported. You should build on a full OS and then just deploy your application to XP embedded.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
My printer ran out of black toner and I didn’t have a spare, so I thought it’d be a good idea to “print” documents to .XPS files for now, then print them when the new toner arrives.
So, now I have my toner but I can’t work out how to print the files. I found this great post on Tim Barcz’s blog which seems to indicate I’m not alone.
I can open them and view them in IE, but if I try to print them it either ignores the command altogether or crashes.
I downloaded the XPS Essentials Pack from the Microsoft website and tried to install it, but it refuses to install and keeps crashing with a ten-page error message. Ironically, I would normally print this message out to deal with it.
My “solution” is to open the .XPS files in IE, then screenshot them and paste them into Paint Shop Pro so I can print them as graphics.
As Tim Barcz says in his post that I linked to:
That’s it…simple. What I don’t get is why people are so afraid to embrace new technology?
I have had no problems printing XPS docs from IE. The first thing that comes to mind is what OS are you running, what version of IE, are all service packs installed, etc?
Another option would be to copy the XPS files to a thumb drive (or send over the network) and print from another computer that does not have any issues.
Edit:
Follow up questions...Can you print non-XPS docs? Have you restarted the printer? Is your print spooler messed up?
I have had many instances where I could not print due to a bad print job clogging the spooler. Restart the spooler or restarting your PC usually takes care of this issue.
IE has an issue with printing XPS files to a network printer, is this a network printer?
The short answer to printing XPS is to use the "Microsoft XPS Document Writer".
This 'printer' gets installed when you install Essentials Pack/XPS Viewer on your system. IMHO, it is better to install the former. Note that MS has upgraded the EP from RC to 1.0 sometime back. So, probably, the problem you have is one of using the older EP. Now, downloading and installing the newer EP (i.e. EP 1.0) doesn't work always. The safest bet in this case is to manually uninstall the EP RC Pack, and then install EP 1.0.
Also, remember that you'd probably have to uninstall/upgrade the installed .NET runtime (or reinstall it). Oh, and then there is MS Core XML Services 6.0 that is required for MS XPSDW (the printer I mentioned earlier, remember?) to work. However, a quick look back at MS's site (http://www.microsoft.com/downloads/details.aspx?familyid=993C0BCF-3BCF-4009-BE21-27E85E1857B1&displaylang=en#Requirements) tells us this is supported for upto XP SP2. Check with MS to know if SP3 is supported as well.
In case you manage to get around all this somehow, you'd want to view the output of the prints you fire. I have the IE-tab extension on my browser and I open all XPS files using this one. Recently, however, I've heard that Pagemark has come up with a ff plug-in for viewing XPS files. You might want to check it out (http://www.pagemarktechnology.com/home/xps-test.html).
And of course, check out Wikipedia (http://en.wikipedia.org/wiki/XML_Paper_Specification)!
If you don't want to print to XPS, select another printer as the default one as indicated by previous comments. Also the XPS printer seems to have problems with margins or page size (some information are outside the A4 or too close to border to be printed).
Otherwise, when opening XPS files in IE9, the "File>Print" menu option is disabled. But you can use the keyboard shortcut: Ctrl+P
There are XPS to JPG/JPEG converters all over the web, pick one ;/
I had big problems with the XPS essentials pack, too.
After a lot of research and debugging I found the installation of XPS to be damaged somehow, and just scrapped and reinstalled the whole computer.
Afterwards everything XPS did work like charm.
So my guess would be: your XPS installation is faulty. Fix: reinstall. Workaround: print from some other computer.
With all due respect to the other answers, I believe you're overlooking the most likely cause and the easiest solution. The most likely cause is that the person's default browser is not Internet Explorer. The solution in that case is to open IE and type in the address of the xps file (e.g., C:\Users\Public\Documents\EVIDENCE\groupon.xps
Windows XP SP3, IE6, all up to date AFAIK.
I use Firefox mostly, so haven't updated IE for ages. Maybe IE7 would be more successful.
The point was that XPS is meant to be some kind of PDF-killer, but the difference is that PDF just works, while XPS has been a disaster. I don't mind errors, but I want it to tell me what is wrong, not just say it didn't work, as I can see that from the lack of pages coming out of the printer.
My answer: anytime you need to resort to 'steps' to resolve an issue that normally 'just works' in any other format, you have by definition gone beyond 'just works' to that place where you need to do work to make something 'just work'.