8 Mart 2024 Cuma

Chrome'da yalnızca okunabilir (read-only) dökümanları indirmek

 Merhaba Arkadaşlar!

Bu yazımda indirmeye karşı korumalı, yalnızca okunabilen dökümanları chrome üzerinden indirme yöntemini anlatacağım.

1- İndirilemeyen dökümanınızı açın

2- Geliştirici Konsolunu açın (F12 veya Ctrl + Shift + J) (Edge kullanıyorsanız Ctrl + Shift + I)

3- Konsol (Console) sekmesine gidin

4- Aşağıdaki kodu yapıştırıp çalıştırın:


let jspdf = document.createElement( "script" );

jspdf.onload = function () {

let pdf = new jsPDF();

let elements = document.getElementsByTagName( "img" );

for ( let i in elements) {

let img = elements[i];

if (!/^blob:/.test(img.src)) {

continue ;

}

let canvasElement = document.createElement( 'canvas' );

let con = canvasElement.getContext( "2d" );

canvasElement.width = img.width;

canvasElement.height = img.height;

con.drawImage(img, 0, 0,img.width, img.height);

let imgData = canvasElement.toDataURL( "image/jpeg" , 1.0);

pdf.addImage(imgData, 'JPEG' , 0, 0);

pdf.addPage();

}

pdf.save( "download.pdf" );

};

jspdf.src = 'https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.3.2/jspdf.min.js' ;

document.body.appendChild(jspdf);

İndirilemeyen dökümanınız hayırlı olsun :) 

6 Kasım 2023 Pazartesi

Github istediğimiz tarihe push yapmak

 Merhaba arkadaşlar!


Bu yazıda github üzerinde dilediğiniz tarihe nasıl push atabileceğinizi anlatacağım


Sırasıyla bu komutları uygulayarak verdiğiniz tarihe push atabilirsiniz:

git add .

git commit --amend --no-edit --date="Wed Mar 16 20:00:00 2022 -0600" 

git pull --allow-unrelated-histories

git push

Angular yardımıyla dinamik isimlenen click event'ı oluşturma

Selamlar!

Bu yazıda typescript tarafta tanımlanmış bir değişken tipinden yardım alarak dinamik isimli click event'ı oluşturuyoruz.
Typescript tarafta Event isimlerimiz

  • checkEN()
  • checkTR()
  • checkJP()
  • checkCN()
  • checkDE()
gibi isimler ise ve bunları ngFor ile dönülen bir değişken butonuyla kullanmak istiyorsak alttaki kod yapısını kullanmamız gereklidir.


<button (click)="this['check' + translation.language.substr(0,2)]()" type="button" name="phoneType_Type{{translation.language}}" id="PhoneType_Type{{translation.language}}" class="form-control"> </button>

TypeScript Çok boyutlu diziyi tek boyutlu diziye dönüştürmek

Merhaba! Eski notlarımdan bulduğum bir kodu burada sizinle paylaşmak istedim. let denemeResult: Array = new Array(); Çok boyutlu bir diziyi Örnek : [ [1,2],[1],[1,3,3],[[1],[2]]] gibi bir yapıyı tek boyutlu diziye dönüştürme cal0EventsDeneme.forEach(item => { denemeResult = denemeResult.concat(item.calendarEvents) }); const comperator = function (a, b) { return a.calendarId === b.id; } let eslesenler = indexedData.filter(a => this.selectedCalendars.some(b => comperator(a, b))); let eslesmeyenler = indexedData.filter(a => !this.selectedCalendars.some(b => comperator(a, b)));

5 Ekim 2023 Perşembe

Kurulu programları Program kaldır veya değiştir 'den gizlemek

Merhaba arkadaşlar,


Bilgisayarımızda yüklü olan uygulama ve oyunları program ekle kaldırdan gizleme yöntemini uygulayacağız.

Öncelikle eski program ekle kaldır arayüzünü açalım. (win 10 ve win 11 sürümlerinde gözükmeyen bazı özellikler için)

