EXE Uzantılı Bir dosyanın Kodlanması HK.
-
Cemil Atay
- Byte3

- Mesajlar: 108
- Kayıt: 08 Nis 2020, 02:00
- cinsiyet: Erkek
- Teşekkür etti: 23 kez
- Teşekkür edildi: 36 kez
- İletişim:
EXE Uzantılı Bir dosyanın Kodlanması HK.
Sevgiyle merhaba!
Arkadaşlar, bana bir .exe dosyası hazırlanması gerekiyor.
Yapay zekayı kullanarak python dilinde bir kodlama yaptım hatta çalışıyor ama .py dosyasının boyutu 44 kb iken, .exe haline gelmiş boyutu 16 mb.
Python dışında farklı bir dille yazılmış .ex dosyasının boyutu dahada küçük olacaktır diye düşünüyorum.
İhtiyacım olan .exe dosyasının içeriğini maddeler halinde sırasıyla aşağıya alıyorum;
1- Kodlanacak .exe dosyasının arayüzü ekran okuyucu tarafından okunabilmeli. Örnek olması açısından, python'da wx arayüzünü kullanıyoruz.
2- Program başlığı: Sunucu Seçimi
3- Kodlanacak bu .exe çalıştırıldığında, aynı dizinde bulunan ( nvda1.exe ) dosyasını çalıştıracak.
4- Bir combobox oluşturulacak ve içine şu öğler yerleştirilecek:
MustiKelekRemote, NvdaRemote, SohbetMevsimiRemote, VabisRemote
5- MustiKelekRemote m.cmd yi, NvdaRemote n.cmd yi, SohbetMevsimiRemote s.cmd yi, VabisRemote v.cmd yi çalıştıracak.
Önemli çok çok önemli not!
Oluşturulan bu combobox içinde seçim yaparken otomatik olarak tetiklenmemeli, yön tuşları ile seçim yaptıktan sonra seçilen öğe enter tuşu ile aktif edilmeli.
6- Comboboxtan öğe seçilip enter tuşuyla aktif edildiğinde, program kapanmalı.
Zaman ayırıp ilgilenecek bütün arkadaşlara şimdiden teşekkür ediyor, iyi çalışmalar diliyorum.
Arkadaşlar, bana bir .exe dosyası hazırlanması gerekiyor.
Yapay zekayı kullanarak python dilinde bir kodlama yaptım hatta çalışıyor ama .py dosyasının boyutu 44 kb iken, .exe haline gelmiş boyutu 16 mb.
Python dışında farklı bir dille yazılmış .ex dosyasının boyutu dahada küçük olacaktır diye düşünüyorum.
İhtiyacım olan .exe dosyasının içeriğini maddeler halinde sırasıyla aşağıya alıyorum;
1- Kodlanacak .exe dosyasının arayüzü ekran okuyucu tarafından okunabilmeli. Örnek olması açısından, python'da wx arayüzünü kullanıyoruz.
2- Program başlığı: Sunucu Seçimi
3- Kodlanacak bu .exe çalıştırıldığında, aynı dizinde bulunan ( nvda1.exe ) dosyasını çalıştıracak.
4- Bir combobox oluşturulacak ve içine şu öğler yerleştirilecek:
MustiKelekRemote, NvdaRemote, SohbetMevsimiRemote, VabisRemote
5- MustiKelekRemote m.cmd yi, NvdaRemote n.cmd yi, SohbetMevsimiRemote s.cmd yi, VabisRemote v.cmd yi çalıştıracak.
Önemli çok çok önemli not!
Oluşturulan bu combobox içinde seçim yaparken otomatik olarak tetiklenmemeli, yön tuşları ile seçim yaptıktan sonra seçilen öğe enter tuşu ile aktif edilmeli.
6- Comboboxtan öğe seçilip enter tuşuyla aktif edildiğinde, program kapanmalı.
Zaman ayırıp ilgilenecek bütün arkadaşlara şimdiden teşekkür ediyor, iyi çalışmalar diliyorum.
- GOG
- Gigabyte2

- Mesajlar: 2551
- Kayıt: 03 Nis 2011, 14:10
- cinsiyet: Erkek
- Teşekkür etti: 19 kez
- Teşekkür edildi: 60 kez
- İletişim:
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
Merhaba;
Boyuta neden önemli ve yapay zekaya autohotkey veya autoit yapabilir mi onuda sorabilirsin.
Boyuta neden önemli ve yapay zekaya autohotkey veya autoit yapabilir mi onuda sorabilirsin.
- TRWE_2012
- Zettabyte1

