IconChanger 2.1
Ik heb vandaag een tool met de naam 'IconChanger' gemaakt
die het mogelijk maakt om het icoon van een willekeurige USB-drive makkelijk aan te passen.
En voor de geïnteresseerde, de (nu, oude) broncode: http://pastebin.org/45550
Tips en commentaar zijn zoals altijd welkom
Bedankt voor alle commentaar, ik heb nu een nieuwe versie gemaakt waar ik met de volgende commentaar heb rekening gehouden;
-Functie gebruiken
-Het GO-crashprobleem
-OpenFileDialog
-Naamgeving
Hier is een nieuwe downloadlink; klik
Todo:
-Driveinfo gebruiken
-Er voor zorgen dat het icoon-bestand niet 'icoon' moet heten
-Er voor zorgen dat het programma niet moet worden afgesloten als er niets is ingevuld
-Nieuwe commentaar erin verwerken
Edit2: Bedankt weer voor alle commentaar, ik heb nu een nieuwe versie gemaakt waar ik met de volgende commentaar heb rekening gehouden;
-Driveinfo gebruiken
-Er voor zorgen dat het icoon-bestand niet 'icoon' moet heten
-Er voor zorgen dat het programma niet moet worden afgesloten als er niets is ingevuld
-Nieuwe commentaar erin verwerken
Dat is allemaal goed gelukt, en hier is de broncode weer:
Visual Basic .NET:
Downloadlink; http://s000.tinyupload.co...e_id=97936709277412897064
die het mogelijk maakt om het icoon van een willekeurige USB-drive makkelijk aan te passen.
En voor de geïnteresseerde, de (nu, oude) broncode: http://pastebin.org/45550
Tips en commentaar zijn zoals altijd welkom
Bedankt voor alle commentaar, ik heb nu een nieuwe versie gemaakt waar ik met de volgende commentaar heb rekening gehouden;
-Functie gebruiken
-Het GO-crashprobleem
-OpenFileDialog
-Naamgeving
Hier is een nieuwe downloadlink; klik
Todo:
-Driveinfo gebruiken
-Er voor zorgen dat het icoon-bestand niet 'icoon' moet heten
-Er voor zorgen dat het programma niet moet worden afgesloten als er niets is ingevuld
-Nieuwe commentaar erin verwerken
Edit2: Bedankt weer voor alle commentaar, ik heb nu een nieuwe versie gemaakt waar ik met de volgende commentaar heb rekening gehouden;
-Driveinfo gebruiken
-Er voor zorgen dat het icoon-bestand niet 'icoon' moet heten
-Er voor zorgen dat het programma niet moet worden afgesloten als er niets is ingevuld
-Nieuwe commentaar erin verwerken
Dat is allemaal goed gelukt, en hier is de broncode weer:
Visual Basic .NET:
1 | Imports System.IO
|
Downloadlink; http://s000.tinyupload.co...e_id=97936709277412897064
|
|
Tweakers united! |
|
|
Dé iPhone-killer |
Reacties
Goto's worden volgens mij zelden nog gebruikt in 3G talen, en kun je vermijden door je code op te delen in functies (blijft ook overzichtelijker).
http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF
http://www.cs.utexas.edu/users/EWD/ewd02xx/EWD215.PDF
Normaal gebruik ik ook geen GoTo's (dit was de eerste keer trouwens) maar het leek me in dit geval het makkelijkst 
Nooit van functies gehoord danNormaal gebruik ik ook geen GoTo's (dit was de eerste keer trouwens) maar het leek me in dit geval het makkelijkst
* TeeDee vraagt zich serieus af waarom je een Goto gebruikt. Zeker als je er nog nooit eerder meegewerkt heb vind ik het een vreemde keuze.
Ook de NLD variabelen vind ik tenenkrommend, maar dat is zoals aangegeven iets persoonlijks.
Ook de NLD variabelen vind ik tenenkrommend, maar dat is zoals aangegeven iets persoonlijks.
Dit had wel iets beter gekund 
1. Je gebruikt een GoTo en een label.. Je weet toch dat die dingen in VB script thuishoren, in VB.Net doen we dat niet meer
2. Als je eerst op Go klikt, crashed het programma.
3. Je kan het beste alleen de removable drives tonen (DriveInfo)
4. Maak het programma zo dat je een .ico bestand kan selecteren (met een OpenFileDialog)
En zo zijn er nog meer dingen
1. Je gebruikt een GoTo en een label.. Je weet toch dat die dingen in VB script thuishoren, in VB.Net doen we dat niet meer
2. Als je eerst op Go klikt, crashed het programma.
3. Je kan het beste alleen de removable drives tonen (DriveInfo)
4. Maak het programma zo dat je een .ico bestand kan selecteren (met een OpenFileDialog)
En zo zijn er nog meer dingen
@ TeeDee, Jawel 
@sanderev66, bedankt voor je commentaar, daar zal ik vanavond eens naar kijken.
Met OpenFileDialog heb ik al wat zitten proberen maar dat lukte niet helemaal daarom dus deze manier
@sanderev66, bedankt voor je commentaar, daar zal ik vanavond eens naar kijken.
Met OpenFileDialog heb ik al wat zitten proberen maar dat lukte niet helemaal daarom dus deze manier
[Reactie gewijzigd op woensdag 14 oktober 2009 14:20]
Visual Basic .NET:
1 | dim bestand as string
|
Dat moet werken
Waarom die je dit soort dingen "If CheckBox1.Checked = True Then'? Het vergelijken met True is compleet overbodig.
Soms is het wel wat leesbaarder 
En ik mag hopen dat de compiler het wel optimaliseert...
Naamgeving van Forms, Buttons enzo. Form1 en Button1 zijn wel hele goede beschrijvingen 
Een button met "Klik eerst op mij" kan ook weggeautomatiseerd worden...
@ sanderev66: 2. Als je eerst op Go klikt, crashed het programma.
vandaar dat er op de eerste button ook duidelijk staat: Klik eerst op mij ...
Denk dat het 'tooltje' op zich wel handig zou kunnen zijn maar qua coding kan er nog vééél verbeterd worden
*no offence, is mijn mening maar*
vandaar dat er op de eerste button ook duidelijk staat: Klik eerst op mij ...
Denk dat het 'tooltje' op zich wel handig zou kunnen zijn maar qua coding kan er nog vééél verbeterd worden
Weet ik, maar nu kan het programma vlug vanaf een usb-stick worden gedraaid om bijvoorbeeld de iconen van andere sticks op ook andere computers te wijzigen 
Bedankt voor de commentaar trouwens, er wordt - straks- aan gewerkt
Bedankt voor de commentaar trouwens, er wordt - straks- aan gewerkt
[Reactie gewijzigd op woensdag 14 oktober 2009 15:11]
Ik denk dat je vanuit VB6 komt, of niet?
Nieuwe versie staat online 
Laat de commentaar maar weer komen
Laat de commentaar maar weer komen
Verschrikkelijke 'taal' VB, kan me niet voorstellen dat iemand daar nog in wil werken en vooral kan werken.
Wat is er mis met VB? Ik vind het vaak een stuk leesbaarder dan C-achtigen. (Echter ben ik wel overgestapt op C#)
Ik heb nog wel 2 opmerkingen, je moet niet de filename property van de OpenFileDialog aanpassen.
En:
Visual Basic .NET:
Zo krijg je de stationletters van USB drives in je combobox
Ook is het verstandig om van de combobox de DropDownStyle op DropDownList te zetten
Je kan LoadDrives ook vanaf een nieuwe knop aanroepen om zo de lijst te refreshen.
Ik heb nog wel 2 opmerkingen, je moet niet de filename property van de OpenFileDialog aanpassen.
En:
Visual Basic .NET:
1 | Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
|
Zo krijg je de stationletters van USB drives in je combobox
[Reactie gewijzigd op woensdag 14 oktober 2009 16:58]
Kan mn post niet editen..
Visual Basic .NET:
Dit kan je het beste veranderen in:
code:
Werkt wat beter
Visual Basic .NET:
1 | 'kijken ofdat de combobox is ingevuld
|
Dit kan je het beste veranderen in:
code:
1
2
3
4
5
| 'kijken ofdat de combobox is ingevuld
If cboDrives.SelectedIndex < 0 Then
MessageBox.Show("Selecteer eerst de USB-drive", "Fout")
Return
End If |
Werkt wat beter
Vreemd dat je je reactie niet kan bewerken, bij de instellingen staat alles nog goed
Maar euu bedankt voor je code, het combobox-gedoe is ook al opgelost, maar op een andere manier, de code en een nieuwe exe zal ik later uploaden
Maar euu bedankt voor je code, het combobox-gedoe is ook al opgelost, maar op een andere manier, de code en een nieuwe exe zal ik later uploaden
Oké ik wacht wel af 
Je kan bijvoorbeeld dit:
Visual Basic .NET:
Vervangen door:
Visual Basic .NET:
Code wordt wel langer maar wel bruikbaarder en leesbaarder.
Als je bijvoorbeeld de bestandsnaam van het icon wil aanhouden dat geopend wordt moet je een kijken naar de File class, hiervan kan je ook heel eenvoudig alleen de bestandsnaam opvragen in plaats van het gehele pad.
Visual Basic .NET:
1 | 'bestanden verbergen
|
Vervangen door:
Visual Basic .NET:
1 | HideFile(doelstick & ":\autorun.inf")
|
Code wordt wel langer maar wel bruikbaarder en leesbaarder.
Als je bijvoorbeeld de bestandsnaam van het icon wil aanhouden dat geopend wordt moet je een kijken naar de File class, hiervan kan je ook heel eenvoudig alleen de bestandsnaam opvragen in plaats van het gehele pad.
[Reactie gewijzigd op woensdag 14 oktober 2009 19:49]
Rewrite 
Visual Basic .NET:
Visual Basic .NET:
1 | Imports System.IO
|
[Reactie gewijzigd op woensdag 14 oktober 2009 20:40]
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
| See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.IO.FileNotFoundException: Could not find file 'C:\Icon\icoon.ico'.
File name: 'C:\Icon\icoon.ico'
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite)
at System.IO.File.Copy(String sourceFileName, String destFileName)
at IconChanger.Form1.Button1_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
IconChanger
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:/IconChanger.exe
----------------------------------------
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
----------------------------------------
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box. |
doe eerst nog een check of er een ico is; zo niet geef dan nette melding
[Reactie gewijzigd op woensdag 14 oktober 2009 23:53]
http://rapidshare.com/files/293097824/iconChanger_3.0.21.exe - probeer deze eens 
de nieuwste versie, IconChanger 2.1 staat online 
Versie 3, codename "Micon", build 27 staat ook online, http://gathering.tweakers.net/forum/view_message/32754246
Knap werk! Hij is nu bijna perfect, je moet alleen nog een knopje toevoegen waarmee we de combobox opnieuw kunnen inlezen (Reload.. ofzo) zodat we het programma niet hoeven te herstarten als je een USB stick later aansluit 
