Jump to content

Recommended Posts

--- Edit ---

Ok. I recopied the exe to his desktop, and created the "log" file. It ran without errors. The only change to his system that he is aware of is that he ran a registry defrag on it during lunch. Go figure.

He loves the new version now.

I'm happy it fixed itself, the only way I managed to crash it like that was with Obfuscator on, but you didn't compile with it on so that can't have been it. :)

-></( NEW VERSION V2.2.8 )\><-

Added: Script can seamlessly run and compile on both x64 and x86, the UDF helped make this simple (thx to wraithdu)

Added: "About this app"-tab with my name and links to the used UDF's

Added: Uses the UDF for link like labels

Fixed: More errors handled

Fixed: More errors logged

Fixed: ffdshow presets was read weirdly

Changed: Log file changed name to log.txt (simpler?)

Changed: More bold AutoItObject usage, i.e. inheritance, @NumParams and more "private" parts :)

Changed: Trying something new in the ffdshow object creator (_ffdshow)

Changed: Input in ffdshow tabs are "smarter"

Link to comment
Share on other sites

  • Replies 85
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Anyone think that the attachment space is annoyingly small?

I do, so I started a experiment that may help with this in the long run.

Posted Image

First try:

CodecControl Source Downloader 0.2.2.au3 (7.91K)

Number of downloads: 29

Note: I'm not sure if I'm breaking the AuO license, don't use if you're scared of lawyers! :)

@trancexx it works on x64 :)

Second try:

CodecControl Source Downloader 0.2.3.au3 (7.95K)

Number of downloads: 50

Third try:

CodecControl Source Downloader 0.2.4.au3

Edited by AdmiralAlkex
Link to comment
Share on other sites

Anyone think that the attachment space is annoyingly small?

That's why I host my scripts on my own server. I'm not to worried about the download counts.

The new version of CodecControl (2.2.8) seems to work very well.

I really like the downloader. I am inspired. :) I think I will make something similar for the scripts I am hosting on my server.

Link to comment
Share on other sites

I like to have some sort of statistics, otherwise I would just put everything on Dropbox or something.

The new version of CodecControl (2.2.8) seems to work very well.

Thank you. I'm out of ideas right now so I guess it's finished for the moment.

I really like the downloader. I am inspired. I think I will make something similar for the scripts I am hosting on my server.

Feel free to use any of my code if you want :)

I can upload the script that generates FileHashes.txt if you want

Link to comment
Share on other sites

I can upload the script that generates FileHashes.txt if you want

I have MD5 code, but I'd like to look at it. Did you create your own hash routines?

Link to comment
Share on other sites

I have MD5 code, but I'd like to look at it. Did you create your own hash routines?

Sorry for late reply, I missed your post earlier.

I manually copy the stuff I want hashed to subfolders to the hasher, then it uses the official Crypt UDF to hash them. I started putting in some FTP stuff to automate the upload to web, but didn't finish it. If I update the downloader I will change it to use Dropbox so then it's just a FileCopy() instead of FTP.

Edit 2011-07-09=

Updated file Generate hashes 0.0.4.au3

Spoiler is old stuff, don't use.

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.3.6.1
 Author:         Alexander Samuelsson (AdmiralAlkex)

 Script Function:
    Template AutoIt script.

#ce ----------------------------------------------------------------------------

#Include <Crypt.au3>
#Include <File.au3>
#Include <Array.au3>
;~ #Include <FTPEx.au3>

Global $asFileList[1], $iCurrentFile = 0

;~ $iTimer = TimerInit()
_ListFolders(@ScriptDir, StringLen(@ScriptDir))
;~ ConsoleWrite(TimerDiff($iTimer) & @CRLF)
;~ _ArrayDisplay($asFileList)

ReDim $asFileList[$iCurrentFile]
_ArrayReverse($asFileList)
_FileWriteFromArray(@ScriptDir & "\FileHashes.txt", $asFileList)
ShellExecute(@ScriptDir & "\FileHashes.txt")

;~ $hFTP = _FTP_Open('MyFTP Control')
;~ If @error Then Exit ConsoleWrite("Failure in _FTP_Open" & @CRLF)
;~ _FTP_Connect($hFTP, "***", "***", "***")
;~ If @error Then Exit ConsoleWrite("Failure in _FTP_Connect" & @CRLF)
;~ $Ftpc = _FTP_Close($Open)

Func _ListFolders($sDir, $iSkipXChars)
    $hSearch = FileFindFirstFile($sDir & "/*")

    While 1
        $sFile = FileFindNextFile($hSearch)
        If @error Then ExitLoop
        If @extended <> 1 Then ContinueLoop