- Mesajlar: 15194
- Kayıt: 25 Eyl 2013, 13:38
- cinsiyet: Erkek
- Teşekkür etti: 2517 kez
- Teşekkür edildi: 5333 kez
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
Evet, AutoHotkey veya AutoIt kullanarak da istediğiniz işlevselliği sağlayan bir uygulama oluşturabilirsiniz. Her iki dil de GUI oluşturma ve belirli komut dosyalarını çalıştırma yeteneğine sahiptir. Aşağıda her iki dil için örnek kodlar verilmiştir.GOG yazdı: 21 Oca 2025, 12:06 Merhaba;
Boyuta neden önemli ve yapay zekaya autohotkey veya autoit yapabilir mi onuda sorabilirsin.
AutoHotkey Örneği
Kod: Tümünü seç
; AutoHotkey ile GUI oluşturma
Gui, Add, ComboBox, vMyComboBox, MustiKelekRemote|NvdaRemote|SohbetMevsimiRemote|VabisRemote
Gui, Add, Button, gRunCommand, Seç
Gui, Show, , Sunucu Seçimi
return
RunCommand:
Gui, Submit, NoHide
if (MyComboBox = "MustiKelekRemote") {
Run, m.cmd
} else if (MyComboBox = "NvdaRemote") {
Run, n.cmd
} else if (MyComboBox = "SohbetMevsimiRemote") {
Run, s.cmd
} else if (MyComboBox = "VabisRemote") {
Run, v.cmd
}
Run, nvda1.exe
ExitApp
return
GuiClose:
ExitApp
Kod: Tümünü seç
; AutoIt ile GUI oluşturma
#include <GUIConstants.au3>
$hGUI = GUICreate("Sunucu Seçimi", 300, 200)
$ComboBox = GUICtrlCreateCombo("MustiKelekRemote|NvdaRemote|SohbetMevsimiRemote|VabisRemote", 10, 10, 280, 100)
$Button = GUICtrlCreateButton("Seç", 10, 50, 280, 30)
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $Button
$selected = GUICtrlRead($ComboBox)
If $selected = "MustiKelekRemote" Then
Run("m.cmd")
ElseIf $selected = "NvdaRemote" Then
Run("n.cmd")
ElseIf $selected = "SohbetMevsimiRemote" Then
Run("s.cmd")
ElseIf $selected = "VabisRemote" Then
Run("v.cmd")
EndIf
Run("nvda1.exe")
Exit
EndSwitch
WEnd
-
Cemil Atay
- Byte3

- Mesajlar: 108
- Kayıt: 08 Nis 2020, 02:00
- cinsiyet: Erkek
- Teşekkür etti: 23 kez
- Teşekkür edildi: 36 kez
- İletişim:
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
İlginiz için teşekkür ediyorum. Lakin, bu kodların nasıl derleneceği hakkında bir bilgiye sahip deyilim. Genel anlamda, bu tür editör ve derleyiciler kullandığımız ekran okuyucu programlarla uyumlu değil, içeriği okuyamıyoruz.TRWE_2012 yazdı: 21 Oca 2025, 12:27Evet, AutoHotkey veya AutoIt kullanarak da istediğiniz işlevselliği sağlayan bir uygulama oluşturabilirsiniz. Her iki dil de GUI oluşturma ve belirli komut dosyalarını çalıştırma yeteneğine sahiptir. Aşağıda her iki dil için örnek kodlar verilmiştir.GOG yazdı: 21 Oca 2025, 12:06 Merhaba;
Boyuta neden önemli ve yapay zekaya autohotkey veya autoit yapabilir mi onuda sorabilirsin.
- velociraptor
- Yottabyte4

- Mesajlar: 53938
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 19763 kez
- Teşekkür edildi: 11981 kez
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
Henüz Python un exelerinin boyutunu düşürebilene rastlamadım , 3 satır koda 16 Mb vermesi normal
-
Cemil Atay
- Byte3

- Mesajlar: 108
- Kayıt: 08 Nis 2020, 02:00
- cinsiyet: Erkek
- Teşekkür etti: 23 kez
- Teşekkür edildi: 36 kez
- İletişim:
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
Ah Tarkan abim ah! Vbs ile combobox Radio buttonlar vs. oluşturabilseydik, hiç bunlara gerek kalmazdı.velociraptor yazdı: 21 Oca 2025, 13:06 Henüz Python un exelerinin boyutunu düşürebilene rastlamadım , 3 satır koda 16 Mb vermesi normal
- velociraptor
- Yottabyte4

