|
Thanks. I did.
In final I'll plan to used this code in the embedded application with hardware ethernet chip. It supports only a little count of sockets and I have to use a single socket for some sequence of tasks (DHCP, PING, SNTP etc).
|
|
|
|
|
I'm having trouble with my system and checked system files, only to find that the file wininet.dll in some unpronouncable folder is corrupted and couldn't be repaired.
So I went to find that folder location, starting with Windows/Winsxs, only to find thousands of subfolders! Many of them appear to contain system dlls, and apparently lots of different versions of the same dlls.
I could understand the need for keeping different versions of some system files - but 20K folders of files???
Is it normal to have so many? Or may that be another symptom, or even the cause of the problems I'm having? Could this be the work of a virus or other kind of malware? Or is that the result of Windows working 'normally' for a couple of years?
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
|
|
|
|
|
I this this is fairly normal - I have just over 15,000 subfolders in mine, and I installed from scratch about a year ago. I was reading someone ranting about this the other day, but I can't remember where now.
I did find this though: Clean Up the WinSxS Folder | Microsoft Docs[^]
|
|
|
|
|
Thanks, that article was rather informative - beyond the topic of the title.
GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)
|
|
|
|
|
Looks like you have rediscovered DLL Hell[^]. It's a real thing and still a problem in 2020 with no end in sight.
Best Wishes,
-David Delaune
|
|
|
|
|
What I mean is simple but a Google search on the above sentence returns everything that could possibly be senseless about it with the worst at the top.
Grammatically the "install" is the subject. And by the subject I mean nothing to do with "running" the direct object "program" but "installing" it; that's the active transitivity.
Compatibility mode as applied to an executable is determined by the OS on which one's running that executable, in this case, an installer. And I know there's an issue with what gets installed (doesn't "run").
The reason I ask, is because apparently Windows 10 and even Windows 8.1 and Windows 7 can elevate privileges for an installer ... or it can't. And I don't know what the criteria for automatic raising of this security level is nor do I really care. So, adding "best practices" into the mix, and obviously to avoid all the experimentation that has to be done as well as the cleaning up of any clean installing, a laborious tedium I can assure you, does anybody have any experience with this?
This is not a joke. I'm just trying to cut to the chase by avoiding confusion about whether the FAIL is Type I and Type II.
|
|
|
|
|
I have no idea what you're really asking. Perhaps if you described the problem you're having?
You could run an installer in Compatibility Mode but it would pointless. Hell, Compatibility Mode isn't really even used any more unless the software you're running is ridiculously old.
Elevation is only required for installers because of the locations they write to in the file system and the registry. For security reasons today, normal don't have admin access to their machines. They're not able to write to protected parts of the file system, like C:\Windows, or anything under HKEY_LOCAL_MACHINE in the registry. Even Admins, by default, don't run anything using their admin privileges. You have to explicitly launch the app "as administrator", or the app has to request elevation from Windows, and then you're prompted to OK the requested operation.
|
|
|
|
|
But here's the rub. And why I mentioned Win 7. I actually succeeded in installing a piece of hardware after an uninstallation/clean-install but reinstall using compatibility mode Windows 7 SP2. This (running the setup.exe, to unconfuse everybody) after complete run of program (post install with only Administrative rights) FAIL several times.
This after a tip I found, and like you screwed my eyes up at, which is telling me that a driver still needed to be manually dropped into the WOWSys folder. Sounds to me like the old Office disconnect OLEDB 32-bit/64-bit(not really 64-bit yet) deal-from-the-bottom-of-the-deck where the 64-bit library doesn't get registered or used without going to regsrver32 first.
Still doesn't make sense. But like Sergey's understanding of QA questions sometimes, I think not understanding is what help turns out to be. As long somethings works. Then the cheapest answer is the one I understand.
modified 15-Aug-20 16:07pm.
|
|
|
|
|
That made no sense at all. I have no idea what app/driver pack/whatever you're having a problem with.
|
|
|
|
|
RedDk wrote: driver still needed to be manually dropped into the WOWSys folder. Sounds like an error in the installer. As soon as you find yourself having to drop 64 bit files into the 32 bit system folder (or vice versa) ... it's probably best to not use the software.
Best Wishes,
-David Delaune
|
|
|
|
|
From day one (two years it's seems now), the Computer Management console Device Manager treeview, under my named computer has displayed in the fourth-from-the-top position, "Display adapters" ... by the looks of it, a wide screen monitor ... BUT there's a slight interrupted edge beneath the LCD screen light-blue color which seems to be yellow in color.
The fact of the matter is that it looks like one of those YIELD signs (black/yellow triangle with exclamation mark) is lining up behind the monitor artwork slightly to the right but showing up front because the triangle is not completely obscured by that artwork.
So there's a yellow base-of-a-triangle peeking out beneath the "display". Before I ask why anyone would want to arrange these two objects in close proximity like this to indicate "Display Adapters" (a road sign and a monitor), I know that when a device has problems loading it's driver, the standard icon for YIELD, the yellow caution road sign is the symbol of choice.
I have devices that have icons in the tree that are wholly obstructed by that YIELD overlay and I know why they're that way. But a device that has no problems displays the artwork of an iconic wide display but with a yellow road sign behind it?
modified 16-May-20 18:59pm.
|
|
|
|
|
There's a monitor image with a display adapter card in front of it. The "yellow" part you see is the gold edge connector of the display adapter.
|
|
|
|
|
No joke?
That's all I needed to know. I was about to use the Windows Accessories magnifier. Or repost this in QA tagged as Win10 (but it seems like everything there is REALLY computer stuff).
Installing a new OS is always an adventure. It takes me years to actually run through all the procedures that get a new one up and in a state of "being" and I think the real reason is that my expectations are always changing.
Unlike sleuthing engine knocks using a half-inch-tipped screwdriver with the butt-end pressed to the opening of an ear, these shattered cam followers are not what they used to seem.
|
|
|
|
|
The File Explorer can preview any file for which a preview function is set up in the registry (for that file extension).
If I want the same functionality in my application: displaying for preview any file for which a viewer is defined in a windows pane in my application, is there an API that lets me utilize the File Explorer preview function? Or will I have to reinvent the wheel by writing my own code for searching the registry and activating the previewer specified there?
I would prefer to have it available in C# and WPF compatible, but I guess that is over-optimistic, so I guess it will be C/C++.
|
|
|
|
|
|
You can do it in C#, and yes, you have to do your own registry searches. I can't remember if it had to call down into the Win32 API to do it or not. Unfortunately, the code I wrote (three years ago) that does this is on a network in a building that is closed right now so I can't take a peek and refresh my memory. It wasn't too hard, as I recall, but you do need to roll your own.
Be wary of strong drink. It can make you shoot at tax collectors - and miss.
Lazarus Long, "Time Enough For Love" by Robert A. Heinlein
|
|
|
|
|
Hello,
First of all, sorry for my English ^^
I'm blocked a problem with sending messages with SendInput and touch screens
Here is the detail of the problem :
I have an application that recovers touch inputs in Raw with "RegisterRawInputDevices"
Then I translate these entries into gestures such as a pan, scale in/out etc ...
Then, using gestures, I send mouse / keyboard messages with SendInput
The problem is that there is an system on the Windows side that does much the same thing, and it conflicts with my application.
For example, when I make a movement with 2 fingers on the touch screen, I send a mouse movement message with the average of the 2 points as position (see image)
<a href="https://ibb.co/DRxPfXp">ex1 — ImgBB</a>
The cursor is therefore positioned between my 2 fingers (green) but from time to time the cursor jumps to one of the 2 fingers (red)
It seems that the problem is related to <a href="https://docs.microsoft.com/fr-fr/windows/uwp/design/input/pen-and-stylus-interactions">wispv
I tried the technique indicate <a href="https://stackoverflow.com/questions/5120890/how-to-turn-off-all-touch-input-at-application-window-or-control-level/5128991#5128991">here</a>.
The TouchGate registry no longer exists in "Ordinateur\HKEY_CURRENT_USER\Software\Microsoft\Wisp\Touch"
But it is present here : Ordinateur\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Wisp\Touch
If I set the TouchGate value to 0 and restart the computer, this partly solves my problem because Windows no longer adds messages and I still have touch inputs from the Raw
The problem is that this technique requires a restart of the computer and that it is applied on the whole system whereas in the ideal I would only like to remove this layer for certain applications
I obviously tried to add this value in HKEY_CURRENT_USER and also tested the technique of updating windows with "SendMessageTimeout" and the message "WM_SETTINGCHANGE" but without success
Summary of my request
How to remove the system (wisp) or others multi touch overlay of Windows, dynamically (without restarting the machine)
|
|
|
|
|
Hi,
Member 14225757 wrote: How to remove the system (wisp) or others multi touch overlay of Windows, dynamically (without restarting the machine) I believe that TouchGate is implemented as a low altitude HID filter driver. The operating system will want to reboot to remove it from the chain. Even if you used the SetupAPI to remove it... a reboot is still recommeneded.
Best Wishes,
-David Delaune
|
|
|
|
|
Hi, everybody
I understand winsock has gethostbyname for this. But I need to debug for embedded application and first I try the code on Windows. Here is a my code:
sockaddr_in dns_addr;
int dns_size = sizeof(dns_addr);
ZeroMemory(&dns_addr, dns_size);
dns_addr.sin_family = AF_INET;
dns_addr.sin_port = htons(53);
dns_addr.sin_addr.s_addr = inet_addr("8.8.8.8");
SOCKET out = socket(AF_INET, SOCK_DGRAM, 0);
char msg[] = {
0x12, 0x34, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03,
0x77, 0x77, 0x77, 0x03,
0x74, 0x75, 0x74, 0x02,
0x62, 0x79, 0x00,
0x00, 0x01, 0x00, 0x01 };
int msg_size = sizeof(msg);
int iSendOk = sendto(out, msg, msg_size, 0, (sockaddr*)&dns_addr, dns_size);
if (iSendOk != SOCKET_ERROR)
{
char bufstr[100];
sockaddr_in dest_addr;
int dest_addr_size = sizeof(dest_addr);
int iReceived = recvfrom(out, bufstr, 100, 0,(sockaddr*)&dest_addr, &dest_addr_size);
}
closesocket(out);
And this code freezes when recvfrom function is execution. The function is executed with an infinite loop and never returns. What do I do wrong?
|
|
|
|
|
sockaddr_in dns_addr;
int dns_size = sizeof(dns_addr);
What's the "size" of the "uninitialized" dns_addr?
What other values can iSendOk take if it isn't SOCKET_ERROR?
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it.
― Confucian Analects: Rules of Confucius about his food
|
|
|
|
|
You're right. Getting size of structure better after initialization. But in my cause this structure has constant length and her size will be same after initialization.
Second, I check other returning values but I cut this code for this example. When I'm debugging this code sendto function return 28. This value is equal to the length of sent data.
|
|
|
|
|
It is most likely that the remote device is not responding to the datagram. If there is no data to be read from the socket then recvfrom will block forever, or until the connection is broken. You should use a non-blocking method to check whether any data has been received and use some form of timed loop to allow the program to abort the activity after a fixed time period. See recvfrom function (winsock.h) - Win32 apps | Microsoft Docs[^] for full details.
|
|
|
|
|
I tried to specify the reading size to 1 byte instead 100 from example. But I got same result.
|
|
|
|
|
Of course you did. The socket is still waiting for a response from the remote address.
|
|
|
|
|
Does it mean that the DNS server does not respond if there is not a single byte in response? But why?
|
|
|
|
|