Başlat -> Çalıştır -> appwiz.cpl


Eski görünümlü program ekle kaldır menümüz geldi.


Şimdi Kayıt Defteri Düzenleyicisi'ni açmamız gerekiyor.

Başlat -> Çalıştır -> regedit


Açılan ekranda şu konuma gidelim:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

Eğer bilgisayarınız 64 bit ancak gizlemek istediğiniz program 32 bit olarak kurulmuş ise şu konuma gidelim:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall




Bazı uygulamaların isimleri düzgün iken bazı uygulamaların isimleri {FAFEE5E3-E00A-4CE8-B495-8F66A5FAB236} gibi garip bir şekilde yazıyor olabilir. Burada;
  • Eğer gizlemek istediğiniz uygulamanın ismi düzgün ise onu bulalım ve şu adımı uygulayalım:

Sağ klik -> Yeni -> DWORD (32 bit) Değeri

Bu şekilde bir değer oluşacak:

İsmine SystemComponent yazalım ve kaydedelim.
Sonrasında çift SystemComponent'e çift klik atalım.
Açılan ekranda Değer Verisi: yazan kısma 1 yazıp Tamam'a tıklayalım.

Veee tebrikler! Artık Program ekle kaldır ekranınızdan bu uygulamayı gizlediniz. Tekrar açmak isterseniz yine buraya gelip SystemComponent'in değerini 0 yapmanız ya da SystemComponent'i silmeniz yeterli olacaktır.

  • Eğer gizlemek istediğiniz uygulamanın ismi düzgün değil ise
Örneğin Ori and the Blind Forest: Definitive Edition isimli oyunu gizlemek istedim. Eski program ekle kaldır menüsünden o uygulamayı bulup üzerine 1 kere tıklayarak aşağıda çıkan Destek bağlantısını kopyalıyorum. (Tıklayıp açıp kopyalayabilir ya da kenara not alarak kopyalayabilirsiniz)

Sonrasında Kayıt Defteri Düzenleyicisine gelip az önce bulduğumuz Uninstall klasörüne sağ tıklayarak Bul diyorum. 

Çıkan alana az önce kopyaladığım linki yapıştırıp Sonrakini Bul butonuna tıklıyorum.

Ve tadaaa! O bizi bulamadığımız klasöre götürüyor!

Şimdi ise buraya tıklayarak çıkan adımları takip edip uygulamanızı Program Ekle veya Kaldır menüsünden gizleyebilirsiniz!


Yazıda kullandığım kaynaklarım: 

2 Ekim 2023 Pazartesi

Windows 10/11 Uzak Masaüstü Bağlantısı "Başvuru hesabı şu anda kilitlenmiş ve buna oturum açılamayabilir." Hatası

 Merhaba arkadaşlar,


Bugün kendim yeni formatladığım 2 makina arasında bağlantı sorunu yaşadığım için bunu nasıl çözdüğümü anlatacağım.

Öncelikle aldığım hata buydu:


Bu hatayı alıp dururken deneyip durduğum için hesap bloklandı ve bağlanmak istediğim bilgisayarı normalde bile açamaz hâle geldim.

Önce bu ayarın nereden nasıl kapatıldığını göstereyim:

Başlat -> Grup İlkesini Düzenle


Yerel Bilgisayar İlkesi -> Bilgisayar Yapılandırması -> Windows Ayarları -> Güvenlik Ayarları -> Hesap İlkeleri -> Hesap Kilitleme İlkesi   

Bu menünün altına geldiğimizde Hesap kilitleme eşik değeri'ne çift klik atıp "geçersiz oturum açma girişimi sayısı" değerini 0 yaparsanız ne kadar hatalı deneme yaparsanız yapın kilitlenmeyecektir.


Peki varsayalım bu ayarı bilmiyorduk ve deneye deneye kilitledik. Ne yapmalıyız?

