PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] Suche jemand der mir einen Bug in LiteStep fixed (Zahle dafuer)


Siegfried
2008-01-07, 13:49:49
ich hab son problem mit litestep ner windows shell
manche windows werden nicht korrekt minimiert
details hier http://www.siegfried.it/prvfiles/litestep.htm
den sourcecode gibts hier http://www.lsdev.org/lib/exe/fetch.php?id=lsdev%3Adownloads&cache=cache&media=lsdev:downloads:ls-0.24.7-src.zip
ordner "lsapi" datei "bangs.cpp" nehme ich an
das verbuggte command ist "!MinimizeWindows"
//
// BangMinimizeWindows(HWND hCaller, LPCSTR pszArgs)
//
void BangMinimizeWindows(HWND /* hCaller */, LPCSTR /* pszArgs */)
{
EnumWindows(WindowsEnumProc, (LPARAM)SW_MINIMIZE);
}


alternativ suche ich nach irgendeiner anderen methode unter litestep alle windows im foreground korrekt zu minimieren

weis nicht wieviel ihr dafuer haben wollt
macht einfach nen preisvorschlag

Sephiroth
2008-01-07, 15:39:59
//
// CALLBACK WindowsEnumProc(HWND hWnd, LPARAM lParam)
//
BOOL CALLBACK WindowsEnumProc(HWND hWnd, LPARAM lParam)
{
/* Based off of Jugg's task.dll */
if (IsWindow(hWnd))
{
if ((GetWindowLong(hWnd, GWL_USERDATA) != magicDWord) &&
(!(GetWindowLong(hWnd, GWL_STYLE) & WS_CHILD) &&
(GetWindowLong(hWnd, GWL_STYLE) & WS_VISIBLE)) &&
(!(GetWindowLong(hWnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW)))
{
ShowWindow(hWnd, (UINT)lParam);
}
}
return TRUE;
}

Wenn du das rot Markierte entfernst (und neu kompilierst), sollten schon einige Fenster mehr minimiert werden. (Kind-Fenster und solche, die nicht in der Taskbar zu sehen sind)

Siegfried
2008-01-07, 23:13:46
cool ich werds mal probieren
(sobald ich rausfinde wie man die source kompiliert X-()
edit: kann jetzt alles kompilieren

Siegfried
2008-01-08, 09:46:43
achso nee
das problem mit !minimizewindows is nich dass zu wenig fenster minimiert werden
das eigentliche problem ist manche werden nicht korrekt minimiert

mit !tasksminimize aus der dll tasks (http://www.modules.ls-universe.info/modules/source/tasks-0.96.1-src.zip) funktioniert das einwandfrei
nur damit werden dann wiederrum programme die z.b. im tray sind nicht minimiert

Siegfried
2008-01-09, 06:11:36
die funktionierende minimize funktion in tasks sieht so aus:

void TasksMinimize(HWND caller, const char * args)
{
if(g_bTasksDisabled) return;
if(IsDockWindowValid())
for (int i=0;i<numTasks;i++)
if(!tasks[i].IsIconic)
SendMessage(tasks[i].appHandle, WM_SYSCOMMAND, (WPARAM)SC_MINIMIZE, 0);
return;
UNREFERENCED_PARAMETER(caller);
UNREFERENCED_PARAMETER(args);
}

void TasksMaximize(HWND caller, const char * args)
{
if(g_bTasksDisabled) return;
if(IsDockWindowValid())
for (int i=0;i<numTasks;i++)
SendMessage(tasks[i].appHandle, WM_SYSCOMMAND, (WPARAM)SC_MAXIMIZE, 0);
return;
UNREFERENCED_PARAMETER(caller);
UNREFERENCED_PARAMETER(args);
aber das minimiert halt nur alles inner taskbar...

Siegfried
2008-01-11, 01:27:44
zahle 50eur

Obligaron
2008-01-11, 23:37:51
Wie wäre es dann einfach mit:


//
// CALLBACK WindowsEnumProc(HWND hWnd, LPARAM lParam)
//
BOOL CALLBACK WindowsEnumProc(HWND hWnd, LPARAM lParam)
{
/* Based off of Jugg's task.dll */
if (IsWindow(hWnd))
{
if ((GetWindowLong(hWnd, GWL_USERDATA) != magicDWord) &&
(!(GetWindowLong(hWnd, GWL_STYLE) & WS_CHILD) &&
(GetWindowLong(hWnd, GWL_STYLE) & WS_VISIBLE)) &&
(!(GetWindowLong(hWnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW)))
{
PostMessage(hWnd,WM_SYSCOMMAND,SC_MINIMIZE,0);
}
}
return TRUE;
}


?

Funktioniert bei mir zumindest mit Teamspeak

Siegfried
2008-01-12, 00:55:24
//
// CALLBACK WindowsEnumProc(HWND hWnd, LPARAM lParam)
//
BOOL CALLBACK WindowsEnumProc(HWND hWnd, LPARAM lParam)
{
/* Based off of Jugg's task.dll */
if (IsWindow(hWnd))
{
if ((GetWindowLong(hWnd, GWL_USERDATA) != magicDWord) &&
(!(GetWindowLong(hWnd, GWL_STYLE) & WS_CHILD) &&
(GetWindowLong(hWnd, GWL_STYLE) & WS_VISIBLE)) &&
(!(GetWindowLong(hWnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW)))
{
ShowWindow(hWnd, (UINT)lParam);
}
}
return TRUE;
}

Wenn du das rot Markierte entfernst (und neu kompilierst), sollten schon einige Fenster mehr minimiert werden. (Kind-Fenster und solche, die nicht in der Taskbar zu sehen sind)
das ist sehr nice weil es sogar winamp minimiert
allerdings stockt das ganze system wenn ich damit winamp (das im tray sitzt) minimiere X-(
ist winamp bereits minimiert funktioniert es soweit bei meinen programmen

edit: nevermind das ist ein winamp problem
funktioniert einwandfrei

edit2: der samurize config editor dreht damit total durch

Wie wäre es dann einfach mit:


//
// CALLBACK WindowsEnumProc(HWND hWnd, LPARAM lParam)
//
BOOL CALLBACK WindowsEnumProc(HWND hWnd, LPARAM lParam)
{
/* Based off of Jugg's task.dll */
if (IsWindow(hWnd))
{
if ((GetWindowLong(hWnd, GWL_USERDATA) != magicDWord) &&
(!(GetWindowLong(hWnd, GWL_STYLE) & WS_CHILD) &&
(GetWindowLong(hWnd, GWL_STYLE) & WS_VISIBLE)) &&
(!(GetWindowLong(hWnd, GWL_EXSTYLE) & WS_EX_TOOLWINDOW)))
{
PostMessage(hWnd,WM_SYSCOMMAND,SC_MINIMIZE,0);
}
}
return TRUE;
}


?

Funktioniert bei mir zumindest mit Teamspeak
hm ziemlich coole sache
minimiert jetzt problem-programme wie teamspeak und nbitor korrekt
nur tvgenial bugged komischerweise noch
es wird zwar minimiert aber wenn man es wieder maximieren will ueber die taskbar ist es bugged

edit: kann dir bei interesse meine portable tvgenial version schicken
edit: biet-o-matic minimiert damit auch nicht korrekt

Siegfried
2008-01-13, 05:33:17
edit: vorerst kein interesse mehr an einem fix
warte erstmal auf ne antwort wegen anderen litestep bugs...

Gast
2008-01-14, 13:10:00
Man möge mir bitte verzeihen, aber möcht nicht unnötig einen neuen Thread starten.

Läuft LiteStep unter Vista?
Wollt ne Shell für XP machen, nur jetzt Arbeit für ca 1 Jahr investieren und dann per neuen PC auf Vista umsteigen und die LiteStep Shell in die Tonne hauen möcht ich auch net gern....

Siegfried
2008-01-15, 05:20:06
ja litestep laeuft ganz normal unter vista