1) попробуйте использовать « Bat To Exe Converter » и добавьте значок в file.bat к file.exe
blockquote>2) или, сделайте ярлык для летучей мыши, и добавьте значок к этому ярлыку, но скопируйте ico в этот относительный путь (например,% temp% или % APPDATA%) и вызвать бит по этому ярлыку с относительным путем к значку ...
blockquote>установите значок в этом ярлыке, добавив этот путь "% temp% \ My_Icon.ico" и позвонив по ссылке, чтобы запустить летучую мышь, посмотрите, как и результаты в картинках ...
После долгих поисков я нашел этот код:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'Function to Search for a String in a Code Module. It will return True if it is found and
'False if it is not. It has an optional parameter (NewString) that will allow you to
'replace the found text with the NewString. If NewString is not included in the call
'to the function, the function will only find the string not replace it.
'
'Created by Joe Kendall 02/07/2003
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Function SearchOrReplace(ByVal ModuleName As String, ByVal StringToFind As String, _
Optional ByVal NewString, Optional ByVal FindWholeWord = False, _
Optional ByVal MatchCase = False, Optional ByVal PatternSearch = False) As Boolean
Dim mdl As Module
Dim lSLine As Long
Dim lELine As Long
Dim lSCol As Long
Dim lECol As Long
Dim sLine As String
Dim lLineLen As Long
Dim lBefore As Long
Dim lAfter As Long
Dim sLeft As String
Dim sRight As String
Dim sNewLine As String
Set mdl = Modules(ModuleName)
If mdl.Find(StringToFind, lSLine, lSCol, lELine, lECol, FindWholeWord, _
MatchCase, PatternSearch) = True Then
If IsMissing(NewString) = False Then
' Store text of line containing string.
sLine = mdl.Lines(lSLine, Abs(lELine - lSLine) + 1)
' Determine length of line.
lLineLen = Len(sLine)
' Determine number of characters preceding search text.
lBefore = lSCol - 1
' Determine number of characters following search text.
lAfter = lLineLen - CInt(lECol - 1)
' Store characters to left of search text.
sLeft = Left$(sLine, lBefore)
' Store characters to right of search text.
sRight = Right$(sLine, lAfter)
' Construct string with replacement text.
sNewLine = sLeft & NewString & sRight
' Replace original line.
mdl.ReplaceLine lSLine, sNewLine
End If
SearchOrReplace = True
Else
SearchOrReplace = False
End If
Set mdl = Nothing
End Function
Я предполагаю, что вы имеете в виду, как это сделать программно (иначе это просто ctrl-h). Если это не делается в контексте надстройки VBE, это редко (если вообще когда-либо) является хорошей идеей. Самомодифицирующийся код часто помечается программным обеспечением AV, хотя доступ позволит вам это сделать, он недостаточно надежен, чтобы справиться с ним, и может привести к проблемам с повреждением и т. Д. Кроме того, если вы выберете самомодификацию код, который вы запрещаете себе когда-либо использовать MDE или даже пароль проекта. Другими словами, вы никогда не сможете защитить свой код. Возможно, будет лучше, если вы сообщите нам, какую проблему вы пытаетесь решить с помощью самомодифицирующегося кода, и посмотрите, можно ли найти более надежное решение.
Check out the VBA object browser for the Access library. Under the Module object you can search the Module text as well as make replacements. Here is an simple example:
In Module1
Sub MyFirstSub()
MsgBox "This is a test"
End Sub
In Module2
Sub ChangeTextSub()
Dim i As Integer
With Application.Modules("Module1")
For i = 1 To .CountOfLines
If InStr(.Lines(i, 1), "This is a Test") > 0 Then
.ReplaceLine i, "Msgbox ""It worked!"""
End If
Next i
End With
End Sub
After running ChangeTextSub, MyFirstSub should read
Sub MyFirstSub()
MsgBox "It worked!"
End Sub
It's a pretty simple search but hopefully that can get you going.
дополнительно для функции (цикл по всем строкам)
Public Function ReplaceWithLine(modulename As String, StringToFind As String, NewString As String)
Dim mdl As Module
Set mdl = Modules(modulename)
For x = 0 To mdl.CountOfLines
Call SearchOrReplace(modulename, StringToFind, NewString)
Next x
Set mdl = Nothing
End Function
Enjoy ^^