commit 436586667360b8e9849d97f05c79c2c664312e11 Author: jdg Date: Wed Sep 1 18:12:09 2021 +0200 first commit (2004-10-31) diff --git a/bin/LaunchIt.tds b/bin/LaunchIt.tds new file mode 100644 index 0000000..fa6bac2 Binary files /dev/null and b/bin/LaunchIt.tds differ diff --git a/bin/bg.JPG b/bin/bg.JPG new file mode 100644 index 0000000..4cad89c Binary files /dev/null and b/bin/bg.JPG differ diff --git a/bin/cfg.ini b/bin/cfg.ini new file mode 100644 index 0000000..761508a --- /dev/null +++ b/bin/cfg.ini @@ -0,0 +1,270 @@ +[opciones] +titulo=BootCD! +background=bg.JPG +;rootPATH=C:\Documents and Settings\jd\Mis documentos\bootdisk\peBuilder\output +rootPATH=C:\Documents and Settings\jd\Mis documentos\bootdisk\bootCD\main_files +;rootPATH= + +[carpetas] +c0=Equipos nuevos +c1=Antivirus y Troyanos +c2=Diagnostico +c3=Recuperación +c4=Recuperación - PWD +c5=Grabadora CD y DVD +c6=Redes e Internet +c7=Utilidades +c8=VNC - Remote Control +c9=misc + +[c0] +p0_app =WinRar 3.40 Version Corporativa +p0_cmd =\EXTRAS\Compresores\WinRar 3.40.exe +p0_icon =\EXTRAS\Compresores\WinRar 3.40.exe +p0_descr =WinRAR (Descompresor de RAR,ZIP,ACE,LZH,LHA,TAR,GZ, y muchos mas.) + +p1_app =Nero 6.3.x.x +p1_cmd =\EXTRAS\Grabadora CD y DVD\NERO\NERO6300.exe +p1_icon =\EXTRAS\Grabadora CD y DVD\NERO\NERO6300.exe +p1_descr =Programa para la grabacion de CDs y DVD's + +p2_app =Parche Español Nero 6.3.x.x +p2_cmd =\EXTRAS\Grabadora CD y DVD\NERO\NBR6300ESP.exe +p2_icon =\EXTRAS\Grabadora CD y DVD\NERO\NBR6300ESP.exe +p2_descr =Parche de idioma ESPAÑOL para Nero + +p3_app =DVD Shrink +p3_cmd =\EXTRAS\Grabadora CD y DVD\dvdshrink.exe +p3_icon =\EXTRAS\Grabadora CD y DVD\dvdshrink.exe +p3_descr =Utilidad para copiar DVDs + +p4_app =Power DVD +p4_cmd =\EXTRAS\Video\POWERDVD_5_0\setup.exe +p4_icon =\EXTRAS\Video\POWERDVD_5_0\powerdvd.ico +p4_descr =Utilidad para reproducir DVDs + +p5_app =DivX 5.05 Bundle +p5_cmd =\EXTRAS\Video\DIVX505BUNDLE.EXE +p5_icon =\EXTRAS\Video\DIVX505BUNDLE.EXE +p5_descr =Codecs DivX + +p6_app =BS Player +p6_cmd =\EXTRAS\Video\BSPlayer.EXE +p6_icon =\EXTRAS\Video\BSPlayer.EXE +p6_descr =BS Player + +p7_app =MoreTV +p7_cmd =\EXTRAS\Video\MoreTV\MORETV_352ESP_WILMA.ZIP +p7_icon =\EXTRAS\Video\MoreTV\MoreTV.ico +p7_descr =BS Player + + + + + + + + + + +[c1] +p0_app =Actualizar AntiVirus +p0_cmd =\programs\mcafee\sdatupdater.cmd +p0_icon =\programs\mcafee\instalar.ico +p0_descr =Descarga de internet la última version del SuperDAT y la coloca en el directorio %TEMP% + +p1_app =Ejecutar AntiVirus +p1_cmd =\Programs\mcafee\instalar.cmd +p1_icon =\Programs\mcafee\scangui.exe +p1_descr =Desempaqueta el archivo SuperDAT y ejecuta el interfaz gráfico + +p2_app =ToolBar Cop +p2_cmd =\Programs\ToolbarCop\ToolbarCop.exe +p2_icon =\Programs\ToolbarCop\ToolbarCop.exe +p2_descr =Limpia las barras de herramientas, BHO y otras porquerias del Internet Explorer + +p3_app =SpyBot Search and Destroy +p3_cmd =\programs\spybot\spybot.exe +p3_icon =\programs\spybot\spybot.exe +p3_descr =Elimina los SpyWare que se instalan con programas o al navegar por internet. + +[c2] +p0_app =Everest (Aida32) +p0_cmd =\Programs\everest\everest.exe +p0_icon =\Programs\everest\everest.exe +p0_descr =Audita el hardware y software de la máquina. Incluye tambien un par de benchmark. + +p1_app =Bart's Stuff Test +p1_cmd =\Programs\bst5\bst5.exe +p1_icon =\Programs\bst5\bst5.exe +p1_descr =Programa que trata de "estrezar" al equipo, para probar su estabilidad. + +p2_app =Unknown Devices +p2_cmd =\Programs\UDevices\UnknownDevices.exe +p2_icon =\Programs\UDevices\UnknownDevices.exe +p2_descr =Informa sobre los dispositivos conectados a nuestro equipo. (Recuerda actualizar la lista de dispositivos en: http://members.datafast.net.au/dft0802/downloads.htm ). + + +[c3] +p0_app =Nemo +p0_cmd =\Programs\Nemo\Nemo.exe +p0_icon =\Programs\Nemo\Nemo.exe +p0_descr =Recuperacion básica de archivos + +p1_app =GetDataBack fot NTFS +p1_cmd =\Programs\gdbnt\gdbnt.exe +p1_icon =\Programs\gdbnt\gdbnt.exe +p1_descr =Recuperación de discos duros muertos, con NTFS + +p2_app =DiskExplorer fot NTFS +p2_cmd =\Programs\dentfs\NtExplorer.exe +p2_icon =\Programs\dentfs\NtExplorer.exe +p2_descr =Explorador de discos duros muertos, con NTFS. (Herramienta forense) + +p3_app =GetDataBack fot NTFS +p3_cmd =\Programs\gdb\gdb.exe +p3_icon =\Programs\gdb\gdb.exe +p3_descr =Recuperación de discos duros muertos, con FAT32 + +p4_app =DiskExplorer fot FAT32 +p4_cmd =\Programs\defat\diskexpl.exe +p4_icon =\Programs\defat\diskexpl.exe +p4_descr =Explorador de discos duros muertos, con FAT32. (Herramienta forense) + +p5_app =HD Host +p5_cmd =\Programs\hdhost\hdhost.exe +p5_icon =\Programs\hdhost\hdhost.exe +p5_descr =Permite conectar el disco duro, para recuperaciones a traves de la red. + +p6_app =Raid +p6_cmd =\Programs\raid\raid.exe +p6_icon =\Programs\raid\raid.exe +p6_descr =Recuperacion de unidades en RAID. (Intenta siempre usar primero tu bios RAID). + +[c4] +p0_app =Discover It! +p0_cmd =\Programs\Password Recovery\DiscoverIt.exe +p0_icon =\Programs\Password Recovery\DiscoverIt.exe +p0_descr =Revela los password bajo asteriscos + +p1_app =Mail PassView +p1_cmd =\Programs\Password Recovery\mailpv.exe +p1_icon =\Programs\Password Recovery\mailpv.exe +p1_descr =Revela los password del correo electrónico + +p2_app =Messenger Pass +p2_cmd =\Programs\Password Recovery\mspass.exe +p2_icon =\Programs\Password Recovery\mspass.exe +p2_descr =Revela los password del messenger + +p3_app =Dial Up Pass +p3_cmd =\Programs\Password Recovery\dialupass.exe +p3_icon =\Programs\Password Recovery\dialupass.exe +p3_descr =Revela los password de las conexiones de acceso telefonico a redes. + +p4_app =Protected Storage PassView +p4_cmd =\Programs\Password Recovery\pspv.exe +p4_icon =\Programs\Password Recovery\pspv.exe +p4_descr =Revela los password en cache + + + + +[c5] +p0_app =Nero Burnings Rom +p0_cmd =\Programs\Nero\Nero.cmd +p0_icon =\Programs\Nero\Nero.exe +p0_descr =Programa de grabacion de CDs y DVDs. (Arranca sobre este CD y prepara la cache en el directorio %TEMP%). + +[c6] +p0_app =Analyzer +p0_cmd =\Programs\Analyzer\Analyzer.exe +p0_icon =\Programs\Analyzer\Analyzer.exe +p0_descr =Monitor de red. (Necesitas tener instalado WinPCAP). + +p1_app =GNA +p1_cmd =\Programs\GNA\GNA.exe +p1_icon =\Programs\GNA\GNA.exe +p1_descr =Monitor de red. (Necesitas tener instalado WinPCAP). + +p2_app =WINSOCKXPFIX +p2_cmd =\Programs\ShowTraf\ShowTraf.exe +p2_icon =\Programs\ShowTraf\ShowTraf.exe +p2_descr =Monitor de red. (Necesitas tener instalado WinPCAP). + +p3_app =Winsock XP Fix +p3_cmd =\Programs\WINSOCKXPFIX\WINSOCKXPFIX.exe +p3_icon =\Programs\WINSOCKXPFIX\WINSOCKXPFIX.exe +p3_descr =ReInstala la pila TCP/IP. Muy util cuando no funciona la red. + +p4_app =Scanner de RED +p4_cmd =\Programs\superscan\scanner.exe +p4_icon =\Programs\superscan\scanner.exe +p4_descr =Scanner de RED + + +[c7] +p0_app =SciTE +p0_cmd =\Programs\SciTe\SciTe.exe +p0_icon =\Programs\SciTe\SciTe.exe +p0_descr =SciTE Editor multiLenguaje con coloreado de sintaxis. + +p1_app =ViceVersa Pro +p1_cmd =\Programs\ViceVersa\ViceVersa.exe +p1_icon =\Programs\ViceVersa\ViceVersa.exe +p1_descr =Utilidad para la sincronizacion de directorios + +p2_app =Treesize +p2_cmd =\Programs\Treesize\Treesize.exe +p2_icon =\Programs\Treesize\Treesize.exe +p2_descr =Muestra el arbol de directorios por Tamaño. + +p3_app =Hex Editor +p3_cmd =\Programs\HEdit\HEdit2.exe +p3_icon =\Programs\HEdit\HEdit2.exe +p3_descr =Editor Hexadecimal + + +[c8] +p0_app =MS Remote Desktop Client +p0_cmd =\windows\system32\mstsc.exe +p0_icon =\windows\system32\mstsc.exe +p0_descr =MS Remote Desktop Client + +p1_app =PuttY (SSH_telnet) +p1_cmd =\Programs\putty\putty.exe +p1_icon =\Programs\putty\putty.exe +p1_descr =SSH Telnet + +p2_app =VNC viewer +p2_cmd =\Programs\vncviewer\vncviewer.exe +p2_icon =\Programs\vncviewer\vncviewer.exe +p2_descr =VNC viewer + + + +[c9] +p0_app =Driver Llave USB (Azul) +p0_cmd =\EXTRAS\Drivers\USB_DISK\SETUP.EXE +p0_icon =\EXTRAS\Drivers\USB_DISK\SETUP.EXE +p0_descr =Instala los drivers de la llave USB 128Mb AZUL (para Win98) + +p1_app =Driver Llave USB (Azul) +p1_cmd =\EXTRAS\Drivers\USB_DISK\MFORMAT\MFORMAT.EXE +p1_icon =\EXTRAS\Drivers\USB_DISK\MFORMAT\MFORMAT.EXE +p1_descr =Utilidad para formatear la llave + +p2_app =Codificador +p2_cmd =\EXTRAS\Drivers\USB_DISK\MFORMAT\KEY\PASSID.EXE +p2_icon =\EXTRAS\Drivers\USB_DISK\MFORMAT\KEY\PASSID.EXE +p2_descr =Utilidad para fijar un password a la llave + +p3_app =Parche WinRar 3.x +p3_cmd =\EXTRAS\Compresores\winrar.3.x-universal.patch.exe +p3_icon =\EXTRAS\Compresores\winrar.3.x-universal.patch.exe +p3_descr =Parche para WinRar 3.x (Por favor, compra el softwar original, son solo 30€). + +p4_app =Serial Keys +p4_cmd =\EXTRAS\keys\SerialKeys.cmd +p4_icon =\EXTRAS\keys\SerialKeys.txt +p4_descr =Listado de Serials mas usados. diff --git a/src/LaunchIt.bpr b/src/LaunchIt.bpr new file mode 100644 index 0000000..006810d --- /dev/null +++ b/src/LaunchIt.bpr @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=3082 +CodePage=1252 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[Excluded Packages] +c:\archivos de programa\borland\cbuilder6\Bin\DCLIB60.bpl=InterBase Data Access Components +c:\archivos de programa\borland\cbuilder6\Bin\dclqrt60.bpl=QuickReport Components +c:\archivos de programa\borland\cbuilder6\Bin\dcltee60.bpl=TeeChart Components +c:\archivos de programa\borland\cbuilder6\Bin\dcldss60.bpl=Borland Decision Cube Components +c:\archivos de programa\borland\cbuilder6\Bin\dcltqr60.bpl=TeeChart for QuickReport Components +c:\archivos de programa\borland\cbuilder6\Bin\DBWEBXPRT.BPL=Borland Web Wizard Package +c:\archivos de programa\borland\cbuilder6\Bin\DCLNMF60.bpl=NetMasters Fastnet Tools +c:\archivos de programa\borland\cbuilder6\Bin\dclwebsnap60.bpl=Borland WebSnap Components +c:\archivos de programa\borland\cbuilder6\Bin\dclindy60.bpl=Internet Direct (Indy) for D6 Property and Component Editors +C:\programacion\VCLs\Bpl\ZCore.bpl=Zeos Core Classes and Intefaces +C:\programacion\VCLs\Bpl\ZParseSql.bpl=Zeos SQL Parsing Classes and Intefaces +C:\programacion\VCLs\Bpl\ZPlain.bpl=Zeos Plain Database API +C:\programacion\VCLs\Bpl\ZDbc.bpl=Zeos Low Level Database API +C:\programacion\VCLs\Bpl\ZComponent.bpl=Zeos Database Components +C:\programacion\VCLs\Bpl\CabForCB.bpl=cabforbuilder +c:\archivos de programa\borland\cbuilder6\Bin\dclite60.bpl=Borland Integrated Translation Environment + +[HistoryLists\hlIncludePath] +Count=1 +Item0=C:\Archivos de programa\Borland\CBuilder6\Projects;C:\Documents and Settings\jd\Mis documentos\CBuilder\LaunchIt!\src;$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=C:\Archivos de programa\Borland\CBuilder6\Projects;C:\Documents and Settings\jd\Mis documentos\CBuilder\LaunchIt!\src;$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[HistoryLists\hlConditionals] +Count=1 +Item0=_DEBUG + +[HistoryLists\hlIntOutputDir] +Count=1 +Item0=..\obj + +[HistoryLists\hlFinalOutputDir] +Count=1 +Item0=..\bin + +[HistoryLists\hIBPIOutputDir] +Count=1 +Item0=..\obj + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +Launcher= +UseLauncher=0 +DebugCWD= +HostApplication= +RemoteHost= +RemotePath= +RemoteLauncher= +RemoteCWD= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 +LinkCGLIB=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + + \ No newline at end of file diff --git a/src/LaunchIt.cpp b/src/LaunchIt.cpp new file mode 100644 index 0000000..fef6b8c --- /dev/null +++ b/src/LaunchIt.cpp @@ -0,0 +1,33 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +//--------------------------------------------------------------------------- +USEFORM("main.cpp", Form1); +//--------------------------------------------------------------------------- +WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) +{ + try + { + Application->Initialize(); + Application->CreateForm(__classid(TForm1), &Form1); + Application->Run(); + } + catch (Exception &exception) + { + Application->ShowException(&exception); + } + catch (...) + { + try + { + throw Exception(""); + } + catch (Exception &exception) + { + Application->ShowException(&exception); + } + } + return 0; +} +//--------------------------------------------------------------------------- diff --git a/src/LaunchIt.res b/src/LaunchIt.res new file mode 100644 index 0000000..8869ff9 Binary files /dev/null and b/src/LaunchIt.res differ diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..502a746 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,314 @@ +//--------------------------------------------------------------------------- + +#include +#include +#pragma hdrstop + +#include "main.h" +//--------------------------------------------------------------------------- +#pragma package(smart_init) +#pragma resource "*.dfm" +TForm1 *Form1; +//--------------------------------------------------------------------------- +__fastcall TForm1::TForm1(TComponent* Owner) + : TForm(Owner) +{ + AnsiString aux; + selectedFolder=NULL; + anclarRaton=false; + +TListColumns *ColumnInfo; +ColumnInfo = new TListColumns(ListView1); // Create column headers +ListView1->Columns->Add(); +ListView1->Columns->Items[0]->Caption = "Aplicación"; +ListView1->Columns->Items[0]->Width = 200; +ListView1->Columns->Add(); +ListView1->Columns->Items[1]->Caption = "cmd"; +ListView1->Columns->Items[1]->Width = 150; +ListView1->Columns->Add(); +ListView1->Columns->Items[2]->Caption = "icon"; +ListView1->Columns->Items[2]->Width = 32; +ListView1->Columns->Add(); +ListView1->Columns->Items[3]->Caption = "descr"; +ListView1->Columns->Items[3]->Width = 300; + + + TIniFile *pIniFile = new TIniFile(ExtractFilePath(Application->ExeName)+"cfg.ini"); + rootPath = pIniFile->ReadString("opciones","rootPATH",""); + if ( rootPath.IsEmpty() ) rootPath = ExtractFileDrive( Application->ExeName ); + pFondoAPP = NULL; + aux = pIniFile->ReadString("opciones","background",""); + if ( !aux.IsEmpty() ) + { + aux = ExtractFilePath(Application->ExeName)+AnsiString("\\")+aux; + if ( FileExists( aux ) ) + { + pFondoAPP = new TPicture(); + pFondoAPP->LoadFromFile(aux); + } + } + + Label3->Caption = pIniFile->ReadString("opciones","titulo",""); + for(int i=0; CreateFolder(i,pIniFile->ReadString("carpetas",AnsiString("c")+i,"")); i++); + delete pIniFile; + + LoadFolder(0); +} +//--------------------------------------------------------------------------- +bool __fastcall TForm1::CreateFolder(int idx,AnsiString name) +{ + TLabel *lb; + + if ( name.IsEmpty() ) return false; + + lb = new TLabel(this); + lb->Tag = idx; + + lb->OnMouseLeave = LabelsMouseLeave; + lb->OnMouseMove = LabelsMouseMove; + lb->OnClick = LabelsClick; + + lb->Caption = name; + + lb->Alignment = taCenter; + + lb->AutoSize = false; + lb->Height = 18; + lb->Left = 8; + lb->Top = 56 + (lb->Height+2)*idx; + + this->InsertControl(lb); + if ( !selectedFolder ) selectedFolder=lb; + + if ( selectedFolder==lb ) + { + lb->Width = 168; + lb->Color=clWhite; + } else { + lb->Width = 166; + lb->Color=clSilver; + } + + return true; +} +//--------------------------------------------------------------------------- +void __fastcall TForm1::LabelsMouseMove(TObject *Sender, TShiftState Shift, + int X, int Y) +{ + ((TLabel *)Sender)->Color=clSkyBlue; +} +//--------------------------------------------------------------------------- +void __fastcall TForm1::LabelsMouseLeave(TObject *Sender) +{ + if ( selectedFolder==((TLabel*)Sender) ) + { + ((TLabel *)Sender)->Color=clWhite; + ((TLabel *)Sender)->Width = 168; + } else { + ((TLabel *)Sender)->Color=clSilver; + ((TLabel *)Sender)->Width = 166; + } +} +//--------------------------------------------------------------------------- +void __fastcall TForm1::LabelsClick(TObject *Sender) +{ + selectedFolder->Width = 166; + selectedFolder->Color = clSilver; + selectedFolder=((TLabel*)Sender); + selectedFolder->Color = clWhite; + selectedFolder->Width = 168; + + LoadFolder( ((TLabel*)Sender)->Tag ); +} +//--------------------------------------------------------------------------- +void __fastcall TForm1::WMNCHitTest(TMessage &Msg) +{ +TForm::Dispatch(&Msg); +/* +if (Msg.Result == HTCLIENT) Msg.Result = HTCAPTION; +*/ +} +//--------------------------------------------------------------------------- +//--------------------------------------------------------------------------- +bool __fastcall TForm1::LoadFolder(int idx) +{ + TSHFileInfo FileInfo; + THandle ImageListHandle; + TIcon *aIcon; + + int i,j; + AnsiString app,icon; + + ListView1->Items->BeginUpdate(); // Efficiency + + ListView1->Items->Clear(); + ImageList1->Clear(); + ImageList1->ShareImages = false; + ImageList1->Width=GetSystemMetrics(SM_CXICON); + ImageList1->Height=GetSystemMetrics(SM_CYICON); + + + i=0; + TIniFile *pIniFile = new TIniFile(ExtractFilePath(Application->ExeName)+"cfg.ini"); + while(1) + { + app = pIniFile->ReadString(AnsiString("c")+idx,AnsiString("p")+AnsiString(i)+"_app",""); + if ( app.IsEmpty() ) break; + + ListView1->Items->Add(); // Add a new item + j = ListView1->Items->Count - 1; // get the new items index + + ListView1->Items->Item[j]->Caption=app; // set the item text + ListView1->Items->Item[j]->SubItems->Add( rootPath + pIniFile->ReadString(AnsiString("c")+idx,AnsiString("p")+AnsiString(i)+"_cmd","") ); + icon = rootPath + pIniFile->ReadString(AnsiString("c")+idx,AnsiString("p")+AnsiString(i)+"_icon",""); + ListView1->Items->Item[j]->SubItems->Add( icon ); + // Metemos el icono dentro de nuestra ListView... + memset(&FileInfo, 0, sizeof(FileInfo)); +/* + ImageListHandle = SHGetFileInfo( (char *)icon.data(), 0, &FileInfo, sizeof(FileInfo), + // we want an icon in LARGE + SHGFI_LARGEICON | SHGFI_ICON | SHGFI_ADDOVERLAYS + ); +*/ + WORD lpiIcon; +/* +SHSTDAPI_(DWORD_PTR) SHGetFileInfoA(LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags); +//----------------- + +HICON ExtractAssociatedIcon( HINSTANCE hInst, + LPTSTR lpIconPath, + LPWORD lpiIcon +); +*/ + aIcon = new TIcon(); + aIcon->Handle = ExtractAssociatedIcon(this,(char *)icon.data(),&lpiIcon ); + //FileInfo.hIcon; + aIcon->Transparent = true; + + ListView1->Items->Item[j]->ImageIndex = ImageList1->AddIcon(aIcon);; + + ListView1->Items->Item[j]->SubItems->Add( pIniFile->ReadString(AnsiString("c")+idx,AnsiString("p")+AnsiString(i)+"_descr","") ); +// ListView1->Items->Item[j]->Update(); + + i++; + } + ListView1->LargeImages = ImageList1; + + ListView1->Items->EndUpdate(); + + delete pIniFile; + + return true; +} +//--------------------------------------------------------------------------- + +void __fastcall TForm1::ListView1DblClick(TObject *Sender) +{ + HINSTANCE HApp; + + // Ejecutamos el ITEM + TListItem *lItem; + lItem = ((TListView *)Sender)->Selected; + + +// PROCESS_INFORMATION pInfo; + STARTUPINFO sInfo; + + sInfo.cb = sizeof(STARTUPINFO); + sInfo.lpReserved = NULL; + sInfo.lpReserved2 = NULL; + sInfo.cbReserved2 = 0; + sInfo.lpDesktop = NULL; + sInfo.lpTitle = NULL; + sInfo.dwFlags = 0; + sInfo.dwX = 0; + sInfo.dwY = 0; + sInfo.dwFillAttribute = 0; + sInfo.wShowWindow = SW_SHOW; + if (CreateProcess(NULL, + (char*)((lItem->SubItems->Strings[0]).data()), + NULL, + NULL, + FALSE, + 0, + NULL, + (char*)( ExtractFileDir(lItem->SubItems->Strings[0]).data()), + &sInfo, + &pInfo)) + { + Application->Minimize(); + Timer1->Enabled=true; + } +/* + HApp = ShellExecute(this, // handle to parent window + NULL, // pointer to string that specifies operation to perform + (char*)((lItem->SubItems->Strings[0]).data()), // pointer to filename string + NULL, // pointer to string that specifies executable-file parameters + NULL, // pointer to string that specifies default directory + 0 // whether file is shown when opened + ); +*/ + +} +//--------------------------------------------------------------------------- + +void __fastcall TForm1::ListView1InfoTip(TObject *Sender, TListItem *Item, + AnsiString &InfoTip) +{ + InfoTip = Item->SubItems->Strings[2]; +} +//--------------------------------------------------------------------------- + +void __fastcall TForm1::Timer1Timer(TObject *Sender) +{ + DWORD exitCode; + if (GetExitCodeProcess(pInfo.hProcess, &exitCode)) + { + switch(exitCode) + { + case STILL_ACTIVE: //printf("Process is still active\n"); + break; + default: //printf("Exit code = %d\n", exitCode); + Application->Restore(); + Timer1->Enabled = false; + break; + } + } + else { +// printf("GetExitCodeProcess() failed\n"); + Application->Restore(); + Timer1->Enabled = false; + } +} +//--------------------------------------------------------------------------- + +void __fastcall TForm1::SpeedButton1Click(TObject *Sender) +{ + Close(); +} +//--------------------------------------------------------------------------- + +void __fastcall TForm1::SpeedButton2Click(TObject *Sender) +{ + Application->Minimize(); +} +//--------------------------------------------------------------------------- + +void __fastcall TForm1::FormDestroy(TObject *Sender) +{ + if (pFondoAPP) + { + delete pFondoAPP; + pFondoAPP = NULL; + } +} +//--------------------------------------------------------------------------- + +void __fastcall TForm1::FormPaint(TObject *Sender) +{ + if ( pFondoAPP && pFondoAPP->Graphic && !pFondoAPP->Graphic->Empty ) + Canvas->Draw(0,0,pFondoAPP->Graphic); +} +//--------------------------------------------------------------------------- + + diff --git a/src/main.ddp b/src/main.ddp new file mode 100644 index 0000000..cdc0ee8 Binary files /dev/null and b/src/main.ddp differ diff --git a/src/main.dfm b/src/main.dfm new file mode 100644 index 0000000..93ad431 --- /dev/null +++ b/src/main.dfm @@ -0,0 +1,138 @@ +object Form1: TForm1 + Left = 193 + Top = 111 + BorderIcons = [] + BorderStyle = bsNone + Caption = 'Form1' + ClientHeight = 403 + ClientWidth = 640 + Color = clHighlight + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + OnDestroy = FormDestroy + OnPaint = FormPaint + PixelsPerInch = 96 + TextHeight = 13 + object SpeedButton1: TSpeedButton + Left = 616 + Top = 1 + Width = 23 + Height = 22 + Flat = True + Glyph.Data = { + 62050000424D62050000000000003604000028000000110000000F0000000100 + 0800000000002C010000C40E0000C40E00000001000000000000000000000000 + 0000000000007E0000000000000000000000000000007E000000000000000000 + 0000000000007E0000000000000000000000000000007E000000000000000000 + 0000000000007E000000000D0000000D0000000D00007E0D0000003300000033 + 0000003300007E330000007E0000007E0000007E00007E7E0000000000000000 + 0000000000007E0000000000000000000000000000007E000000000000000000 + 0000000000007E0000000000000000000000000000007E000000000000000000 + 0000000000007E000000000D0000000D0000000D00007E0D0000003300000033 + 0000003300007E330000007E0000007E0000007E00007E7E0000000000000000 + 0000000000007E0000000000000000000000000000007E000000000000000000 + 0000000000007E0000000000000000000000000000007E000000000000000000 + 0000000000007E000000000D0000000D0000000D00007E0D0000003300000033 + 0000003300007E330000007E0000007E0000007E00007E7E0000000000000000 + 0000000000007E0000000000000000000000000000007E000000000000000000 + 0000000000007E0000000000000000000000000000007E000000000000000000 + 0000000000007E000000000D0000000D0000000D00007E0D0000003300000033 + 0000003300007E330000007E0000007E0000007E00007E7E0000000000000000 + 0000000000007E0000000000000000000000000000007E000000000000000000 + 0000000000007E0000000000000000000000000000007E000000000000000000 + 0000000000007E000000000D0000000D0000000D00007E0D0000003300000033 + 0000003300007E330000007E0000007E0000007E00007E7E000000000D000000 + 0D0000000D007E000D0000000D0000000D0000000D007E000D0000000D000000 + 0D0000000D007E000D0000000D0000000D0000000D007E000D0000000D000000 + 0D0000000D007E000D00000D0D00000D0D00000D0D007E0D0D0000330D000033 + 0D0000330D007E330D00007E0D00007E0D00007E0D007E7E0D00000033000000 + 3300000033007E0033000000330000003300000033007E003300000033000000 + 3300000033007E0033000000330000003300000033007E003300000033000000 + 3300000033007E003300000D3300000D3300000D33007E0D3300003333000033 + 3300003333007E333300007E3300007E3300007E33007E7E33007E7E7E000000 + 7E0000007E007E007E0000007E0000007E0000007E007E007E0000007E000000 + 7E0000007E007E007E0000007E0000007E0000007E007E007E0000007E000000 + 7E0000007E007E007E00000D7E00000D7E00000D7E007E0D7E0000337E000033 + 7E0000337E007E337E00007E7E00007E7E00007E7E007E7E7E00E1E1E1E1E1E1 + E1E1E1E1E1E1E1E1E1E1E1000000E1E1E1E1E1E1E1E1E1E1E1E1E1E180FFE100 + 0000E1E1E1E180FFE1E1E1E1E1E1E1E1E1E1E1000000E1E1E1808080FFE1E1E1 + E1E1E180FFE1E1000000E1E1E1808080FFE1E1E1E1E180FFE1E1E1000000E1E1 + E1E1808080FFE1E1E18080FFE1E1E1000000E1E1E1E1E1808080FFE18080FFE1 + E1E1E1000000E1E1E1E1E1E18080808080FFE1E1E1E1E1000000E1E1E1E1E1E1 + E1808080FFE1E1E1E1E1E1000000E1E1E1E1E1E18080808080FFE1E1E1E1E100 + 0000E1E1E1E1E1808080FFE180FFE1E1E1E1E1000000E1E1E180808080FFE1E1 + E18080FFE1E1E1000000E1E180808080FFE1E1E1E1E18080FFE1E1000000E1E1 + 8080FFE1E1E1E1E1E1E1E18080FFE1000000E1E1E1E1E1E1E1E1E1E1E1E1E1E1 + E1E1E1000000} + OnClick = SpeedButton1Click + end + object SpeedButton2: TSpeedButton + Left = 592 + Top = 1 + Width = 23 + Height = 22 + Flat = True + OnClick = SpeedButton2Click + end + object Label1: TLabel + Left = 280 + Top = 368 + Width = 243 + Height = 13 + Caption = 'Launch It! - Lanzador de aplicacionde FREEWARE' + Transparent = True + end + object Label2: TLabel + Left = 360 + Top = 384 + Width = 110 + Height = 13 + Caption = 'JDsoft. | www.infdj.com' + Transparent = True + end + object Label3: TLabel + Left = 8 + Top = 6 + Width = 117 + Height = 50 + Caption = 'Titulo' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -35 + Font.Name = 'Arial Black' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object ListView1: TListView + Left = 176 + Top = 56 + Width = 457 + Height = 305 + BorderStyle = bsNone + Columns = <> + ParentShowHint = False + ShowHint = True + TabOrder = 0 + OnDblClick = ListView1DblClick + OnInfoTip = ListView1InfoTip + end + object ImageList1: TImageList + DrawingStyle = dsTransparent + Height = 32 + Width = 32 + Left = 136 + Top = 16 + end + object Timer1: TTimer + Enabled = False + OnTimer = Timer1Timer + Left = 136 + Top = 56 + end +end diff --git a/src/main.h b/src/main.h new file mode 100644 index 0000000..ce21358 --- /dev/null +++ b/src/main.h @@ -0,0 +1,64 @@ +//--------------------------------------------------------------------------- + +#ifndef mainH +#define mainH +//--------------------------------------------------------------------------- +#include +#include +#include +#include +#include +#include +#include +#include +#include +//--------------------------------------------------------------------------- +class TForm1 : public TForm +{ +__published: // IDE-managed Components + TListView *ListView1; + TImageList *ImageList1; + TTimer *Timer1; + TSpeedButton *SpeedButton1; + TSpeedButton *SpeedButton2; + TLabel *Label1; + TLabel *Label2; + TLabel *Label3; + void __fastcall ListView1DblClick(TObject *Sender); + void __fastcall ListView1InfoTip(TObject *Sender, TListItem *Item, + AnsiString &InfoTip); + void __fastcall Timer1Timer(TObject *Sender); + void __fastcall SpeedButton1Click(TObject *Sender); + void __fastcall SpeedButton2Click(TObject *Sender); + void __fastcall FormDestroy(TObject *Sender); + void __fastcall FormPaint(TObject *Sender); +private: // User declarations + TPicture *pFondoAPP; + + PROCESS_INFORMATION pInfo; + AnsiString rootPath; + + bool __fastcall CreateFolder(int idx,AnsiString name); + bool __fastcall LoadFolder(int idx); + TLabel *selectedFolder; + void __fastcall LabelsMouseMove(TObject *Sender, TShiftState Shift,int X, int Y); + void __fastcall LabelsMouseLeave(TObject *Sender); + void __fastcall LabelsClick(TObject *Sender); + + bool anclarRaton; + int anclarX,anclarY; + + void __fastcall WMNCHitTest(TMessage &Msg); +BEGIN_MESSAGE_MAP +MESSAGE_HANDLER(WM_NCHITTEST, TMessage, WMNCHitTest) +END_MESSAGE_MAP(TForm) + +public: // User declarations + __fastcall TForm1(TComponent* Owner); +}; +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +extern PACKAGE TForm1 *Form1; +//--------------------------------------------------------------------------- +#endif