twitterlinkedinemail

28 Mayıs 2013 Salı

Python ile Regedit İşlemi


Merhaba arkadaşlar. Yaklaşık 2 aydır bloğa yeni yazı ekleyemiyorum işlerimin yoğunluğu nedeniyle..

Bugünkü konumuz Python dili ile yapmış olduğumuz programımızı Windows işletim sisteminin başlangıcına (startup) nasıl ekleriz? Bu konuyu işleyeceğiz.

Bu işlemi Windows sistemler üzerinde yapacağımız için yeni bir regedit kaydı oluşturmamız gerekiyor.

Pythonda yeni regedit kaydı oluşturmamızı sağlayan kod şu şekildedir:

key=_winreg.OpenKey(_winreg.HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",
0, _winreg.KEY_ALL_ACCESS)

Evet bu komutu kısaca açıklamak gerekirse;
_winreg.OpenKey ile HKEY_CURRENT_USER altında yeni bir regedit kaydı açtık ve parantezler içinde bu kaydın regeditteki konumunu belirttik.

Daha sonrada aşağıdaki kodu yazmamız gerekiyor;
_winreg.SetValueEx(key, "iso", 0, _winreg.REG_SZ, "C:\\python27\python.exe "+ os.getcwdu() + "\\kopyala.py")
key.Close()
Yukardaki kod ise; oluşturacağımız regedit kaydının değerlerini(value) tanımladık (kayıt ismi=iso).
Sonra olarak da key.Close() ile regedit kaydımızı kapattık.

NOT: Eğer Python programımızda böyle bir işlem yapacaksak _winreg modülünü import etmemiz gereklidir.


Şimdi küçük bir uygulamayla bu konuyu pekiştirelim.

Örnek Python programımızın görevi şudur:
C:\python27\test.txt konumundaki test.txt dosyasını C:\\Users\\İsmail\\Desktop\\ konumuna yani masaüstüne iso.txt olarak kopyalamak. Kopyalama işlemi ms-dos komutlarıyla yapılmaktadır(copy komutu). Ve İşletim sistemleriyle ilgili işlemlerde Python kodumuza OS modülünü import etmeyi unutmamamız gerekiyor.

Son olarak bu programdaki en büyük fark şudur ki bu işlem bilgisayar her açıldığında otomatikman gerçekleşmesidir.

Örnek program kodları:
# -*- coding: cp1254 -*-
#Coded by iSo
#Website: www.ismailsaygili.com.tr
#Copyright 2013 ©
import os,_winreg 
os.system("copy C:\\python27\\test.txt C:\\Users\\İsmail\\Desktop\\iso.txt"
key=_winreg.OpenKey(_winreg.HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Run",
0, _winreg.KEY_ALL_ACCESS) 
_winreg.SetValueEx(key, "iso", 0, _winreg.REG_SZ, "C:\\python27\python.exe "+ os.getcwdu() + "\\kopyala.py"
key.Close()

Veya kodları indirmek için tıklayın veya GitHub

Program çalıştıktan sonra:


İyi çalışmalar..

2 yorum:

  1. Çok açıklayıcı bir anlatım olmuş çok da işime yaradı teşekkürler hocam

    YanıtlaSil
  2. işime kesinlikle yarıyacak elinize saglık devamını bekliyorum

    YanıtlaSil