mirror of
https://github.com/alhan/noteki.git
synced 2026-08-23 05:30:19 +00:00
- Modern sticky notes app for Windows - PySide6 full-screen transparent canvas - System tray integration, global Alt+N hotkey - Session management, undo/redo, auto-save - Custom color palette with dynamic contrast - Pin notes always-on-top, Tab navigation - Windows Named Mutex single-instance guard
65 lines
3.8 KiB
Markdown
65 lines
3.8 KiB
Markdown
# Sticky Canvas — EXE Paketleme ve Windows Başlangıç Kılavuzu
|
||
|
||
Bu kılavuz, uygulamanızı tek bir `.exe` dosyası haline getirmeyi ve "Windows ile Birlikte Başlat" seçeneğinin arka planda nasıl çalıştığını açıklar.
|
||
|
||
---
|
||
|
||
## 1. Uygulamayı Standart EXE Haline Getirme (PyInstaller)
|
||
|
||
Uygulamanızı tek bir dosya (`.exe`) haline getirmek için **PyInstaller** kütüphanesini kullanabilirsiniz.
|
||
|
||
### Adım 1: Gerekli Kütüphaneleri Yükleyin
|
||
PowerShell veya Komut İstemi'ni açıp şu komutları çalıştırın:
|
||
```bash
|
||
pip install pyinstaller pillow
|
||
```
|
||
*(Not: `pillow`, ikon dönüştürme için kullanılacaktır.)*
|
||
|
||
### Adım 2: PNG İkonunu ICO Formatına Dönüştürün
|
||
Windows, `.exe` dosyalarının masaüstü ve dosya gezgini ikonları için özel `.ico` formatını şart koşar. Aşağıdaki komutla mevcut `icon.png` dosyasını otomatik olarak `icon.ico` formatına dönüştürebilirsiniz:
|
||
```bash
|
||
python -c "from PIL import Image; Image.open('assets/icon.png').save('assets/icon.ico', format='ICO')"
|
||
```
|
||
Bu komut, `assets` klasörü altında `icon.ico` adında uyumlu bir Windows ikon dosyası oluşturacaktır.
|
||
|
||
### Adım 3: PyInstaller ile Paketleyin
|
||
Şimdi projeyi tek bir `.exe` olarak paketlemek için şu komutu çalıştırın:
|
||
```bash
|
||
pyinstaller --noconsole --onefile --icon="assets/icon.ico" --add-data "assets;assets" main.py
|
||
```
|
||
|
||
**Parametrelerin Anlamları:**
|
||
* `--noconsole`: Uygulama açıldığında arkada siyah bir komut satırı (CMD) penceresinin açılmasını engeller. Tamamen pürüzsüz bir arayüz sunar.
|
||
* `--onefile`: Tüm kaynakları, ikonları ve kütüphaneleri (PySide6 vb.) tek bir `.exe` dosyasında birleştirir.
|
||
* `--icon="assets/icon.ico"`: EXE dosyasının Windows üzerindeki resmi simgesini ayarlar.
|
||
* `--add-data "assets;assets"`: Uygulamanın kullandığı resim, ikon ve diğer varlıkları içeren `assets` klasörünü paket içerisine gömer.
|
||
|
||
### Adım 4: Sonuç
|
||
İşlem tamamlandığında, proje klasörünüzde iki yeni dizin oluşacaktır:
|
||
1. `build/` (Geçici derleme dosyaları)
|
||
2. `dist/` (Paketlenmiş nihai uygulamayı barındırır)
|
||
|
||
`dist/main.exe` dosyasını bulup adını `sticky_canvas.exe` veya istediğiniz gibi değiştirebilir, doğrudan çalıştırıp kullanmaya başlayabilirsiniz! `build` klasörünü ve `.spec` dosyasını güvenle silebilirsiniz.
|
||
|
||
---
|
||
|
||
## 2. "Windows ile Birlikte Başlat" Nasıl Çalışıyor?
|
||
|
||
Uygulamanın Ayarlar penceresindeki **"Windows ile birlikte başlat"** seçeneği, Windows işletim sisteminin yerleşik otomatik başlatma mekanizmasını kullanır.
|
||
|
||
### Arka Plandaki Çalışma Mekanizması:
|
||
1. **Windows Kayıt Defteri (Registry) Entegrasyonu:**
|
||
Windows, sistem açıldığında otomatik olarak çalıştırılması gereken programların listesini Registry üzerinde şu adreste tutar:
|
||
`HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`
|
||
|
||
2. **Kayıt Ekleme (Aktif Edildiğinde):**
|
||
Bu ayar açıldığında, uygulamamız Registry'de bu dizinin altına `"Sticky Canvas"` adında yeni bir anahtar (String Value) ekler.
|
||
* **Geliştirici Modunda (Script):** Değer olarak Python yorumlayıcısının yolunu ve `main.py` dosyamızın tam yolunu yazar: `"[PYTHON_YOLU]\python.exe" "[PROJE_YOLU]\main.py"`
|
||
* **Paketlenmiş Modda (EXE):** Değer olarak doğrudan derlenmiş `.exe` dosyamızın tam yolunu yazar: `"[EXE_YOLU]\sticky_canvas.exe"`
|
||
|
||
3. **Kayıt Silme (Devre Dışı Bırakıldığında):**
|
||
Bu ayar kapatıldığında, uygulamamız Registry'deki `"Sticky Canvas"` anahtarını siler ve Windows açılışında otomatik başlama durdurulur.
|
||
|
||
4. **Kullanıcı Yetkisi:**
|
||
`HKEY_CURRENT_USER` (HKCU) kullanıldığı için bu işlem **Yönetici yetkisi (UAC / Administrator) gerektirmez.** Herhangi bir kullanıcı hesabı altında tamamen güvenli ve sorunsuz şekilde çalışır.
|