Is there a way using NodeJS to capture a screenshot of a specific window?
Let's say I have my Chrome app open, and I want the screenshot of just this window, or a screenshot of the desktop (even if there are other windows covering it).
I was looking for some solution but the packages I found (e.g. screenshot-desktop) capture the whole screen, so if a specific window is hidden, there is no way for me to capture it.
Related
I would like to be able to toggle between framed and frameless window in my Electron app, without needing to construct a new window. This is because this option is a different view than what would be initially loaded, therefore it would be nice if there is a way to change the current window to be frameless.
I have found window.setFullscreen() for toggling between full screen mode. I've not been able to find anything similar for frameless window. Is there any such method or workaround that I'm not seeing?
As the docs go, you enable or disable window frame at the time of creation of browser window. After that, there are no methods you can call to enable or disable frame. However, if you really really want that option, there may be a workaround. And a workaround, is well, a workaround.
Create 2 browser windows, one over the other. The first one being transparent window(with frame and click-through) and the second one being your content window(without frame).
Implement your custom solution to keep size and position of both the windows in sync. Use ipc to share data between the windows.
Toggle the visibility of the transparent browser window to show/hide frame.
Some relevant resources:
Creating frameless window : https://electronjs.org/docs/api/frameless-window#create-a-frameless-window
Creating transparent window : https://electronjs.org/docs/api/frameless-window#transparent-window
This line works fine for my Windows program.
When i run this same file on the Mac OS X, I get a blank page instead of my icon.
Here is the windows line:
self.iconbitmap("Boss.ico")
I have searched relentlusly for an answer I want this icon to work on both platforms. self is the root Tk window if your wondering if it's root or not.
Note: I have tried using icns, .xbm , .gif by loading a photo image and setting thru window attributes all produce the same blank page on the mac.
After 5 days of searching, and this post having been viewed at least 15 times I went directly to the tk/tcl documentation. If I understand this correctly, apparently there is no way to properly set the icon for mac OS X without using special library or other sort of hacks. It would be nice if there were a mac specific documentation for the tkinter library but alas there isn't that I have found. here is the part of the documentation I found:
wm iconphoto window ?-default? image1 ?image2 ...? Sets the titlebar
icon for window based on the named photo images. If -default is
specified, this is applied to all future created toplevels as well.
The data in the images is taken as a snapshot at the time of
invocation. If the images are later changed, this is not reflected to
the titlebar icons. Multiple images are accepted to allow different
images sizes (e.g., 16x16 and 32x32) to be provided. The window
manager may scale provided icons to an appropriate size. On Windows,
the images are packed into a Windows icon structure. This will
override an ico specified to wm iconbitmap, and vice versa.
On X, the images are arranged into the _NET_WM_ICON X property, which
most modern window managers support. A wm iconbitmap may exist
simultaneously. It is recommended to use not more than 2 icons,
placing the larger icon first.
On Macintosh, this currently does nothing.
if anyone has a working solution please post this. I want to accomplish this so that any system can open a freshly installed python and run my application without installing any additional library.
#GarryHurst This is not a solution but I sort of get the idea now:
On Mac, TK decided that the icon will never appear on the window title bar.
Instead, it shows up as the app's Dock icon.
It's most probably a by-design or won't fix issue on their side.
It is showing the icon of the file you are putting in the directory so setting the file to be an app will set the window icon to be the icon of that app.
for example:
root.iconbitmap("/Users/homedir./Desktop/Test apps/Clicker.app")
tk window with icon
I have a coup. Why not change mind, like this.
The emoji library is enough to choose a good-looking icon.
We can do that.:-D
Code
Effect
if i want get root view,i also by call getWindow().getDecorView().findViewById(android.R.id.content) or findViewById(android.R.id.content).getRootView().so i want to know if i can find the layout of android.R.id.content. could you tell me where is the layout.you can give me a link or other.thanks
You can use Hierarchy Viewer tool, See the definitons and Steps of how to use this tool in developer guide as shown below,
It shows visual representation of the layout's View hierarchy (the Layout View) and a magnified inspector of the display (the Pixel Perfect View).
To get the Hierarchy Viewer started:
Connect your device or launch an
emulator. From a terminal, launch
hierarchyviewer from your SDK /tools
directory. In the window that opens,
you'll see a list of Devices. When a
device is selected, a list of
currently active Windows is displayed
on the right. The is
the window currently in the
foreground, and also the default
window loaded if you do not select
another. Select the window that you'd
like to inspect and click Load View
Hierarchy. The Layout View will be
loaded. You can then load the Pixel
Perfect View by clicking the second
icon at the bottom-left of the window.
If you've navigated to a different
window on the device, press Refresh
Windows to refresh the list of
available windows on the right.
Now with the help of this tool, it shows the content is in Frame Layout, pls refer this output given by this tool.
Is it possible to detach the design preview from the code view, for use on the second monitor?
If you don't like Split view (vertical or horizontal) you can put the code view portion on another monitor by using the Code Inspector (Window -> Code Inspector, or F10 on Windows, I think CMD+F10 on Mac ). The Code Inspector is a floating panel that you can place wherever you want. If you make changes in the Code Inspector you need to refresh the document, (F5 on Win and Mac) so that the updates will migrate over.
Beyond that you'll need to live with it unless you stretch Dreamweaver such that it spans 2 monitors and then use split view and adjust the split point.
When you working on localhost try this:
Monitor 1: dw code view
Monitor 2: Firefox with Auto Reload Add-on (Reload page automatically when selected local files are changed.)
You will have better results...
Well, simple situation. Is it possible to detect if a user has a dual monitor setup from a web application?
If this is possible, is it possible to open a child browser page on this second monitor, so the new window doesn't overlap the old one?
Reason why I ask: I'm working on a web application and at home I have a dual-monitor system. When I go to the administration part of this site, I want it to open in a new browser, preferably on the other desktop. Of course, I could just click, then drag the new window, but doing this automatically seems more fun. :-)
Don't think JavaScript has the proper functions for this. How about Java itself?
I don't think you'll be able to directly detect a dual monitor setup, but you can probably make a good guess by looking at their screen resolution, using javascript's screen.width and screen.height. If the ratio of the width to the height is 8:3, its a good chance they have 2 standard 4:3 monitors side by side. You can do a similar calculation for 16:9 or 16:10.
Using maxpower47's suggestion about resolution, the only way to display the page on the other monitor would be to open a popup, and use the options to set the top, right, width and height properties so the window will appear on the second monitor in a decent size.
Here is a link that describes how to do this: http://www.netmechanic.com/news/vol4/javascript_no7.htm