16/10/12 21:05
Thejuster
Sempre in merito ad un mio progettino ho un piccolo problema.
Quando provo a minimizzare un processo mi si scombina l'intero desktop.
non sò a cosa è dovuto questo problema ma vi posto il codice.
forse riuscite a capire il problema dove sta....
Se non volete riavviare il computer vi consiglio di non provare questo codice..
In pratica mostrebbe tutti i processi in delle finestrelle rettangolari
permettendo così di vedere ogni processo o funzione di windows sul desktop.
tanto da poter spostare anche la finestre dello Start di Windows.
Lo scopo del codice era quello di minimizzare tutte le finestre e applicazioni aperte.
ma e successo l'opposto..
eppure qui credo che microsoft si esprime benissimo
msdn.microsoft.com/it-it/library/windows/desktop/…
Quando provo a minimizzare un processo mi si scombina l'intero desktop.
non sò a cosa è dovuto questo problema ma vi posto il codice.
forse riuscite a capire il problema dove sta....
[DllImport("user32.dll", CharSet = CharSet.Auto)] static extern bool AppendMenu(IntPtr hMenu, MenuFlags uFlags, uint uIDNewItem, string lpNewItem); [Flags] public enum MenuFlags : uint { MF_STRING = 0, MF_BYPOSITION = 0x400, MF_SEPARATOR = 0x800, MF_REMOVE = 0x1000, } private const int SW_SHOWNORMAL = 1; private const int SW_SHOWMINIMIZED = 2; private const int SW_SHOWMAXIMIZED = 3; private const int SW_MINIMIZE = 6; private const int SW_RESTORE = 9; //Carico la libreria per agire sulle finestre [DllImport("user32.dll")] static extern int ShowWindow(IntPtr hWnd, int nCmdShow); const int SW_MINIMIZED = 6; //Costante con valore 6 ovvero Minimizza //Delegato per l'enumerazione dei thread delegate bool EnumThreadDelegate(IntPtr hWnd, IntPtr lParam); [DllImport("user32.dll")] static extern bool EnumThreadWindows(int dwThreadId, EnumThreadDelegate lpfn, IntPtr lParam); static IEnumerable<IntPtr> EnumerateProcessWindowHandles(int processID) { List<IntPtr> handles = new List<IntPtr>(); EnumThreadDelegate addWindowHandle = delegate(IntPtr hWnd, IntPtr param) { handles.Add(hWnd); return true; }; //Recupero tutti i processi ordinandoli e recuperando il valore dell'handle foreach (ProcessThread thread in Process.GetProcessById(processID).Threads) EnumThreadWindows(thread.Id, addWindowHandle, IntPtr.Zero); return handles; } //Al click del pulsante //Qui succede lo scatafascio foreach (IntPtr handle in EnumerateProcessWindowHandles(Process.GetProcessesByName("explorer")[0].Id)) ShowWindow(handle, SW_MINIMIZED);
Se non volete riavviare il computer vi consiglio di non provare questo codice..
In pratica mostrebbe tutti i processi in delle finestrelle rettangolari
permettendo così di vedere ogni processo o funzione di windows sul desktop.
tanto da poter spostare anche la finestre dello Start di Windows.
Lo scopo del codice era quello di minimizzare tutte le finestre e applicazioni aperte.
ma e successo l'opposto..
eppure qui credo che microsoft si esprime benissimo
msdn.microsoft.com/it-it/library/windows/desktop/…
Ultima modifica effettuata da Thejuster 16/10/12 21:08
mire.forumfree.it/ - Mire Engine
C# UI Designer
C# UI Designer