Autoit LANGID?

Programlama ve Script dilleri konusunda bilgi paylaşım alanıdır.
Cevapla
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Autoit LANGID?

Mesaj gönderen anxious »

@BlueLife Resimde gösterdiğim langid değerini Manuel haricinde nasıl değiştirebilirim?
https://prnt.sc/rwiqx6
Kullanıcı avatarı
TRWE_2012
Exabyte1
Exabyte1
Mesajlar: 10940
Kayıt: 25 Eyl 2013, 13:38
cinsiyet: Erkek
Teşekkür etti: 882 kez
Teşekkür edildi: 1915 kez

Re: Autoit LANGID?

Mesaj gönderen TRWE_2012 »

anxious yazdı: 10 Nis 2020, 07:58 @BlueLife Resimde gösterdiğim langid değerini Manuel haricinde nasıl değiştirebilirim?
https://prnt.sc/rwiqx6
Yabancı kaynaklar da şöyle aratabilirsin

How can I change the Autoit langid value except for Manual?
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 269
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 24 kez

Re: Autoit LANGID?

Mesaj gönderen BlueLife »

@anxious

AutoIt3Wrapper ile bunu sağlıyorduk. Türkçe için örnek;
#AutoIt3Wrapper_Res_Language=1055

AutoIt3Wrapper komutları;
https://www.autoitscript.com/wiki/AutoI ... Directives

Dil kodları;
https://www.autoitscript.com/autoit3/do ... gCodes.htm
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit LANGID?

Mesaj gönderen anxious »

@trwe Zaten Manuel şu programlarla değiştirebiliyorum Restorator,Resource Hacker,Cff Explorer.
@trwe Yanlış anladınız "Manuel haricinde!"

@BlueLife #AutoIt3Wrapper_Res_Language=1055 parametresi şurayı ayarlıyor https://prnt.sc/rwtwde
benim bahsettiğim herhangi bir resource editör ile açtığımızda
Cff Explorer veya Resource Hacker gibi
resimde görülen yer https://prnt.sc/rwtzd8

Aslında şu kodlar beni anlamanıza yardımcı olabilir.
Bu kodlar yapıyor fakat var olanı değilde dışarıdan eklenenin dilini ayarlıyor.
Kısacası Bunu ayarlayan kernel32.dll
DllCall("kernel32.dll","int","UpdateResource","hwnd",$hUpdate,"long",$lpType,"str",$lpName,"short",$wLanguage,"ptr",$pBuffer,"DWORD",$tSize)

Kod: Tümünü seç

#Include <WinAPI.au3>

_UpdateResource("Source.exe")

Func _UpdateResource($sFile = "AUTOIT.EXE",$lpType = 10 ,$lpName = "SCRIPT", _
$wLanguage = 2057,$bDiscard = False,$InpResFile = "TXT.TXT")

$hUpdate =  _BeginUpdateResource($sFile)
Local $result, $hFile, $tSize, $tBuffer, $pBuffer,$bread = 0
Select
Case $lpType = 10 OR $lpType = 16 OR $lpType = 24;RT_RCDATA, RT_VERSION and RT_MANIFEST
$hFile = _WinAPI_CreateFile($InpResFile, 2, 2)
IF @error THEN Return 0
$tSize = FileGetSize($InpResFile)
IF @error THEN Return 0
$tBuffer = DllStructCreate("char Text[" & $tSize & "]")
IF @error THEN Return 0
$pBuffer = DllStructGetPtr($tBuffer)
IF @error THEN Return 0
_WinAPI_ReadFile($hFile, $pBuffer, FileGetSize($InpResFile), $bread, 0)
IF @error THEN Return 0
_WinAPI_CloseHandle($hFile)
IF @error THEN Return 0
$result = DllCall("kernel32.dll","int","UpdateResource", _
                                    "hwnd",$hUpdate, _
                                    "long",$lpType, _
                                    "str",$lpName, _
                                    "short",$wLanguage, _
                                    "ptr",$pBuffer, _
                                    "DWORD",$tSize)
