Taskbar Extensions (Win7)
Übersicht

![]() |
JimBobBalouBetreff: Taskbar Extensions (Win7) |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die neue Taskleiste von Windows 7 kann auch den Ladefortschritt (z.b. beim Kopieren von Dateien, aber auch bei vielen 3rd-party Programmen) als grünen Balken im Programmbutton anzeigen. Ich habe auch schnell die passende Seite auf MSDN gefunden, aber wie soll man das in BB umsetzen ![]() ![]() ![]() Link zum MSDN-Artikel |
||
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wäre sicher möglich, indem man eine DLL schreibt. Ich schau mir das mal an. | ||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Jo0oker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo, ist ja gut dokumenteirt.
Benutzt einfach die WinAPI und schreib dir dann nen C++ Wrapper plus userlib. lg Jo0oker |
||
Tehadon, das kostenlose 3D RPG
www.tehadon.de http://www.blitzforum.de/worklogs/14/ Das Abenteuer wird beginnen! |
![]() |
JimBobBalou |
![]() Antworten mit Zitat ![]() |
---|---|---|
Jo0oker hat Folgendes geschrieben: ...schreib dir dann nen C++ Wrapper plus userlib...
Wie macht man das??? |
||
![]() |
Pummelie |
![]() Antworten mit Zitat ![]() |
---|---|---|
C++ lernen, und dann einen Userlib in darin schreiben, die die Befehle an die Win API übergibt.
Oder du fragst jemanden der das kann. |
||
It's done when it's done. |
![]() |
JimBobBalou |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich blick da nich durch
WIE MACHT MAN DAS, WARUM GEHT DAS SO NICHT? ![]() Code: [AUSKLAPPEN] #if defined(_MSC_VER)
#include <windows.h> #define DLL extern "C" __declspec(dllexport) #else #define DLL #endif DLL int TaskbarProgressState (int hwnd, int flag) { int SetProgressState(int hwnd, int flags); } DLL int TaskbarProgressValue (int hwnd, int completed, int total) { int SetProgressValue(int hwnd, int completed, int total); } |
||
![]() |
Starwar |
![]() Antworten mit Zitat ![]() |
---|---|---|
VisualC++ von der MS-Website installieren, (Visual)C++ lernen, die Windows API verstehen und dann das benutzen.
MFG |
||
![]() |
Hip Teen |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mal ganz ehrlich, das kann man doch auch "nativ" in BB machen, oder?
Hab kein Win 7 drauf, deswegen kann ich das nicht umsetzen, aber es müsste doch reichen, ne passende Decls zu schreiben für die explorerframe.dll für die beiden Methoden. Wenn man sich das anschaut: Zitat: HRESULT SetProgressState(
HWND hwnd, TBPFLAG tbpFlags ); HWND kann man ja rausfinden, bei B+ ging das easy, aber ich bin mir sicher, dass es auch bei den anderen Versionen es ein Weg gab. TBPFLAG ist ne Konstante in Form einer Hex Zahl, nach 2 Sek. google hat man die passende Werte raus. Genauso bei der anderen: Zitat: HRESULT SetProgressValue(
HWND hwnd, ULONGLONG ullCompleted, ULONGLONG ullTotal ); HWND wie oben, ULONGLONG kann man entweder direkt als Integer übergeben oder wenn das nicht funktioniert bastelt man sich das aus einer Bank (hab jetzt auf die schnelle nicht gefunden, wie genau so ein ULONGLONG aussieht). Wo ist jetzt die Hürde, das in BB zu machen? |
||
Spruch der Woche: "Ahh, ein neues Gesicht?!" - "Nein, das hab ich schon länger" |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Die Methoden stehen nicht in der DLL ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Goodjee |
![]() Antworten mit Zitat ![]() |
---|---|---|
laut msdn tun sie das sehr wohl http://msdn.microsoft.com/de-d...85%29.aspx | ||
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/ |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
Laut Dependency Walker und Blitz3D tun sie es nicht.
Edit: Ich hab's gerade mit einer DLL versucht, seltsamerweise gibt es eine MAV in BB, obwohl GetLastError eine 0 zurückgibt und der Fortschritt angezeigt wird ![]() |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
![]() |
Silver_Knee |
![]() Antworten mit Zitat ![]() |
---|---|---|
wirst den Stack nicht gescheit säubern weils ne Methode ist... | ||
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Es handelt sich da um COM-Objekte, die erst erstellt werden müssen. -> http://msdn.microsoft.com/en-u...S.85).aspx | ||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
![]() |
Nicdel |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ChristianK: Das mache ich schon.
In BlitzMax bekomme ich keinen Fehler, die DLL und ein Beispiel ist im Archiv hochgeladen ( ![]() In BB bekomme ich immernoch eine MAV ohne Grund. Der jetztige Code (VC++ 2010): Code: [AUSKLAPPEN] BBDECL void ShowProgress(HWND hwnd, int completed, int total, int state)
{ ITaskbarList3 *tl3 = NULL; HRESULT hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, __uuidof(ITaskbarList3), (void **)&tl3); hr = tl3->HrInit(); hr = tl3->SetProgressValue(hwnd, completed, total); hr = tl3->SetProgressState(hwnd, (TBPFLAG) state); } |
||
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7 |
ChristianK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Du musst die Funktion als __stdcall deklarieren, sonst wird, wie Silver_Knee schon gesagt hat, der Stack nicht aufgeräumt.
Code: [AUSKLAPPEN] BBDECL void __stdcall ShowProgress(HWND hwnd, int completed, int total, int state)
Wäre auch ganz gut, wenn du die CRT statisch linkst. Hat ja nicht jeder VS 2010 installiert. ![]() |
||
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group