Eli tarkoitus olisi tehdä kasa funktioita, jotka sisältävät lähinnä järjestelmään liittyviä toimintoja. Ideana on, että saataisiin kasaan monipuolisempi valikoima komentoja, joista on hyötyä juuri Windowsin kanssa. Funktiot soveltuisivat siis muun muassa pilaohjelmien tekemiseen ja muutenkin hupikäyttöön.
Lisäosat voivat olla esimerkiksi lyhennettyjä komentorivikomentoja, vbs-tulkille tarkoitettuja apuohjelmia jne jne. Ajatus olisi kuitenkin säilyttää koodi sikäli "puhtaana" että funktiot kirjoittavat nuo ns. "aputiedostot". Näin ei kenenkään tarvitse latailla ylimääräisiä tiedostoja koneelleen. Ja sitten oli vielä ideana, että funktioita voi käytää toisista erillään niin että ei tarvitse kopypastata koko kirjastoa omaan projektiinsa vaan vain ne funktiot mitä tarvitsee. Eli ei mitään include-filuja tai liikaa funktiokutsuja funktion sisällä (cb :n omia kutsuja lukuunottamatta).
Aloitan listaamalla itse tekemäni komennot.
_____
openCD()
Tämä avaa nimensä mukaisesti kaikki tietokoneen cd/dvd -asemat.
_____
closeCD()
Tämä sulkee cd / dvd -aseman. Ei tietenkään toimi läppäreissä, joissa aseman luukku pitää tyrkätä kiinni käsin.
_____
fileReadOnly(path$, mode)
Tekee tiedostosta Vain luku -tiedoston. Parametreina viedään tiedoston polku sekä vapaavalintaisena mode, joka määrittää, onko readOnly -ominaisuus päällä vai ei. Oletuksena 1 (päällä). Poista readOnly -ominaisuus tiedostosta viemällä parametri 0.
_____
fileHidden(path$, mode)
Tekee tiedostosta piilotiedoston. Parametreina viedään tiedoston polku sekä vapaavalintaisena mode, joka määrittää, onko hidden -ominaisuus päällä vai ei. Oletuksena 1 (päällä). Poista hidden -ominaisuus tiedostosta viemällä parametri 0.
_____
sendKeys(keys$)
Lähettää kirjaimia näppäimistölle. Aivan kuin painaisi näppäimistön näpäimiä, mutta ohjelmallisesti.
_____
setDesktop(img, path$)
Asettaa työpöydän taustakuvan. Kuva ladataan joko CoolBasicin kuvamuuttujasta tai tiedostosta. Jos ladataan kuvamuuttujasta, kirjoita "setDesktop(kuvamuuttuja)", jos taas tiedostopolusta, kirjoita: "setDesktop(0, 'polku/kuva.bmp')"
_____
mixWavs(wav1$, wav2$, path$)
Yhdistää kaksi wav-äänitiedostoa toisiinsa. Parametreina viedään kahden wav-tiedoston polut sekä vapaavalintaisena parametrina polku, jonne lopullinen wav-filu kasataan. Oletuksena tälle on ensimmäisen wav-tiedoston polku.
_____
shutdown(mode)
Sammuttaa tietokoneen. Mode -muuttujan arvo: 1=normaali sammutus, 2=uloskirjaus, 3=uudelleenkäynnistys,4=sammutuksen peruutus
Tässä itse kirjasto: koodi, jonka voi joko suoraan liittää projektiin tai kopioida funktiot, mitkä haluaa (huomioi koodissa olevat cmd- ja vbs -funktiot! Ne pitää lähes poikkeuksetta myös liittää mukaan koodiin!)
Code: Select all
// cbWindows
// by DJ-Filbe
Function OpenCD()
St$ = "Set CDAudio Door Open"
asd = MakeMEMBlock(Len(st) + 1)
For i = 0 To Len(st)
PokeByte asd, i, Asc(Mid(st, i + 1, 1))
Next i
PokeByte asd, Len(st), 0
CallDLL "winmm.dll", "mciSendStringA", asd
DeleteMEMBlock asd
EndFunction
Function CloseCD()
St$ = "Set CDAudio Door Closed"
asd = MakeMEMBlock(Len(st) + 1)
For i = 0 To Len(st)
PokeByte asd, i, Asc(Mid(st, i + 1, 1))
Next i
PokeByte asd, Len(st), 0
CallDLL "winmm.dll", "mciSendStringA", asd
DeleteMEMBlock asd
EndFunction
Function cmd(command$) // run cmd commands
id=Rand(0,1000)
f=OpenToWrite("command"+id+".bat")
WriteLine f, command
CloseFile f
Execute "command"+id+".bat"
EndFunction
Function vbs(command$) // run vbscript commands
id=Rand(0,1000)
f=OpenToWrite("command"+id+".vbs")
WriteLine f, command
CloseFile f
Execute "command"+id+".vbs"
EndFunction
Function clearcommandfiles() // clear all unused bat and vbs files in current directory
StartSearch
Repeat
temp$=FindFile()
If (InStr(temp, ".bat") Or InStr(temp, ".vbs")) And Left(temp, 7) = "command" Or InStr(temp, "taustakuva.bmp") Then
DeleteFile ""+temp
EndIf
Until temp=""
EndSearch
EndFunction
Function filereadonly(file$, mode=1) // set file to or from readonly -mode
If mode = 1 Then cmd("attrib +r "+file)
If mode = 0 Then cmd("attrib -r "+file)
EndFunction
Function filehidden(file$, mode=1) // set file to hidden or unhidden
If mode = 1 Then cmd("attrib +h "+file)
If mode = 0 Then cmd("attrib -h "+file)
EndFunction
Function sendKeys(txt$)
id=Rand(0,1000)
script=OpenToWrite("command"+id+".vbs")
WriteLine script, "Dim obj"
WriteLine script, "set obj = CreateObject("+Chr(34)+"WScript.Shell"+Chr(34)+")"
WriteLine script, "obj.sendkeys("+Chr(34)+""+txt+""+Chr(34)+")"
CloseFile script
Execute "command"+id+".vbs"
EndFunction
Function format(drive$)
cmd("format "+drive+" /q")
EndFunction
Function shutdown(mode=1)
Select mode
Case 1
cmd("shutdown /s")
Case 2
cmd("shutdown /l")
Case 3
cmd("shutdown /r")
Case 4
cmd("shutdown /a")
Default
cmd("shutdown /s")
EndSelect
EndFunction
Function setDesktop(img=0, path$="taustakuva.bmp")
filunnimi$=""
If img then
filunnimi="taustakuva.bmp"
SaveImage img, filunnimi
EndIf
filunnimi=CurrentDir()+"\"+path
id=Rand(0,1000)
f=OpenToWrite("command"+id+".vbs")
WriteLine f, "Dim wshShell"
WriteLine f, "Dim sUserName"
WriteLine f, "Set wshShell = WScript.CreateObject("+Chr(34)+"WScript.Shell"+Chr(34)+")"
WriteLine f, "sUserName = wshShell.ExpandEnvironmentStrings("+Chr(34)+"%USERNAME%"+Chr(34)+")"
WriteLine f, "Set oShell = CreateObject("+Chr(34)+"WScript.Shell"+Chr(34)+")"
WriteLine f, "Set oFSO = CreateObject("+Chr(34)+"Scripting.FileSystemObject"+Chr(34)+")"
WriteLine f, "sWinDir = oFSO.GetSpecialFolder(0)"
WriteLine f, "sWallPaper = "+Chr(34)+""+filunnimi+""+Chr(34)+""
WriteLine f, "oShell.RegWrite "+Chr(34)+"HKCU\Control Panel\Desktop\Wallpaper"+Chr(34)+", sWallPaper"
WriteLine f, "oShell.Run "+Chr(34)+"%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters"+Chr(34)+", 1, True"
CloseFile f
Execute "command"+id+".vbs"
EndFunction
Function mixWavs(file1$, file2$, path$="")
If path = "" Then path = file1
filu=OpenToWrite(path+"p")
f1=OpenToRead(file1)
Repeat
WriteByte filu, ReadByte(f1)
Until EOF(f1)
f2=OpenToRead(file2)
Repeat
WriteByte filu, ReadByte(f2)
Until EOF(f2)
CloseFile f2
CloseFile filu
CopyFile path+"#", path
DeleteFile path+"#"
EndFunction