IF @error THEN
Return 0
Else
_EndUpdateResource($hUpdate,$bDiscard)
Return 1
EndIf
EndSelect
EndFunc

Func _BeginUpdateResource($sFile)
$aReturn = DllCall("kernel32.dll","int","BeginUpdateResource","str",$sFile,"int",False)
Return $aReturn[0]
EndFunc

Func _EndUpdateResource($hResource,$bDiscard = 0)
$result = DllCall("kernel32.dll", "int", "EndUpdateResource", "int", $hResource, "int", $bDiscard)
EndFunc
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 269
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 24 kez

Re: Autoit LANGID?

Mesaj gönderen BlueLife »

@anxious

AutoIt3Wrapper komutlarında dil kodunu girebilirsin. Örnek;

#AutoIt3Wrapper_Res_File_Add=SETUP.EXE, rt_rcdata, SETUP.EXE,1055
#AutoIt3Wrapper_Res_File_Add=IMAGE.PNG, rt_rcdata,IMAGE.PNG,1055
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit LANGID?

Mesaj gönderen anxious »

@BlueLife Verdiğiniz komutlar RCData klasörüne sonradan eklenecek olanlar için geçerli.
Yani yukarıda verdiğim kodlarla aynı işi görüyor fakat ben derlenmiş olan bir exe üzerinde çalışıyorum.
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 269
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 24 kez

Re: Autoit LANGID?

Mesaj gönderen BlueLife »

@anxious

Ben derlediğin autoit uygulaması için soruyorsun sandım. ilk mesajda belirtmediğin için malesef yanlış anlamışım.
Konuya dönersek bu konuda malesef fazla fikrim yok :(

Çok uzun yıllar önce Resource Hacker prametreleri ile uygulamanın resource alanındaki dosyaları güncelliyordum. Autoit kodlarıyla halledemezsen bu tip bir yöntem izleyebilirsin. Kısaca Autoit uygulaması üzerinden ilgili resource programlarını parametreleri aracılığıyla çalıştırılabilir.
Kolay gelsin.
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit LANGID?

Mesaj gönderen anxious »

Resource Hacker de birçok parametre denedim ama malesef onda başarılı olamadım.
Denediğim son komut : http://www.angusj.com/resourcehacker/
ResourceHacker.exe -open old.exe -save new.exe -action modify -mask RCData,SCRIPT,1055
anxious
Byte3
Byte3
Mesajlar: 114
Kayıt: 11 Mar 2015, 07:56
Teşekkür edildi: 1 kez

Re: Autoit LANGID?

Mesaj gönderen anxious »

BulueLife RCData ya eklediğin PNG dosyalarını nasıl kullanıyorsun bir udf ilemi.
Misal
#AutoIt3Wrapper_Res_File_Add=IMAGE.PNG, rt_rcdata,IMAGE.PNG,1055
Yukarıda rcdata ya eklediğim IMAGE.PNG dosyasını form'a eklemek istiyorum
Ben şu udf e baktım ama yeni sürüm autoit de hata veriyor,bunun için bir öneriniz varmıdır veya örnek bir kod parçacığı.
https://www.autoitscript.com/forum/topi ... cesex-udf/
Kullanıcı avatarı
BlueLife
Kilobyte1
Kilobyte1
Mesajlar: 269
Kayıt: 29 Ağu 2014, 20:42
Teşekkür etti: 14 kez
Teşekkür edildi: 24 kez

Re: Autoit LANGID?

Mesaj gönderen BlueLife »

@anxious

Mesajını yeni farkettim, geç yanıt için kusura bakma. Antivirüs uyarıları yüzünden programlarımızda çok eski bir autoit sürümü kullanıyoruz.
Resource alanından veri çekmek için resources.au3 ve pngleri kullanmak için GDIPlus.au3 kullanmıştım.
https://www.autoitscript.com/forum/topi ... urces-udf/
https://www.google.com/search?q=site%3A ... source+png

Benim kullandığım kodlar programın diğer kodlarıyla iç-içe olduğu için bunları ayıklamak uzun süreceği için bunları paylaşamıyorum.
Cevapla