ashley Posted August 26, 2007 Share Posted August 26, 2007 (edited) Ok i have made a program like 'neosearch' but i have called it 'SimpleSearch'Known bugs:1)Only search for .* filesTODO list:1) make it show just the filename(not the whole path)2) make it search for anything that is typed (e.g. ashley not just .files)3) get runfiles/dubble-click opening work4) add search using index Latest update features: 1) Indexing2) Installer Downloads: 1) SimpleSearch.exe2) SimpleSearch ScriptIf you find any bugs in the installer or the program please let me know so that i can fix them. Edited September 2, 2007 by ashley Free icons for your programs Link to comment Share on other sites More sharing options...
qazwsx Posted August 26, 2007 Share Posted August 26, 2007 I think your timer might not work becasue you are declaring variable in a function rather thatn globally. To make only the file name appear couldnt you use Stringinstrg to a back slash and then cut off the rest? Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted August 26, 2007 Moderators Share Posted August 26, 2007 That file search looks familiar... is that the one Randal did? Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
WolfWorld Posted August 27, 2007 Share Posted August 27, 2007 Nice It Not Powerful But It Simple Try My OpenIndex Main project - Eat Spaghetti - Obfuscate and Optimize your script. The most advance add-on.Website more of GadGets! Link to comment Share on other sites More sharing options...
KJohn Posted August 27, 2007 Share Posted August 27, 2007 Try working with this code (its one of the oldest versions of KJohn DesktopSearch; KJDS preceeded neoSearch): expandcollapse popup; ---------------------------------------------------------------------------- ; ; Author: Koshy John ; E-mail: koshyjohnuk@msn.com ; Blog : http://spaces.msn.com/koshyjohnuk ; ; Program: FileSearch v0.01 ; Purpose: To search for files on the HDD. ; Date : 13th April 2006 ; ; ---------------------------------------------------------------------------- #NoTrayIcon #include<process.au3> ;for _RunDOS #include<file.au3> ;for _FileCountLines AutoItSetOption("MustDeclareVars", 0) AutoItSetOption("RunErrorsFatal", 0) AutoItSetOption("TrayIconDebug", 0) AutoItSetOption("TrayIconHide", 1) Break(0) ;================================================= ;START OF MAIN SCRIPT :: koshyjohnuk ;================================================= ;INITIALIZING PROGRAM ;==================== HotKeySet("{ESC}", "Leave") ;checking windows partition Global $wp=@ProgramFilesDir&"\KJohn\DSearch" Global $title="DesktopSearch | koshyjohnuk" ;SCANNING DRIVES IN THE BACKGROUND ;--------------------------------- ;checking OS version If @OSVersion=="WIN_95" Then os() If @OSVersion=="WIN_98" Then os() If @OSVersion=="WIN_ME" Then os() If @OSVersion=="WIN_NT4" Then os() If @OSVersion=="WIN_2000" Then os() ;checking if user has admin priveleges If IsAdmin()<>1 Then Leave() ;============================== ;STARTING ACTUAL SEARCH PORTION ;============================== ;init the results page DirRemove(@TempDir&"\kjds",1) DirCreate(@TempDir&"\kjds") FileInstall("Results\kjds.htm",@TempDir&"\kjds\all.htm",1) FileInstall("Results\kjsbg.png",@TempDir&"\kjds\kjsbg.png",1) FileInstall("Results\logo.png",@TempDir&"\kjds\logo.png",1) FileInstall("Results\bar.png",@TempDir&"\kjds\bar.png",1) FileInstall("Results\DEF.png",@TempDir&"\kjds\DEF.png",1) FileInstall("Results\DIR.png",@TempDir&"\kjds\DIR.png",1) FileInstall("Results\DOC.png",@TempDir&"\kjds\DOC.png",1) FileInstall("Results\EXE.png",@TempDir&"\kjds\EXE.png",1) FileInstall("Results\IMG.png",@TempDir&"\kjds\IMG.png",1) FileInstall("Results\PDF.png",@TempDir&"\kjds\PDF.png",1) FileInstall("Results\PPT.png",@TempDir&"\kjds\PPT.png",1) FileInstall("Results\WMP.png",@TempDir&"\kjds\WMP.png",1) FileInstall("Results\XLS.png",@TempDir&"\kjds\XLS.png",1) FileInstall("Results\ZIP.png",@TempDir&"\kjds\ZIP.png",1) $html=FileOpen(@TempDir&"\kjds.htm",1) ;USER INPUT $find=InputBox($title,"Enter a part of the name of the file/folder you want to find:"&@LF&"(Tip: Input '?' for help with advanced features)",""," M",320,140) If $find=="/reindex" Then reindex() If $find=="" Then Exit If $find=="?" Then $find=InputBox($title,"Enter a part of the name of the file/folder you want to find:"&@LF&@LF&"Syntax: string [/d:driveletter] [/deep] [/s:min,max] [/a:RASHNDOCT] [/ex-str1-str2...] [/reindex]",""," M",320,170) If $find=="" Then Exit $timetaken=TimerInit() ;TIME COUNT STARTS HERE ;SCANNING THE SELECTED INDEX ;=========================== $fcom=FileOpen($wp&"\data\files.dat",0) ;filename $ftype=FileOpen($wp&"\data\type.dat",0) ;filetype $fcode=FileOpen($wp&"\data\code.dat",0) ;full file HTML code ProgressOn($title,"","Scanning index... 0 files/folders found.") $ftot=100/_FileCountLines($wp&"\data\files.dat") $fmod=5*Round(_FileCountLines($wp&"\data\files.dat")/100) $fmodc=0 $html=FileOpen(@TempDir&"\kjds\all.htm",1) Global $dfiles=0 ;number of files found $dfilesold=0 ;number of files found in the previous iteration $fj=0 ;number of files processed While 1 ProgressSet(($fj*$ftot),"Scanning index... "&$dfiles&" files/folders found.") While $fj<$fmodc $fj=$fj+1 $f=FileReadLine($fcom) If @error=-1 Then ExitLoop 2 ;all files have been processed $fc=FileReadLine($fcode) $ft=FileReadLine($ftype) If StringInStr($f,$find)==0 Then ContinueLoop FileWriteLine($html,$fc) $dfiles=$dfiles+1 WEnd $fmodc=$fmodc+$fmod WEnd FileClose($fcom) FileClose($ftype) FileClose($fcode) ProgressOff() $timetaken=Round(TimerDiff($timetaken)/1000,2) ;END OF TIME COUNT ;completing the results page code FileWriteLine($html,"</table>") FileWriteLine($html,"<p></p><p></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext .75pt;padding:0in 0in 1.0pt 0in'></div><p></p><p></p>") FileWriteLine($html,"<table border=0 cellspacing=0 cellpadding=0><tr><td><font size=2><b>You searched for '"&$find&"' on "&@ComputerName&".</b></font></td></tr>") FileWriteLine($html,"<tr><td><font size=2><b>Files/Folders Found: "&$dfiles&"</b></font></td></tr> <tr><td><font size=2><b>Total files/folders on System: "&_FileCountLines(@UserProfileDir&"\Local Settings\Application Data\KJS\kjsall.dat")&"</b></font></td></tr> <tr><td><font size=2><b>Total time taken: "&$timetaken&" seconds.</b></font></td></tr></table><p></p>") FileWriteLine($html,"<p><font size=2><b>© Koshy John "&@YEAR&". All rights reserved.</b></font></p><p></p>") FileWriteLine($html,"</body></html>") FileClose($html) ;displaying results page and waiting for return ProcessWaitClose(Run(@ProgramFilesDir&'\Internet Explorer\iexplore.exe "'&@TempDir&'\kjds\all.htm"')) Leave() exit ;================================================= ;END OF MAIN SCRIPT :: FUNCTIONS NEXT ;================================================= ;INDEXING FUNCTION ;================= Func reindex() Global $drives=DriveGetDrive("FIXED"),$drindex If FileExists($wp&"\data\raw.dat")==0 Then ;starting the scan operation when the index files are not found $i=1 While $i<=$drives[0] If DriveStatus($drives[$i]&"\")=="READY" Then $drindex=Run(@ComSpec &" /C dir /s /a:-H-S /b "&$drives[$i]&'\*.* >"'&$wp&'\data\scan'&$i&'.dat"',"",@SW_HIDE) sleep(200) While(ProcessExists($drindex)) sleep(30) $fcltxt="Scanning "&StringUpper($drives[$i])&"... "&_FileCountLines($wp&'\data\scan'&$i&'.dat')&" files found." SplashTextOn($title,$fcltxt,300,18,-1,-1,17,10) WEnd sleep(500) EndIf $i=$i+1 WEnd RunWait(@ComSpec &' /C copy /y /a "'&$wp&'\data\scan*.dat" "'&$wp&'\data\raw.dat"',"",@SW_HIDE) RunWait(@ComSpec &' /C del /f /q "'&$wp&'\data\scan*.dat"',"",@SW_HIDE) SplashOff() EndIf ;CONCISE INDEX ProgressOn($title,"Compiling index...","",-1,-1,16) $raw=FileOpen($wp&"\data\raw.dat",0) $fcom=FileOpen($wp&"\data\files.dat",2) ;filename $ftype=FileOpen($wp&"\data\type.dat",2) ;filetype $fcode=FileOpen($wp&"\data\code.dat",2) ;full file HTML code $ftot=_FileCountLines($wp&"\data\raw.dat") For $fj=1 To $ftot Step 1 $f=FileReadLine($raw) If @error=-1 Then ExitLoop If Mod($fj,30)==0 Then ProgressSet($fj*100/$ftot,$f) ;path check If StringInStr($f,":\Windows\")<>0 Or StringInStr($f,@WindowsDir)<>0 Then ContinueLoop If StringInStr($f,":\Program Files\")<>0 Or StringInStr($f,@ProgramFilesDir)<>0 Then $fatt0=FileGetAttrib($f) $ext=StringRight($f,4) $ext=StringLower($ext) If $ext<>".exe" And $ext<>".pdf" And $ext<>".chm" And $ext<>".txt" And StringInStr($fatt0,"D") Then ContinueLoop EndIf If StringInStr($f,"\Local Settings\")<>0 Or StringInStr($f,"\Application Data\")<>0 Then ContinueLoop If StringInStr($f,":\Recycler\")<>0 Or StringInStr($f,"\Application Data\")<>0 Then ContinueLoop If StringInStr($f,"\$Ntu")<>0 Then ContinueLoop ;file type $fatt0=FileGetAttrib($f) $ext=StringRight($f,4) $ext=StringLower($ext) If StringInStr($fatt0,"D") Then $ext="DIR" ElseIf $ext==".bmp" Or StringInStr($ext,".jp") Or $ext=="jpeg" Or $ext==".png" Or $ext==".gif" Then $ext="IMG" ElseIf $ext==".wav" Or $ext==".avi" Or $ext==".mov" Or $ext=="mpeg" Or StringInStr($ext,".mp") Or StringInStr($ext,".wm") Then $ext="WMP" ElseIf $ext==".exe" Or $ext==".com" Then $ext="EXE" ElseIf $ext==".doc" Or $ext==".rtf" Then $ext="DOC" ElseIf $ext==".zip" Or $ext==".cab" Or $ext==".rar" Then $ext="ZIP" ElseIf $ext==".txt" Or $ext=="html" Or $ext==".htm" Then $ext="DEF" ElseIf $ext==".pdf" Then $ext="PDF" ElseIf $ext==".ppt" Then $ext="PPT" ElseIf $ext==".xls" Then $ext="XLS" Else ContinueLoop EndIf FileWriteLine($ftype,$ext) ;file name $fsplit=StringSplit($f,"\") $fname=$fsplit[$fsplit[0]] FileWriteLine($fcom,$fname) ;file path $fpath1=$fsplit[1] $i=2 While $i<$fsplit[0] $fpath1=$fpath1&"\"&$fsplit[$i] $i=$i+1 WEnd ;file size $fsize=FileGetSize($f) If $fsize<=0 Then $fsize=DirGetSize($f) ;size of folder $fsize=Round($fsize/1048576,2) ;last modified $fgtime=FileGetTime($f) $ftime=$fgtime[0]&"-"&$fgtime[1]&"-"&$fgtime[2]&", "&$fgtime[3]&":"&$fgtime[4] ;file HTML code If StringLen($fname)>35 Then $fname=StringLeft($fname,35)&"..." FileWriteLine($fcode,'<tr><td><img src='&$ext&'.png></td><td><a href="'&$f&'"><font size=2>'&$fname&"</font></a></td><td><font size=2>"&$fsize&"MB</font></td><td><font size=2>"&$ftime&'</font></td><td><a href="'&$fpath1&'"><font size=2>'&$fpath1&"</font></a></td></tr>") Next FileClose($fcode) FileClose($fcom) FileClose($ftype) FileClose($raw) EndFunc ;USER INTERRUPT ;============== Func Leave() ;closing all indexing processe _RunDOS("del /f /q "&$wp&"\index*.dat") FileDelete($wp &"\ntfs.dat") FileDelete($wp &"\kjsall.dat") FileDelete(@TempDir&"\kjs*.png") FileDelete(@TempDir&"\kjds.htm") exit endfunc ;CHECKING OS VERSION ;=================== Func os() MsgBox ( 48, $title, "Your Windows version is "& @OSVersion &".", 15) exit endfunc ;SMOOTHENING PROGRESS BAR ;======================== Func count($ca,$cb,$cs) $ci=$ca Do If $cs<>"" Then ProgressSet ($ci,$ci&" % | " & $cs) Else ProgressSet($ci) EndIf $ci=$ci+1 Until $ci>=$cb endfunc It should serve as a good starting point for people intending to make a desktop search engine in AutoIt. But I really suggest you don't look at my code, since it might prevent you from finding a better method than mine.... Use it only if you have no idea how to go about making one... Link to comment Share on other sites More sharing options...
ashley Posted August 27, 2007 Author Share Posted August 27, 2007 That file search looks familiar... is that the one Randal did?im not sure...Sombody gave it to me...@sccrstvn93Thanks ill try that...@Koshy JohnI know i have been... but its just as good with out indexing... (ATM, i will get round to making a indexing func) Free icons for your programs Link to comment Share on other sites More sharing options...
KJohn Posted August 27, 2007 Share Posted August 27, 2007 im not sure...Sombody gave it to me...@sccrstvn93Thanks ill try that...@Koshy JohnI know i have been... but its just as good with out indexing... (ATM, i will get round to making a indexing func)Its fast (without indexing) because the file system table is cached into RAM the first time the program is run... The increase in speed will remain only as long as some other programs don't request additional RAM (causing the cache to be discarded)... The cache is usually also overwritten after a period of time to enhance the performance of other systems by caching data for them into RAM...To measure the actual performance:1. Restart your computer (this is a sure fire way to clear the cache).2. Run your program for a single query (recursively). The speed of this is the actual speed of your program.The increase in speed you experience will not be consistent on different configurations of systems because of the cache factor.To really understand what I'm talking about, go to the root folder of the drive containing Windows using Command prompt:1. Run 'dir /s /a' once. Note the time taken and the level of HDD activity.2. Run the command again as soon as it completes. Note the time taken and the level of HDD activity.In the second case, HDD activity will be negligible most of the time and the speed at which the results are rendered is only restricted by the speed of your CPU. Link to comment Share on other sites More sharing options...
ashley Posted August 27, 2007 Author Share Posted August 27, 2007 Its fast (without indexing) because the file system table is cached into RAM the first time the program is run... The increase in speed will remain only as long as some other programs don't request additional RAM (causing the cache to be discarded)... The cache is usually also overwritten after a period of time to enhance the performance of other systems by caching data for them into RAM...To measure the actual performance:1. Restart your computer (this is a sure fire way to clear the cache).2. Run your program for a single query (recursively). The speed of this is the actual speed of your program.The increase in speed you experience will not be consistent on different configurations of systems because of the cache factor.To really understand what I'm talking about, go to the root folder of the drive containing Windows using Command prompt:1. Run 'dir /s /a' once. Note the time taken and the level of HDD activity.2. Run the command again as soon as it completes. Note the time taken and the level of HDD activity.In the second case, HDD activity will be negligible most of the time and the speed at which the results are rendered is only restricted by the speed of your CPU.oki have made an update...Check first post... Free icons for your programs Link to comment Share on other sites More sharing options...
JustinReno Posted August 27, 2007 Share Posted August 27, 2007 Yout Copyrights are messed up, If you put all rights reserved, thats usually meaning you put some sort of license on it, like the GPL. So far i dont see a copyright FOR the gpl so you can remove that(i put all rights reserved in some of my programs but there now removed) Link to comment Share on other sites More sharing options...
Generator Posted August 27, 2007 Share Posted August 27, 2007 Few comments 1. When i type in file name and click search, there are no any sign that tells me it's doing the search, neither like John's which the query box is flashing(at least i know it's searching). 2. The script tend to hang(unable to respond) during the search 3. Copy right thing isn't nesscery because no license was given Link to comment Share on other sites More sharing options...
ashley Posted August 28, 2007 Author Share Posted August 28, 2007 Few comments1. When i type in file name and click search, there are no any sign that tells me it's doing the search, neither like John's which the query box is flashing(at least i know it's searching).2. The script tend to hang(unable to respond) during the search3. Copy right thing isn't nesscery because no license was givenok copy right will be removed in next version..can you tell me how to make it respond while searchIll make it so you know that its searching... Free icons for your programs Link to comment Share on other sites More sharing options...
WolfWorld Posted August 28, 2007 Share Posted August 28, 2007 ok copy right will be removed in next version..can you tell me how to make it respond while searchIll make it so you know that its searching...Try TO Use OnEventThat Will MAke Real Time Main project - Eat Spaghetti - Obfuscate and Optimize your script. The most advance add-on.Website more of GadGets! Link to comment Share on other sites More sharing options...
ashley Posted August 28, 2007 Author Share Posted August 28, 2007 Try TO Use OnEventThat Will MAke Real Timeplease explane Free icons for your programs Link to comment Share on other sites More sharing options...
KJohn Posted August 28, 2007 Share Posted August 28, 2007 please explaneGUIs run in 2 modes:- GUIGetMsg mode, and,- OnEvent modeThe GUIGetMsg mode works by polling the GUI while the OnEvent mode triggers different functions when a particular event occurs (like clicking a button). A GUI can run on only one of the two modes, not both. Search within the AutoIt help file for more (open AutoIt > GUI Reference > OnEvent mode in the help file) Link to comment Share on other sites More sharing options...
ashley Posted August 28, 2007 Author Share Posted August 28, 2007 GUIs run in 2 modes:- GUIGetMsg mode, and,- OnEvent modeThe GUIGetMsg mode works by polling the GUI while the OnEvent mode triggers different functions when a particular event occurs (like clicking a button). A GUI can run on only one of the two modes, not both. Search within the AutoIt help file for more (open AutoIt > GUI Reference > OnEvent mode in the help file)ahh thanks... Free icons for your programs Link to comment Share on other sites More sharing options...
ashley Posted August 29, 2007 Author Share Posted August 29, 2007 (edited) *Updated 29th august 2007*Latest update features:1) Fully run on html2) Added set your own transparency.3) Tells you if it searching4) Event mode removed Bugs Fixed NONE Edited August 30, 2007 by ashley Free icons for your programs Link to comment Share on other sites More sharing options...
ashley Posted August 30, 2007 Author Share Posted August 30, 2007 *Updated 30th aug 07*Latest update features:1) Added Simple Mode Bugs Fixed NONE Free icons for your programs Link to comment Share on other sites More sharing options...
ashley Posted August 30, 2007 Author Share Posted August 30, 2007 Woo 341 Views... But only 18 post that makes me sad Free icons for your programs Link to comment Share on other sites More sharing options...
KJohn Posted September 1, 2007 Share Posted September 1, 2007 tested the program... 1. When I search for something, it says "Searching..." for like close to a minute.. 2. The results area then just goes white and doesn't show anything. That obviously not what you want it to do... Link to comment Share on other sites More sharing options...
WolfWorld Posted September 1, 2007 Share Posted September 1, 2007 ashley you done well Main project - Eat Spaghetti - Obfuscate and Optimize your script. The most advance add-on.Website more of GadGets! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now