- Mesajlar: 53938
- Kayıt: 14 Mar 2006, 02:33
- cinsiyet: Erkek
- Teşekkür etti: 19763 kez
- Teşekkür edildi: 11981 kez
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
Yapay zekadan o kodları Powershell ile oluşturmasını iste , Powershell de combobox Radio buttonları oluşturulabiliyor diye biliyorum.
-
Cemil Atay
- Byte3

- Mesajlar: 108
- Kayıt: 08 Nis 2020, 02:00
- cinsiyet: Erkek
- Teşekkür etti: 23 kez
- Teşekkür edildi: 36 kez
- İletişim:
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
Bi şansımı deneyeceğim abi. Ücretli kullanmadığımız için epey bi uğraştırıyor, yoruyor bizi yapay zeka.velociraptor yazdı: 21 Oca 2025, 13:11 Yapay zekadan o kodları Powershell ile oluşturmasını iste , Powershell de combobox Radio buttonları oluşturulabiliyor diye biliyorum.
-
Cemil Atay
- Byte3

- Mesajlar: 108
- Kayıt: 08 Nis 2020, 02:00
- cinsiyet: Erkek
- Teşekkür etti: 23 kez
- Teşekkür edildi: 36 kez
- İletişim:
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
İnternette şöyle bir kod buldum powershell ile oluşturulmuş ama çalıştıracağım dosyalarımı nasıl ekleyeceğimi anlayamadım.
Kod: Tümünü seç
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$form = New-Object System.Windows.Forms.Form
$form.Text = 'Data Entry Form'
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = 'CenterScreen'
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Point(75,120)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = 'OK'
$OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $OKButton
$form.Controls.Add($OKButton)
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Point(150,120)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = 'Cancel'
$CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $CancelButton
$form.Controls.Add($CancelButton)
$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Please make a selection from the list below:'
$form.Controls.Add($label)
$listBox = New-Object System.Windows.Forms.Listbox
$listBox.Location = New-Object System.Drawing.Point(10,40)
$listBox.Size = New-Object System.Drawing.Size(260,20)
$listBox.SelectionMode = 'MultiExtended'
[void] $listBox.Items.Add('Item 1')
[void] $listBox.Items.Add('Item 2')
[void] $listBox.Items.Add('Item 3')
[void] $listBox.Items.Add('Item 4')
[void] $listBox.Items.Add('Item 5')
$listBox.Height = 70
$form.Controls.Add($listBox)
$form.Topmost = $true
$result = $form.ShowDialog()
if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
$x = $listBox.SelectedItems
$x
}
- TRWE_2012
- Zettabyte1