;~      ConsoleWrite($sFile & @CRLF)
        _ListFiles($sDir & "\" & $sFile, $iSkipXChars)

        $iUBound = UBound($asFileList)
        If $iCurrentFile >= $iUBound -1 Then ReDim $asFileList[$iUBound *2]
        $asFileList[$iCurrentFile] = $sFile
        $iCurrentFile += 1
    WEnd

    FileClose($hSearch)
EndFunc

Func _ListFiles($sDir, $iSkipXChars)
    $hSearch = FileFindFirstFile($sDir & "/*.au3")

    While 1
        $sFile = FileFindNextFile($hSearch)
        If @error Then ExitLoop

;~      ConsoleWrite($sFile & @CRLF)

        $iUBound = UBound($asFileList)
        If $iCurrentFile >= $iUBound -1 Then ReDim $asFileList[$iUBound *2]
        $asFileList[$iCurrentFile] = _Crypt_HashFile($sDir & "\" & $sFile, $CALG_MD5)
        $iCurrentFile += 1
        $asFileList[$iCurrentFile] = StringTrimLeft($sDir & "\" & $sFile, $iSkipXChars)
        $iCurrentFile += 1
    WEnd

;~  ReDim $asFileList[$iCurrentFile]

    FileClose($hSearch)
EndFunc

Edited by AdmiralAlkex
Link to comment
Share on other sites

Sorry for late reply, I missed your post earlier.

No prob. Thanks for the code. I am hoping to have a little time this weekend to work on some personal projects.
Link to comment
Share on other sites

  • 3 weeks later...

-></( Latest version is v?do=embed' frameborder='0' data-embedContent> )\><-

Have you ever felt that there is something missing in your life?? :D Then try this, I can guarantee 100% satisfaction!! :) (or else you get your money back!! :>)

Posted Image

Some of the features:

Disable (or enable ;)) DirectShow filters/codecs! :)

Set buffers for ffdshow! (support for multiple presets!) :D

Supports both x64 and x86 DShow/ffdshow! :o

Try this and you will never go back to manually edit your registry again!! :)

What do you think??

Announcement post for 2.2.8 ?do=embed' frameborder='0' data-embedContent> <--- link

As of 2.2.3 requires AutoItObject.au3 and oLinkedList.au3 from AutoItObject UDF <--- link

As of 2.2.8 requires _RegFunc.au3 from Custom Registry Functions UDF <--- link

As of 2.2.8 requires GUICtrlHyperLink.au3 from GUICtrlHyperLink UDF <--- link

Old stuff for the historians:

Old description:

It features are so many and awesome you are more probably to fall in love with this ;) than that superhot "girl next door"!! :unsure:

-></( Original message )\><-

Some of you may remember that I was hunting for a place where windows keeps it's list of installed DirectShow codecs some time ago (yes I am pointing at you Nahuel!!) and after some search i found the "golden key"= HKCR\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance\

After that I did this small scripts for changing settings and stuff and I thought now would be a good time to share with you all!!

This version only lets you enable/disable DirectShow codecs but i plan on adding more later (hence the tabs)

CodecControl1.1 (first release):

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compression=4
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <Array.au3>

Global $DShowEnum[1], $DShowRead1[1], $DShowRead2[1], $DShowListViewItem[999], $DisDShow = ":"
$Debug_LB = False

$Gui = GUICreate("Codec-Control 1,0", 542, 600, 100, 100, BitOr($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX))
GUICtrlCreateTab(2, 2, 540, 598)
GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)

GUICtrlCreateTabItem("DirectShow")
$DShowListView = GUICtrlCreateListView("", 6, 26, 325, 566, "", BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER))
GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
_GUICtrlListView_AddColumn($DShowListView, "DirectShow filters", 225)
_GUICtrlListView_AddColumn($DShowListView, "Disabled", 75)
$DShowButtonReload = GUICtrlCreateButton("Reload list", 335, 26, 100, 40)
GUICtrlSetResizing(-1, $GUI_DOCKTOP+$GUI_DOCKRIGHT+$GUI_DOCKHEIGHT+$GUI_DOCKWIDTH)
$DShowButtonCodec = GUICtrlCreateButton("Enable/Disable selected codec", 335, 70, 200, 40)
GUICtrlSetResizing(-1, $GUI_DOCKTOP+$GUI_DOCKRIGHT+$GUI_DOCKHEIGHT+$GUI_DOCKWIDTH)

_GenerateDShow()
GUICtrlCreateTabItem("")
GUISetState()

