Jump to content

vhanla

Member
  • Posts

    47
  • Joined

  • Last visited

Everything posted by vhanla

  1. Here is an update of this app (thanks to Vigil for handing me out his source code) Photobooth for Windows 7 Up until now I decided to update it for Windows 7. New features: - Support for Windows 7 win-tab (Flip3D) - Added a shadow border - Replaced WebBrowser (IE Component) with Flash OCX Requirements: - Latest Adobe Flash Activex installed (that one for Internet Explorer not for Firefox, Opera or any other browser) - Some patience NOTE: Video recording is not supported and will not unless the original author (Karthik Tharavaad) updates its work. Get it here: Photobooth 4W7 Mirror: at Deviantart Hope you like it
  2. This is a code-snippet in Delphi that enumerates windows. function EnumWindowsFunc(wHandle:THandle; List:TStringList):boolean; stdcall; var caption: array[0..256]of char; dwStyle,dwexStyle: longint; begin dwStyle:=GetWindowLongPtr(wHandle,GWL_STYLE); dwexStyle:=GetWindowLongPtr(wHandle,GWL_EXSTYLE); if (dwStyle and WS_VISIBLE = WS_VISIBLE) and (GetWindowText(wHandle,caption,sizeof(caption)-1)<>0) and (GetParent(wHandle)=0) and (whandle<>application.Handle){exclude me} then begin if (dwexStyle and WS_EX_APPWINDOW=WS_EX_APPWINDOW) and (GetWindow(wHandle,GW_OWNER)=whandle) then List.Add(caption) else if (dwexStyle and WS_EX_TOOLWINDOW =0 ) and (GetWindow(wHandle,GW_OWNER)=0) then List.Add(caption); end; result:=true; end; I guess TaskSwitchXP has something similar in its source code http://www.ntwind.com/software/taskswitchxp/download.html Maybe it can be implemented on XWindowsDock so it can list only those apps that are shown in the taskbar. Because, XWindowsDock list those apps that lays, for example, in systray. Or those that aren't shown in the taskbar, like : - Windows Desktop Gadgets - Switcher (a macosx expose clone for Windows Vista/7) - Win+Tab sometimes is listed too (Windows Manager) BTW: I'm still trying to port my old docklets
  3. Plugin Manager reads installation path from registry HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\XWindows Dock_is1\ A string value contains InstallLocation, there you must change it to your current XWindowsDock path. However, if you are trying to use it as a portable app, at least you need to create that entry into windows registry. Specially if you're not planning to install it, because the installation creates those entries in the windows registry. Create a file with extension .reg and fill it with this text Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\XWindows Dock_is1] "InstallLocation"="X:\\XWindowsDock\\" Change InstallLocation to the correct XWindowsDock path [ALTERNATIVE] Well, to automate it and instead of editing the path, maybe this batch file could help, just create a file with extension either .bat o .cmd in the XWD folder with the following text: @echo Installing into registry for this path: %CD% SET _xwd=%CD% SET _xwdpath=%_xwd:\=\\% echo %_xwdpath% (@echo Windows Registry Editor Version 5.00 echo. @echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\XWindows Dock_is1] @echo "InstallLocation"="%_xwdpath%")> Register.reg regedit.exe /s %CD%\Register.reg del Register.reg This will create the .reg file and merge. And there it is, only a double click on the new batch file will update the windows registry. However, LOCAL_MACHINE path requires Admin rights if I'm not wrong.
  4. Wow!, this is awesome, thanks BOBAH13 Question: Is there any way to blacklist running apps? 'cause it is showing the Windows Desktop Gadgets which is not shown in the Windows taskbar, Switcher and others. Other than that, I'm enjoying this great dock. BTW: I'm reading the API, I hope I will start porting some of my old docklets for XWindowsDock 5.6+ Best regards!.
  5. Since I installed Flash Player 10.1 beta it didn't work the OCX (Activex) with this application. But yesterday Adobe Labs published a new version (10.1 beta 3) which seems it fixes the OCX failure, and now I'm using it again. http://labs.adobe.com/technologies/flashplayer10/
  6. This is pure gold, I just want to say, awesome. Congrats and best regards.
  7. Yeah, OpenGL is very slow on Win7, I was trying to continu with my projects based on that and they are very slow, and also I don't know why Aero deactivates while running those OpenGL apps. At least that was my experience on Win7.
  8. I happy to read this post. XWD II I can't wait to see the first pre-alpha, beta or even source code Best Regards!
  9. There is the older versions link in the first post, you can find in those files a previous Hook DLL.dll file. However, we don't know if they are 100% compatible, the only one who knows that is Komalo.
  10. Thanks, Komalo, good job. . . . However.... I don't know if it happens to you guys too AVG Free says "Hook DLL.dll" is a Trojan Backdoor Generic11.AJFF So, I just used Hook DLL.dll from version 0.2 and works until now.
  11. Wow! You are impressive. Maybe you should change the license to a proper one, a software related one like GPL, Mozilla, MIT, etc... because I guess Creative Commons is mainly for non software, I mean, songs, poetry, drawing, articles, etc... correct me if I'm wrong. And each source code file must be referenced to the license. I wish I could help, but since I'm still learning I guess I won't do much. However, I will try as much as I can. Regards!
  12. Finally, I could compile it I'm so excited, thanks again. However, I removed Parameters.pas because it uses a TXPanelMenu and TXPanel component which I couldn't find.
  13. Oh man!! This is great, I can't believe it... thanks so much
  14. No luck here, maybe I need to install codecs or something else. It is an empty Windows 7, no programs yet... I'm back with XP
  15. Now I updated my video card driver, because I was using the default VGA driver but, it has the same error. I thought "anyway... I can use FingerXP " but it also has a kernelbase.dll fault, maybe "XP" letters are there for some reason... he he
  16. I tried to install in Windows 7 Ultimate version 6.1 (build 7260) but it shows the following message: The module "ExplorerCoverFlow.dll" failed to load. Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files. The specified module could not be found. I added dx8vb.dll to the dir and worked the regsvr32, but after that I activated the CoverFlow on the Explorer and the following message appears: Run-time error '-2147418105(80010007)': Automation error: The callee(server[not server application])is not available and disappeared; all connections are invalid. The call may have executed. OK And it closes explorer.exe and each time I try to execute the Windows Explorer, it shows : Windows Explorer has Stopped Working Windows is checking for a solution to the problem... So I just uninstalled (manually) it to make the explorer work again. Finally I tried to install using Setup.exe and asked me to replace the dll which were older than the windows7 ones, of course I didn't allow them to change with those older ones. Installed and the same error hap
  17. After Stand By state while Explorer Cover Flow running, it shows and error (alert) message: Error '-2147418105(80010007)' en tiempo de ejecución: Error de Automatización OK The error message is shown in Spanish language even tough I have an English version of Windows XP.
  18. I suppose those registry values for settings are string values, then this exe can help you modify them. Not really a flashy exe However, I don't see any changes in my XP SP3 PC by modifying those values. I re-downloaded to see if this works with the new one but it doesn't, I just post here to see if it's of any help to you guys. ECFSettings.zip
  19. I didn't installed with installer, I just extracted 6 files from the Cabinet file: - ExplorerCoverFlow.dll - loading.gif - unknown.png - 19.reg (I renamed to ECF_Install.reg so Install would call it) - Install.cmd - Uninstall.cmd And run Install.cmd After that I restarted the explorer window. Works great, but I've seen that some video files appear in a different position without voice and too fast playback, maybe it needs an specific codec... I have CBR and CBZ files which are comics, and actually are RAR and ZIP files with pictures inside and it shows their cover, love it BTW: It's very slow, on my dual core laptop with XP SP3. However, I love it. Keep up the good work. Maybe you can take a look at the PictureFlow algorithm http://code.google.com/p/pictureflow/ I noticed that it has keystrokes delayed so it animates according to the queue, i.e. if I press right key many times and fast the animation seems to keep those keystrokes in a queue and is not responsive
  20. I have Kaspersky 7 and it detects as Trojan-Spy.Win32.Delf.cb, http://www.2-spyware.com/remove-trojanspy-win32-delf.html It injects in each process and the antivirus blocks on each process, even the open dialogs, save dialogs... even if it is not a trojan is very annoying because i have to be giving permissions to each process and not only the dll hook
  21. Hi, I did a minmax hook to apply GenieFXLib and it works. However, there are some applications I like, that restores and minimizes some applications, for example, WinExposé (it does that to minimized windows) among others. And when this happens the hook does what it is meant to do (in this case, it interferes). 1: I guess those windows are with alpha set to 0 and restored, so I need to find out that in order to not apply the effect, and some other Layered windows, because some of them have their rect different and since PrintWindow returns blank I think a bitblt screenshot must be done. 2: In GenieFXLib I'm trying to replace the original window by hiding it and showing the effect window, but I've seen it occurs a little blink, I guess I have to first put the replacement over it and hide the original after that. But I couldn't do that and what I tried to do is to change the alpha (not minimize because my hook triggers again) to 0 of the window for example after the shrinking animation (before the minimization animation) and it doesn't work. I found that after modifying the width of the effect window on geniefx procedure, changing another window's alpha value doesn't work. I don't know why. Edit This was tested on XP only. http://codigobit.net/download/TaskFX.zip
  22. Some other projects about genie effect this is with Qt4 http://labs.trolltech.com/blogs/2008/12/15/genie-fx/ and this other one with Flex http://www.madeinflex.com/2008/01/29/efect...o-genie-effect/ (this one in spanish) Maybe they're of someone's interest BTW: I took code from the first one :P EDIT I don't know how you're dealing with the other directions. I was trying to do the following: 1st make a copy of the bitmap but rotated 90º degrees and change coordinates of sl,sr,st,sb,el,er,et,eb to match the rotation 2nd proceed normally and rotate back the modified buffer to show with LWSetImage Maybe there is a better approach procedure RoR( src,dst: pointer; step, count, starting:cardinal);stdcall;assembler; asm pushad mov ecx, count mov edi, dst mov esi, src mov ebx, step dec ebx sub ebx, starting add ebx, ebx add ebx, ebx xor edx, edx @lll: mov eax,[esi+edx] mov [edi+ebx],eax add ebx, step add ebx, step add ebx, step add ebx, step dec ecx add edx, 4 cmp ecx,0 jnz @lll popad end; procedure RoL( src,dst: pointer; step, count, starting:cardinal);stdcall;assembler; asm pushad mov ecx, count mov edi, dst mov esi, src mov ebx, starting add ebx, ebx add ebx, ebx xor edx, edx @lll: mov eax,[esi+edx] mov [edi+ebx],eax add ebx, step add ebx, step add ebx, step add ebx, step dec ecx add edx, 4 cmp ecx,0 jnz @lll popad end; procedure CopyBuffer(dst, src: pointer; count:cardinal);stdcall;assembler; asm pushad cld mov ecx, count mov esi, src mov edi, dst rep movsd popad end; { sl : start left sr: start right st: start top sb: start bottom el: end left er: end right et: end top eb: end bottom pgrap: pointer to bitmap all relative to screen size } procedure TForm1.GenieFX(pbmp: pgrap;sl,sr,st,sb,el,er,et,eb:integer); const DURATION = 1000; // animation duration in milliseconds var i, j : Integer; buffer,bmp, dmp:tbitmap; bl, br : array[0..5000] of Integer; // bordes al, at, ar, ab : Integer; sk, ek : Double; tick_s, tick_t : Cardinal; t : Double; y_ofs : Integer; cbl, cbr : Integer; buf: pbyte; begin //bmp is the manipulation buffer bmp:=tbitmap.create; bmp.PixelFormat:=pf32bit; dmp:=tbitmap.create; dmp.PixelFormat:=pf32bit; buffer:=tbitmap.Create; if (et>sb) then begin al := Min (sl, el); at := Min (st, et); ar := Max (sr, er); ab := Max (sb, eb); Left := al; Top := at; Width := ar-al; Height := ab-at; dec (sl, al); dec (st, at); dec (sr, al); dec (sb, at); dec (el, al); dec (et, at); dec (er, al); dec (eb, at); bmp.Height:=sb-st; bmp.Width:=sr-sl; bmp.Canvas.Draw(0,0,pbmp^); buffer.Height := ab - at; buffer.Width := ar - al; // Force all bitmaps to 32 bits pbmp^.PixelFormat := pf32bit; buffer.PixelFormat := pf32bit; // Bordes... de otra manera. ~Matonga For i := st To et do begin sk := -Cos((et - i) / (et - st) * PI)*0.5+0.5; ek := 1.0 - sk; bl[i] := Round(sl * sk + el * ek); br[i] := Round(sr * sk + er * ek); end; //Animamos el encogido tick_s := GetTickCount; tick_t := DURATION div 4; While True do begin t := (GetTickCount - tick_s) / tick_t; If t > 1.0 Then Break; For i := 0 To buffer.Height-1 do FillRGB32 (buffer.Scanline[i]^, buffer.Width); sk := Cos(t * PI)*0.5+0.5; ek := 1.0 - sk; For j := 0 To bmp.Height-1 do begin cbl := Round(sl * sk + bl[j+st] * ek); cbr := Round(sr * sk + br[j+st] * ek); If (st+j >= 0) And (st+j < buffer.Height) Then begin LineBlit (bmp.Scanline[j], buffer.Scanline[st+j], bmp.Width, buffer.Width, cbl, cbr-cbl); end; end; LWSetImage (self, buffer); end; {ahora dibujamos frames de bajada} inc (tick_s, tick_t); tick_t := DURATION *3 div 4; While True do begin t := (GetTickCount - tick_s) / tick_t; If t > 1.0 Then Break; For i := 0 To buffer.Height-1 do FillRGB32 (buffer.Scanline[i]^, buffer.Width); y_ofs := st + Round((et-st)*t); For j := 0 To bmp.Height-1 do If (y_ofs+j >= st) And (y_ofs+j < et) And (y_ofs+j >= 0) And (y_ofs+j < buffer.Height) Then begin LineBlit (bmp.Scanline[j], buffer.Scanline[y_ofs+j], bmp.Width, buffer.Width, bl[y_ofs+j], br[y_ofs+j]-bl[y_ofs+j]); end; LWSetImage (self, buffer); end; end /////////////////////////////// LEFT //////////////////////////////////////////// else if (er<sl) and (et<sb) then begin //animate to left //so we need to make it relative to the rotation Left := el; i:=eb; eb:=screen.Width-el; el:=et; et:=screen.Width-er; er:=i; i:=sb; sb:=screen.Width-sl; sl:=st; st:=screen.Width-sr; sr:=i; al := Min (sl, el); at := Min (st, et); ar := Max (sr, er); ab := Max (sb, eb); Top := al; Width := ab-at; Height := ar-al; dec (sl, al); dec (st, at); dec (sr, al); dec (sb, at); dec (el, al); dec (et, at); dec (er, al); dec (eb, at); bmp.Height:=sb-st; bmp.Width:=sr-sl; buffer.Height := ab - at; buffer.Width := ar - al; // Force all bitmaps to 32 bits pbmp^.PixelFormat := pf32bit; buffer.PixelFormat := pf32bit; dmp.Height:=buffer.Width; dmp.Width:=buffer.Height; GetMem(buf,dmp.width*dmp.Height*4); // rotamos la imagen /rotate image for i:=0 to pbmp^.Height-1 do RoL(pbmp^.ScanLine[i],buf,pbmp^.Height,pbmp^.Width,i); for i:=0 to bmp.Height-1 do CopyBuffer(bmp.scanline[i],pointer(integer(buf)+i*bmp.Width*4),bmp.width); // Bordes... de otra manera. ~Matonga For i := st To et do begin sk := -Cos((et - i) / (et - st) * PI)*0.5+0.5; ek := 1.0 - sk; bl[i] := Round(sl * sk + el * ek); br[i] := Round(sr * sk + er * ek); end; //Animamos el encogido tick_s := GetTickCount; tick_t := DURATION div 4; While True do begin t := (GetTickCount - tick_s) / tick_t; If t > 1.0 Then Break; For i := 0 To buffer.Height-1 do FillRGB32 (buffer.Scanline[i]^, buffer.Width); sk := Cos(t * PI)*0.5+0.5; ek := 1.0 - sk; For j := 0 To bmp.Height-1 do begin cbl := Round(sl * sk + bl[j+st] * ek); cbr := Round(sr * sk + br[j+st] * ek); If (st+j >= 0) And (st+j < buffer.Height) Then begin LineBlit (bmp.Scanline[j], buffer.Scanline[st+j], bmp.Width, buffer.Width, cbl, cbr-cbl); end; end; // rotamos la imagen for i:=0 to buffer.Height-1 do RoR(buffer.ScanLine[i],buf,buffer.Height,buffer.Width,i); for i:=0 to dmp.Height-1 do CopyBuffer(dmp.scanline[i],pointer(integer(buf)+i*dmp.Width*4),dmp.width); LWSetImage (self, dmp); end; {ahora dibujamos frames de bajada} inc (tick_s, tick_t); tick_t := DURATION *3 div 4; While True do begin t := (GetTickCount - tick_s) / tick_t; If t > 1.0 Then Break; For i := 0 To buffer.Height-1 do FillRGB32 (buffer.Scanline[i]^, buffer.Width); y_ofs := st + Round((et-st)*t); For j := 0 To bmp.Height-1 do If (y_ofs+j >= st) And (y_ofs+j < et) And (y_ofs+j >= 0) And (y_ofs+j < buffer.Height) Then begin LineBlit (bmp.Scanline[j], buffer.Scanline[y_ofs+j], bmp.Width, buffer.Width, bl[y_ofs+j], br[y_ofs+j]-bl[y_ofs+j]); end; // rotamos la imagen for i:=0 to buffer.Height-1 do RoR(buffer.ScanLine[i],buf,buffer.Height,buffer.Width,i); for i:=0 to dmp.Height-1 do CopyBuffer(dmp.scanline[i],pointer(integer(buf)+i*dmp.Width*4),dmp.width); LWSetImage (self, dmp); end; freemem(buf); end else if (el>sr) and (et<sb) then begin // animate to right end else if eb<st then begin //animate to top end else begin //?? end; bmp.free; dmp.free; buffer.Free; end; geniefxlibLeft_Bottom.zip BTW: How can it be possible to animate many at the same time? Like this video shows http://is.gd/WhrF EDIT Ha ha ha, I didn't notice the picture mirrored, to fix that, after RoL call it should be CopyBuffer(bmp.scanline[bmp.Height-1-i],pointer(integer(buf)+i*bmp.Width*4),bmp.width); EDIT (Back home after a bored day at the university) I forgot to upload this four side animation approach I did this morning geniefxlib3.zip
  23. Actually the latest Library (geniefx) was completely rewritten by Matonga, so the author becomes him, I gave an idea, tried to make it, but very slow. That's from my XWD Systray Docklet, I can't test on Vista 64bit, because I don't have it (OS and Hardware).
  24. Wow! Matonga, this is awesome, it's even faster than RKGenieEffectDX animation. I've seen some crashes, I suppose it is due to starting bottom is greater than ending bottom, a minor problem. Some ideas: - It can have a different ending, for example, animate as a sand clock for fill a docklet - warp animation at ending - the limit is your imagination. ___________________________________________________ BTW: Here goes the Dock sample that uses this library, it is just a mess code, I do this for fun Source Code included, so anyone can improve, port to other languages, etc... XDock.zip
  25. Actually that was a sample, and since I'm not good at graphics manipulation, it is very slow... BTW: I also need to know how to use RKLauncher's RKGenieEffectDX plugin if it's possible. However, I have written it to use it as a library Source Code and Sample included http://codigobit.net/download/geniefxlib.rar Messy code, hope you understand It only works from top to bottom minimization's animation Some questions: - I am using a form with a transparent color and painting on its canvas. Is it faster if I use a layered window with alpha image instead? - I'm using StretchBlt to draw line by line, is it faster to use scanlines, or gdiplus lockbits? I suppose yes, but I don't know how to do that, I mean a faster scanline stretch algorithm. BTW: I also included a tasks dock binary (based on Matonga's mirror dock sample) as an example, to give and idea.
×
×
  • Create New...