- Mesajlar: 15194
- Kayıt: 25 Eyl 2013, 13:38
- cinsiyet: Erkek
- Teşekkür etti: 2517 kez
- Teşekkür edildi: 5333 kez
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
PowerShell ile oluşturduğun bu form, bir liste kutusu (ListBox) içeriyor ve kullanıcıdan bir veya daha fazla öğe seçmesini istiyor. Seçilen öğeleri almak için formu gösterdikten sonra SelectedItems özelliğini kullanıyorsun. Ancak, dosyalarını eklemek için liste kutusuna dosya adlarını eklemen gerekiyor.Cemil Atay yazdı: 21 Oca 2025, 13:42 İnternette şöyle bir kod buldum powershell ile oluşturulmuş ama çalıştıracağım dosyalarımı nasıl ekleyeceğimi anlayamadım.
Kod: Tümünü seç
Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName System.Drawing $form = New-Object System.Windows.Forms.Form $form.Text = 'Data Entry Form' $form.Size = New-Object System.Drawing.Size(300,200) $form.StartPosition = 'CenterScreen' $OKButton = New-Object System.Windows.Forms.Button $OKButton.Location = New-Object System.Drawing.Point(75,120) $OKButton.Size = New-Object System.Drawing.Size(75,23) $OKButton.Text = 'OK' $OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK $form.AcceptButton = $OKButton $form.Controls.Add($OKButton) $CancelButton = New-Object System.Windows.Forms.Button $CancelButton.Location = New-Object System.Drawing.Point(150,120) $CancelButton.Size = New-Object System.Drawing.Size(75,23) $CancelButton.Text = 'Cancel' $CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel $form.CancelButton = $CancelButton $form.Controls.Add($CancelButton) $label = New-Object System.Windows.Forms.Label $label.Location = New-Object System.Drawing.Point(10,20) $label.Size = New-Object System.Drawing.Size(280,20) $label.Text = 'Please make a selection from the list below:' $form.Controls.Add($label) $listBox = New-Object System.Windows.Forms.Listbox $listBox.Location = New-Object System.Drawing.Point(10,40) $listBox.Size = New-Object System.Drawing.Size(260,20) $listBox.SelectionMode = 'MultiExtended' [void] $listBox.Items.Add('Item 1') [void] $listBox.Items.Add('Item 2') [void] $listBox.Items.Add('Item 3') [void] $listBox.Items.Add('Item 4') [void] $listBox.Items.Add('Item 5') $listBox.Height = 70 $form.Controls.Add($listBox) $form.Topmost = $true $result = $form.ShowDialog() if ($result -eq [System.Windows.Forms.DialogResult]::OK) { $x = $listBox.SelectedItems $x }
Eğer belirli bir klasördeki dosyaları liste kutusuna eklemek istiyorsan, aşağıdaki gibi bir kod ekleyebilirsin:
Kod: Tümünü seç
# Dosyaların bulunduğu klasörün yolu
$folderPath = "C:\Path\To\Your\Files"
# Klasördeki dosyaları liste kutusuna ekle
Get-ChildItem -Path $folderPath | ForEach-Object {
[void] $listBox.Items.Add($_.Name)
}
Güncelleştirilmiş Betik :
Kod: Tümünü seç
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.Drawing
$form = New-Object System.Windows.Forms.Form
$form.Text = 'Data Entry Form'
$form.Size = New-Object System.Drawing.Size(300,200)
$form.StartPosition = 'CenterScreen'
$OKButton = New-Object System.Windows.Forms.Button
$OKButton.Location = New-Object System.Drawing.Point(75,120)
$OKButton.Size = New-Object System.Drawing.Size(75,23)
$OKButton.Text = 'OK'
$OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
$form.AcceptButton = $OKButton
$form.Controls.Add($OKButton)
$CancelButton = New-Object System.Windows.Forms.Button
$CancelButton.Location = New-Object System.Drawing.Point(150,120)
$CancelButton.Size = New-Object System.Drawing.Size(75,23)
$CancelButton.Text = 'Cancel'
$CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
$form.CancelButton = $CancelButton
$form.Controls.Add($CancelButton)
$label = New-Object System.Windows.Forms.Label
$label.Location = New-Object System.Drawing.Point(10,20)
$label.Size = New-Object System.Drawing.Size(280,20)
$label.Text = 'Please make a selection from the list below:'
$form.Controls.Add($label)
$listBox = New-Object System.Windows.Forms.Listbox
$listBox.Location = New-Object System.Drawing.Point(10,40)
$listBox.Size = New-Object System.Drawing.Size(260,70)
$listBox.SelectionMode = 'MultiExtended'
# Dosyaların bulunduğu klasörün yolu
$folderPath = "C:\Path\To\Your\Files"
# Klasördeki dosyaları liste kutusuna ekle
Get-ChildItem -Path $folderPath | ForEach-Object {
[void] $listBox.Items.Add($_.Name)
}
$form.Controls.Add($listBox)
$form.Topmost = $true
$result = $form.ShowDialog()
if ($result -eq [System.Windows.Forms.DialogResult]::OK)
{
$selectedItems = $listBox.SelectedItems
$selectedItems
}
-
Cemil Atay
- Byte3

- Mesajlar: 108
- Kayıt: 08 Nis 2020, 02:00
- cinsiyet: Erkek
- Teşekkür etti: 23 kez
- Teşekkür edildi: 36 kez
- İletişim:
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
Merhaba, zahmet eddip ilgilenmişsiniz. Evet, söylediğiniz gibi klasör içindeki herşeyi combobox içine ekledi.TRWE_2012 yazdı: 21 Oca 2025, 14:45 PowerShell ile oluşturduğun bu form, bir liste kutusu (ListBox) içeriyor ve kullanıcıdan bir veya daha fazla öğe seçmesini istiyor. Seçilen öğeleri almak için formu gösterdikten sonra SelectedItems özelliğini kullanıyorsun. Ancak, dosyalarını eklemek için liste kutusuna dosya adlarını eklemen gerekiyor.
Eğer belirli bir klasördeki dosyaları liste kutusuna eklemek istiyorsan, aşağıdaki gibi bir kod ekleyebilirsin:
Bu kod, belirttiğin klasördeki tüm dosyaların adlarını alır ve liste kutusuna ekler. Klasör yolunu kendi dosyalarının bulunduğu klasörle değiştirmen yeterlidir.Kod: Tümünü seç
# Dosyaların bulunduğu klasörün yolu $folderPath = "C:\Path\To\Your\Files" # Klasördeki dosyaları liste kutusuna ekle Get-ChildItem -Path $folderPath | ForEach-Object { [void] $listBox.Items.Add($_.Name) }
Bu kodu çalıştırdığın da, belirttiğin klasördeki dosyaların adları liste kutusunda görünecek ve kullanıcı bu dosyalardan bir veya daha fazlasını seçebilecektir. Seçim yapıldıktan sonra, seçilen dosya adları $selectedItems değişkeninde saklanacaktır.
Ama, hiç bir şekilde eklenen öğeler aktif edilmiyor. NE tamam buttonu ile, ne de üzerine enter basınca.
Sorun bendemi bilmiyorum ama, .ps1 dosyalarının üzerine enter basınca açmıyor not defteri ile açılıyor.
Bu bana özel bir sorunsa sıkıntı deyil. Ama yok bütün bilgisayarlarda bu böyleyse powershell bizim işimize yaramaz...
- TRWE_2012
- Zettabyte1

