|
H/PC Elite Posts: | 702 |
Location: | Europe | Status: | |
| Unfortunately, the startup program that initializes the GPU is also the one that makes the task bar vanish. Is there perhaps a way to invoke it again? There's definitely an ARM program for CE that makes the task bar reappear, but is there something like that for x86? |
|
|
|
H/PC Elite Posts: | 702 |
Location: | Europe | Status: | |
| Managed to cobble together a C# program that invokes it again.. but the task bar isn't interactable now o_o |
|
|
|
H/PC Elite Posts: | 702 |
Location: | Europe | Status: | |
| It's strange, I've made it appear again and it works fine except for the fact that it doesn't react to clicks at all. I'm using ShowWindow, SetWindowPos and SetForegroundWindow, but it remains uninteractable. Does anyone have an idea as to what could be blocking input to the task bar, and how I could enable it again? |
|
|
|
Subscribers H/PC Vanguard Posts: | 3,678 |
Location: | Japan | Status: | |
| |
|
|
|
H/PC Elite Posts: | 702 |
Location: | Europe | Status: | |
| Thank you! I tried things from all of these but it doesn't seem to be helping sadly
Here's the code I'm using:
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace DeviceApplication2
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[DllImport("coredll.dll", EntryPoint = "FindWindowW"]
private static extern IntPtr FindWindowCE(string lpClassName, string lpWindowName);
[DllImport("coredll.dll", SetLastError = true)]
///[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetWindowPos(IntPtr hWnd, int hWndInsertAfter, int x, int y, int cx, int cy, uint uFlags);
public const int SWP_SHOWWINDOW = 0x0040;
[DllImport("coredll.dll", SetLastError = true)]
static extern bool ShowWindow(IntPtr hWnd, int nCmdShow);
[DllImport("coredll.dll", SetLastError = true)]
static extern bool SetForegroundWindow(IntPtr hWnd);
[MTAThread]
static void Main()
{
IntPtr handle;
handle = FindWindowCE("HHTaskBar", null);
ShowWindow(handle, 9);
SetWindowPos(handle, -1, 0, 550, 720, 26, SWP_SHOWWINDOW);
SetForegroundWindow(handle);
}
}
}
Could I be forgetting something that actually makes the task bar interactable? Please help |
|
|
|
Subscribers H/PC Guru Posts: | 5,728 |
Location: | United States | Status: | |
| Did stingraze’s third link work? I believe that one showed a registry key to restore it. But obviously if the program is blocking that it probably wouldn’t work then ? Just thinking aloud |
|
|
|
H/PC Elite Posts: | 702 |
Location: | Europe | Status: | |
| Quote torch - 2022-10-20 3:36 PM
Did stingraze’s third link work? I believe that one showed a registry key to restore it. But obviously if the program is blocking that it probably wouldn’t work then ? Just thinking aloud
Those keys are fine and the program doesn't change them, though I think I have another clue: https://www.hjgode.de/wp/2010/09/02/mobile-development-yet-another-k...
Something about disabling clicks to the start menu |
|
|
|
H/PC Elite Posts: | 702 |
Location: | Europe | Status: | |
| I think the program might be unhooking the task bar from explorer.exe.. there must be a way to hook it back, somehow...
Anyone have any ideas perhaps..? I'm rather new to CE programming |
|
|
|
Subscribers H/PC Guru Posts: | 5,728 |
Location: | United States | Status: | |
| Are those HP Thin Clients that run CE or maybe even those Wyse ones hard to find where you’re located ? Like the t5540 I have ? That’s why I like unlocked devices more since I don’t have to do any work to get them working. Of course I understand if they’re prohibitively pricey over there. I’m not sure. |
|
|
|
H/PC Elite Posts: | 702 |
Location: | Europe | Status: | |
| I got it to work!! I just had to kill and reopen explorer.exe. So now I'm making a C# programm that runs out GPU initializer, and then kills and reopens explorer |
|
|
|
H/PC Elite Posts: | 702 |
Location: | Europe | Status: | |
| Quote torch - 2022-10-20 4:20 PM
Are those HP Thin Clients that run CE or maybe even those Wyse ones hard to find where you’re located ? Like the t5540 I have ? That’s why I like unlocked devices more since I don’t have to do any work to get them working. Of course I understand if they’re prohibitively pricey over there. I’m not sure.
They're alright over here! I'll admit, I kind of like the challenge of unlocking a CE device so I went for the locked down TV box, but I'm quite happy with my progress |
|
|
|
Administrator H/PC Oracle Posts: | 17,981 |
Location: | United Kingdom | Status: | |
| Don't you just notify the window that it's active again?
https://learn.microsoft.com/en-us/previous-versions/ms960332(v=msdn.10)
taskbarhWnd = FindWindow(TEXT("HHTaskBar"), NULL);
if (taskbarhWnd != NULL) {
EnableWindow(taskbarhWnd, true);
} |
|
|
|
H/PC Elite Posts: | 702 |
Location: | Europe | Status: | |
| Okay. I screwed it up. I put my program that closes explorer.exe in the autostart directory and now explorer is being killed before I can do anything |
|
|
|
Administrator H/PC Oracle Posts: | 17,981 |
Location: | United Kingdom | Status: | |
| Put a task manager app in the startup folder and use it to spawn a new explorer process. |
|
|
|
H/PC Elite Posts: | 702 |
Location: | Europe | Status: | |
| Quote C:Amie - 2022-10-20 6:20 PM
Put a task manager app in the startup folder and use it to spawn a new explorer process.
I can't access anything at all as I only have access to the startup folder through the unit itself. It also boots from that drive.. I guess I'll have to dismantle the drive and get a CF adapter to delete the autostart entry |
|
|