While 1
    $msg = GUIGetMsg()
    Select
        Case $msg = $GUI_EVENT_CLOSE
            Exit
        Case $msg = $DShowButtonReload
            $GetSelected = _GUICtrlListView_GetSelectedIndices($DShowListView, True)
            GUICtrlSetState($DShowButtonReload, $GUI_DISABLE)
            _GenerateDShow()
            For $D = 1 To $GetSelected[0]
                _GUICtrlListView_SetItemSelected($DShowListView, $GetSelected[$D])
            Next
            GUICtrlSetState($DShowListView, $GUI_FOCUS)
            GUICtrlSetState($DShowButtonReload, $GUI_ENABLE)
        Case $msg = $DShowButtonCodec
            $GetSelected = _GUICtrlListView_GetSelectedIndices($DShowListView, True)
            GUICtrlSetState($DShowButtonCodec, $GUI_DISABLE)
            For $G = 1 To $GetSelected[0]
                $DShowRead3 = RegRead("HKCR\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance\" & $DShowEnum[$GetSelected[$G]+1], "CLSID")
                If StringInStr($DShowRead3, ":", 2) Then
                    $TrimmedString = StringTrimLeft($DShowRead3, 1)
                    RegWrite("HKCR\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance\" & $DShowEnum[$GetSelected[$G]+1], "CLSID", "REG_SZ", $TrimmedString)
                Else
                    RegWrite("HKCR\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance\" & $DShowEnum[$GetSelected[$G]+1], "CLSID", "REG_SZ",$DisDShow & $DShowRead3)
                EndIf
            Next
            _GenerateDShow()
            For $F = 1 To $GetSelected[0]
                _GUICtrlListView_SetItemSelected($DShowListView, $GetSelected[$F])
            Next
            GUICtrlSetState($DShowListView, $GUI_FOCUS)
            GUICtrlSetState($DShowButtonCodec, $GUI_ENABLE)
    EndSelect
WEnd

Func _GenerateDShow()
    Local $B = 1
    If $DShowEnum[0] > 0 Then
        For $A = 1 To $DShowEnum[0]
            GUICtrlDelete($DShowListViewItem[$A])
        Next
    EndIf
    While 1
        ReDim $DShowEnum[$B+1]
        $DShowEnum[$B] = RegEnumKey("HKCR\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance", $B)
        If @error <> 0 then ExitLoop
        $B = $B + 1
    WEnd
    $DShowEnum[0] = $B-1
    ReDim $DShowRead1[$B]
    ReDim $DShowRead2[$B]
    For $C = 1 To $DShowEnum[0]
        $DShowRead1[$C] = RegRead("HKCR\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance\" & $DShowEnum[$C], "FriendlyName")
        $DShowRead2[$C] = RegRead("HKCR\CLSID\{083863F1-70DE-11d0-BD40-00A0C911CE86}\Instance\" & $DShowEnum[$C], "CLSID")
        If StringInStr($DShowRead2[$C], ":", 2) = 0 Then
            $DShowRead2[$C] = "No"
        Else
            $DShowRead2[$C] = "Yes"
        EndIf
        $DShowListViewItem[$C] = GUICtrlCreateListViewItem($DShowRead1[$C] & "|" & $DShowRead2[$C], $DShowListView)
    Next
EndFunc

Later releases was by attachment:

CodecControl 1.6 (was downloaded 42 times), BUGGY!! Use bugfix 1.7 instead.

CodecControl 2.1.1 (was downloaded 24 times), BUGGY!! Use bugfix 2.1.2 instead.

CodecControl 2.2.5 (accidentally removed, was downloaded about 31 times), use 2.2.8 instead

Hi ,

Where could i find "LinkedList.au3" ? Thanks .

Link to comment
Share on other sites

Hi ,

Where could i find "LinkedList.au3" ? Thanks .

It's in the AutoItObject UDF, in the "Examples" folder

\AutoItObject Package 1.2.4.0\Examples\oLinkedList.au3

:unsure:

Edit: Or run the downlaoder from post #62

Edited by AdmiralAlkex
Link to comment
Share on other sites

  • 2 weeks later...

-></( NEW VERSION V2.2.9 )\><-

Fixed: ffdshow combo ("$sEnumReg &= _RegEnumKey" TO "$sEnumReg = _RegEnumKey")

Added: I drew an icon!

Comments on icon?

See first post for description and download!!

Edit: New version of CodecControl Source Downloader (moved downloads to DropBox), all old and the current version is available there. Also all attachments but the newest is removed from this thread (saved me a couple KB :unsure: )

Edited by AdmiralAlkex
Link to comment
Share on other sites

Added: I drew an icon!

CodecControl looks to be running well. I didn't see an icon in the package.

Link to comment
Share on other sites

CodecControl looks to be running well. I didn't see an icon in the package.

It's right under the au3 file :unsure:

Edit: the file CC.ico (I drew it myself, kinda fugly but I'm no artist)

Edit2: Wait, it's missing from the downloader, gimme a minute

Edit3: Fixed, the hasher was hardcoded to only include .au3 so the file wasn't hashed, although it technically was there all the time :>, rerun the downloader and it will show a missing file!

Edited by AdmiralAlkex
Link to comment
Share on other sites

  • 2 months later...

-></( NEW VERSION V2.3.1 )\><-

Changed: Some resizing (nothing important)

Added: Added alternative icon which was kindly created by willichan, thank you buddy!

Recommendation: Download updated GUICtrlHyperLink.au3 (it's in the package if you use the Source Downloader)

See first post for description and download!!

Link to comment
Share on other sites

Link to comment
Share on other sites

Looking good! A couple of guys at the office have added it to their regular tool-sets.

I am very happy you like it :)

Do they have any wishes or suggestions they would like implemented? I'm out of ideas myself.

Link to comment
Share on other sites

Do they have any wishes or suggestions they would like implemented? I'm out of ideas myself.

The sorting and filtering were the only complaints they had. Now they are happy as clams.

Maybe we can start looking for safe (free where possible) downloads for codecs to help get missing ones???

Its already a great utility. I can't think of much to add to it.

Link to comment
Share on other sites

  • 1 month later...

The sorting and filtering were the only complaints they had. Now they are happy as clams.

Maybe we can start looking for safe (free where possible) downloads for codecs to help get missing ones???

Its already a great utility. I can't think of much to add to it.

How would you know which ones is missing? :mellow:

I'm not sure how that would work...

I do plan to "smarten up" the listview so you don't have to re-sort after every search... But I don't know when I will come around to doing that.

Link to comment
Share on other sites

Hi AdmiralAlkex, first of all nice downloader, the only minimal bug that i found is that when you check "Launch downloaded scripts in SciTE" this will open the CC.ICO in SciTE.

I have a noob question, What are the uses of temporarily disable some codecs? What codecs deserved to be permanently disabled? a little introduction, not to much if you do not mind. i will apreciate.

Link to comment
Share on other sites

How would you know which ones is missing? :)

I'm not sure how that would work...

Sorry, I didn't mean for CC to identify what was missing. Gspot works really well for that.

I meant finding websites that various safe (no viruses or trojans) and free codecs can be downloaded. So many of them you find with Google are trojan sites. Not really an enhancement for CC, but then again, it does what it does so well now, that I couldn't think of any decent enhancements to request. :mellow:

Link to comment
Share on other sites

Hi AdmiralAlkex, first of all nice downloader, the only minimal bug that i found is that when you check "Launch downloaded scripts in SciTE" this will open the CC.ICO in SciTE.

I'm not surprised, I kinda rushed the "non .au3 files" support in.

Change

ConsoleWrite("Download succeeded: " & $sRepository & StringReplace($sPathEnd, "\", "/") & @CRLF)
If StringInStr($szDir, $szFName) And BitAnd(GUICtrlRead($hSciTE), $GUI_CHECKED) Then

to

ConsoleWrite("Download succeeded: " & $sRepository & StringReplace($sPathEnd, "\", "/") & @CRLF)
If $szExt <> ".au3" Then Return
If StringInStr($szDir, $szFName) And BitAnd(GUICtrlRead($hSciTE), $GUI_CHECKED) Then

And it should work. For now. I will update the attachment with this later.

I have a noob question, What are the uses of temporarily disable some codecs?

Good question.

One example:

Have you ever had Explorer crash when opening a folder with movies in? That's often because a broken codec crashed Explorer when trying to generate a thumbnail. instead of randomly uninstalling codecs you installed, you could disable the suspects till you know exactly who is broken and unistall just that one. Doesn't happen often nowadays, but in the old days...

What codecs deserved to be permanently disabled? a little introduction, not to much if you do not mind. i will apreciate.

Don't know, I've never felt like I needed to permanently disable one. I guess, maybe if your father died by playing to much Warcraft 3 you could disable "DivX for Blizzard Decoder Filter" as some really weird kind of revenge... Posted Image

Another example could be to disable some codec you get with Windows to make sure a third-party codec you installed is used instead.

But yeah, Average Joe probably won't use it much.

Sorry, I didn't mean for CC to identify what was missing. Gspot works really well for that.

I meant finding websites that various safe (no viruses or trojans) and free codecs can be downloaded. So many of them you find with Google are trojan sites. Not really an enhancement for CC, but then again, it does what it does so well now, that I couldn't think of any decent enhancements to request. Posted Image

Gspot is a good tool, I use that too.

I guess we could have some sort of list somewhere over good and commonly used codecs, but where? This thread? In CC? Backside of the moon?

I'm looking at the sorting thing right now.

Edit: fixed downloader

Edited by AdmiralAlkex
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...