Şu anda gördüğümüz ekran şu şekilde:


Sağ alttaki güç butonundan Yeniden Başlat'a klavyede Shift tuşuna basılı tutarak tıklıyoruz.

Karşımıza şu ekran gelecek:


Sorun Gider'e tıklıyoruz.

Bir sonraki ekranda Gelişmiş Seçenekler'i tıklıyoruz.


Bir sonraki ekranda ise Komut İstemi seçeneğini tıklıyoruz.



Sonrasında kendi kullanıcımızı seçeceğiz ve o kullanıcı ile bilgisayarın komut istemini çalıştıracak.

Komut isteminde Windows'umuzun kurulu olduğu dizine girmemiz gerekiyor. Bende C olduğu için

"C:" yazarak o dizine giriş sağlıyorum.

Sonrasında:

cd Windows\System32 



yazarak System32 klasörünün içerisine gitmiş oluyorum. 

Sonrasında:

ren utilman.exe utilman1.exe


yazıp Erişilebilirlik butonunun açacağı kısayolun adını değiştirmiş oluyoruz.

Sonrasında: 

ren cmd.exe utilman1.exe



yazıp Login ekranında Erişilebilirlik butonumuzun açacağı kısayolu Komut istemi olarak ayarlamış oluyoruz. Bu sayede Windows arayüzü yüklenmiş hâldeyken login olmadan komut istemine erişebileceğiz.

Komut istemi ekranımızı kapatıp Devam diyelim.


Login ekranımız geldi ve hâlâ hata alıyoruz! Endişe etmeyin. Sağ alttaki saate benzeyen ikona basın. Bastığınızda karşınıza erişim kolaylığı ekranı değil de Komut istemi açılacak!


Açılan Komut istemine "netplwiz" yazalım ve açılan Kullanıcı Hesapları ekranında o anki kullanıcımıza tıklayıp Parolayı Sıfırla diyelim.


Yeni Parola kısımlarını boş bırakarak Tamam dediğimizde aynı şekilde şifresiz olarak kullanıcımız devam edecek ve kilidi kalkacaktır.



Bağlanacağımız bilgisayara sonunda yeniden erişebiliyoruz!

Haydi artık bağlanmak için gerekli son ayarımızı yapalım:

Başlat -> Grup ilkesini düzenle

Ekranını açalım.

Sonrasında:

Yerel Bilgisayar İlkesi -> Bilgisayar Yapılandırması -> Windows Ayarları -> Güvenlik Ayarları -> Yerel İlkeler -> Güvenlik seçenekleri


Bu menünün altına geldiğimizde Hesaplar: Yerel hesabın boş parola kullanmasını yalnızca konsol oturumuyla sınırla seçeneğine çift klik atalım.


Açılan ekranda Devre dışı seçeneğini seçip tamam dediğimiz zaman her şey hazır hâle gelmiş demektir.

Artık diğer bilgisayarımızdan bu bilgisayarımıza Uzak Masaüstü Bağlantısı ile bağlanabiliriz:






Araştırmalarımda kullandığım kaynaklar: 




19 Ağustos 2021 Perşembe

C# Linq Select'in içerisinde istenilen tüm işlemleri yapmak

 List<TaskDto> tasks = pagedAndFilteredTasks.Select(o =>
            {
                var assigneds = ObjectMapper.Map<List<TaskAssignedDto>>(o.Assigneds.ToList());

                return new TaskDto
                { 
                    Subject = o.Subject,
                    Content = o.Content,
                    IsImportant = o.IsImportant,
                    IsPrivate = o.IsPrivate,
                    TaskType = o.TaskType,
                    ActionTime = o.ActionTime,
                    Id = o.Id,
                    Assigneds = assigneds
                };
            }).ToList();

Select süslü parantezinin içerisinde istediğimiz değişkeni oluşturup istediğimiz işlemleri uygulayıp aşağıda return ederken kullanabiliyoruz