شاه برنامه
با اين برنامه مي تونيد برنامه ها و دي ال ال هايي كه با سي پلاس پلاس نوشته شده و بعضي از برنامه هاي ديگر رو باز كنيد و ديالوگ هاش رو ببينيد .اين جور برنامه ها كه معروفترينش ResurceHaker هست براي جعل و فارسي كردن برنامه ها استفاده مي شه .البته برنامه اي كه من اين سورس رو ازش درآوردم قدرت ديدن تمامي اجزاي برنامه از جمله آيكون ها ومنو ها عكس ها و تصوير و صدا و خلاصه هر چي توي فايل هست رو داشت ولي من فقط اين قسمتش رو برداشتم.چون تمام اون قسمتها برنامه رو حجيم مي كرد كه از حوصله وبلاگ ما خارج است!! براي اين برنامه بايد كد زيادي بنويسيد.
خب شروع كنيد .پنجره ي كامپيونها رو باز كنيد ( Project/Component ) و تيك MicrosoftCommonDilog6 و تيك MicrosoftWindowsCommonControl6 را بزنيد
يك TreeView يك Commondialog و يك ImageList به فرم اضافه كنيد
خاصيت نام كامند ديالوگ رو به CDLG تنظيم كنيد.چهار تا عكس به ImageList اصافه كنيد .عكس اول علامت Search عكس دوم علامت پوشه بسته عكس سوم پشه باز و عكس چهارم علامت New باشه
مي تونيد از آيكونهاي خود وي بي استفاده كنيد .مثال
D:\Program Files\Microsoft Visual Studio\Common\Ghraphic
روي خاصيت Custom ليست درختي ( TreeView ) دو با ر كليك كنيد تا كادرش باز شود .سپس
خاصيت اسكرول ليست درختي( TreeView ) را فعال كنيد .و خاصيت ImageList آن را به ImageList1 تنظيم كنيد .
يك كامند ياتون با يه كادر عكس و يه تكست بوكس به فرم اضافه كنيد .خاصيت MultiLine تكست بوكس را به True و خاصيت ScrolBar اون رو به 3 تنظيم كنيد.
فرم و ليست درختي و كادر عكس رو خيلي بزرگ كنيد . و تكست بوكس و دكمه رو زياد بزرگ نكنيد
در كد كليك كامند كد زير رو بنويسيد
CurrentResType = "": CurrentResName = ""
RefreshView: ClearResource
cdlg.Filter = "Executable (dll,exe)|*.dll;*.exe|All files (*.*)|*.*"
cdlg.InitDir = App.Path
cdlg.ShowOpen
If cdlg.FileName <> "" Then
Call FillResTypes(TreeView1, cdlg.FileName, cdlg.FileTitle)
End If
در رويداد Collapse ليست درختي بنويسيد:
RefreshView
در رويداد Expand ليست درختي بنويسيد:
If Node.Child.Text = "Dummy" Then
TreeView1.Nodes.Remove Node.Child.Index
Call FillResNames(TreeView1, Node)
End If
و بلاخره در رويداد NodeClick ليست در ختي كد زير رو كپي كنيد:
Dim ResType As String, ResName As String, ret As Boolean
Text1.Visible = False
RefreshView
CurrentResType = "": CurrentResName = ""
If Node = Node.Root Then Exit Sub
Label1 = "ResType: " & Node.Text
If Node.Key = "" Then
CurrentResType = Node.Text
Else: CurrentResType = Mid(Node.Key, 2)
End If
If Node.Parent = Node.Root Then Exit Sub
MousePointer = vbHourglass
If Node.Parent.Key = "" Then
ResType = Node.Parent.Text
Else: ResType = Mid(Node.Parent.Key, 2)
End If
ResName = Node.Text
If IsNumeric(ResName) Then ResName = "#" & ResName
CurrentResType = ResType: CurrentResName = ResName
Label1 = "ResType: " & Node.Parent.Text & vbCrLf & "ResName: " & ResName & vbCrLf & "ResSize: " & ResSize(ResType, ResName) & " bytes"
Select Case UCase(ResType)
Case "1", "2", "3", "12", "14" '---picture(Icon)
Case "4" 'Menu
Case "5", "17" 'Dialog
ret = ShowDialog(ResName, Picture1)
Case "6" 'String
Case "9" 'Accelerators Table
Case "11" 'Message Table
Case "16" 'version info
Case "23", "HTML" 'Web Page
Case "AVI" '-video
Case "JPG", "JPEG", "GIF", "PNG", "TIF", "TIFF", "WMF", "EMF" - -Picture
End Select
If ret = False Then
If Text1.Visible Then
Text1.Text = Text1.Text & vbNewLine & "Can not load resourse"
Else: Picture1.Print "Can not load resourse"
End If
End If
Picture1.Refresh: MousePointer = vbDefault
فكر كرديدن تموم شد حالا قسمت اصليش مونده .يه ماژول به فرم اضافه كنيد و كد زير رو داخلش كپي كنيد
.حالا برنامه رو اجرا كنيد .بازدن كامند كادر باز مي شه كه مي تونيد براش فايل اجرايي يا دي ال ال انتخاب كنيد تا داخل برنامه باز بشه .
راستي دقت كردين آدم نظر نمي ده چقدر عذاب وجدان مي گيره !!اون هيچي فشار قبر رو چي خدا بخير بگزرونه!!آره فشار قبر