- Mesajlar: 15194
- Kayıt: 25 Eyl 2013, 13:38
- cinsiyet: Erkek
- Teşekkür etti: 2517 kez
- Teşekkür edildi: 5333 kez
Re: EXE Uzantılı Bir dosyanın Kodlanması HK.
.ps1 Dosyalarının AçılmasıMerhaba, zahmet eddip ilgilenmişsiniz. Evet, söylediğiniz gibi klasör içindeki herşeyi combobox içine ekledi.
Ama, hiç bir şekilde eklenen öğeler aktif edilmiyor. NE tamam buttonu ile, ne de üzerine enter basınca.
Sorun bendemi bilmiyorum ama, .ps1 dosyalarının üzerine enter basınca açmıyor not defteri ile açılıyor.
Bu bana özel bir sorunsa sıkıntı deyil. Ama yok bütün bilgisayarlarda bu böyleyse powershell bizim işimize yaramaz...
Eğer .ps1 dosyalarına çift tıkladığın da Not Defteri ile açılıyorsa, bu durum PowerShell betiklerinin çalıştırılmadığını gösterir. Bunun nedeni, Windows'un .ps1 dosyalarını varsayılan olarak Not Defteri ile ilişkilendirmesidir. PowerShell betiklerini çalıştırmak için aşağıdaki adımları izlemelisin :
1.ADIM :
PowerShell İzinlerini Kontrol Et:
PowerShell'de betik çalıştırma izinlerini kontrol edin. Aşağıdaki komutu PowerShell'de çalıştırarak izinleri ayarlayabilirsin:
Kod: Tümünü seç
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser2.ADIM:
PowerShell ile Çalıştırma:
.ps1 dosyasını doğrudan PowerShell ile çalıştırmak için PowerShell'i açın ve dosyanın bulunduğu dizine gidin. Ardından aşağıdaki komutu kullanarak betiği çalıştırın:
Kod: Tümünü seç
.\dosya_adı.ps1Dosya İlişkilendirmelerini Değiştirme:
Eğer .ps1 dosyalarını her zaman PowerShell ile açmak istiyorsan, dosya ilişkilendirmelerini değiştirebilirsin.
Bunun için:
.ps1 dosyasına sağ tıklayın ve "Özellikler" seçeneğine gidin.
"Açılış için" kısmında "Değiştir" butonuna tıklayın ve PowerShell'i seçin.
Şimdi deneme zamanı ...
Kod: Tümünü seç
Add-Type -AssemblyName System.Windows.Forms
# Form oluştur
$form = New-Object System.Windows.Forms.Form
$form.Text = "ComboBox Örneği"
$form.Size = New-Object System.Drawing.Size(300,200)
# ComboBox oluştur
$comboBox = New-Object System.Windows.Forms.ComboBox
$comboBox.Location = New-Object System.Drawing.Point(50,50)
$comboBox.Size = New-Object System.Drawing.Size(200,20)
# ComboBox'a öğeler ekle
$items = Get-ChildItem -Path "C:\KlasorYolu" | Select-Object -ExpandProperty Name
$comboBox.Items.AddRange($items)
# Buton oluştur
$button = New-Object System.Windows.Forms.Button
$button.Location = New-Object System.Drawing.Point(50,100)
$button.Size = New-Object System.Drawing.Size(200,30)
$button.Text = "Tamam"
# Butona tıklama olayını tanımla
$button.Add_Click({
$selectedItem = $comboBox.SelectedItem
if ($selectedItem) {
[System.Windows.Forms.MessageBox]::Show("Seçilen öğe: $selectedItem")
} else {
[System.Windows.Forms.MessageBox]::Show("Lütfen bir öğe seçin.")
}
})
# Form'a kontrol ekle
$form.Controls.Add($comboBox)
$form.Controls.Add($button)
# Form'u göster
$form.ShowDialog()
Bunu dene bakalım @Cemil Altay...
