Çözüldü C# kullanıcı hesabı resmi nasıl alınır?

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.

404631

Hectopat
Katılım
24 Aralık 2020
Mesajlar
3.100
Makaleler
1
Çözümler
30
Bir saattir internette bakmadığım site kalmadı. Programımda bir yerde kullanıcı profil resmini kullanacağım ama nasıl alabileceğimi bulamadım. Not: WPF kullanıyorum.
 
Çözüm
Okudum ama burada yaptığım kullanım ile ilgili bölüm yok.
[CODE lang="csharp" title="C#"]BitmapImage bitmap = new BitmapImage();
bitmap.BeginInit();
bitmap.UriSource = new Uri(GetUserImage(), UriKind.Relative); // Kaynağı ayarlıyoruz.
bitmap.EndInit();
ProfilePicture.Stretch = Stretch.Fill;
ProfilePicture.ImageSource = bitmap;[/CODE]

Bu şekilde uyarlayabilirsiniz.
Windows 11. Hesap çevrimdışı. O klasörde sadece varsayılan fotoğraflar var.
İlginç gerçekten. İnternette araştırdığım kadarıyla bir de zor yolu mevcut. Sanırım bu sefer kesin sonuç alabilirsiniz.

[CODE lang="csharp" title="C#"] [DllImport("shell32.dll", EntryPoint = "#261",
CharSet = CharSet.Unicode, PreserveSig = false)]
public static extern void GetUserTilePath(
string username,
UInt32 whatever,
StringBuilder picpath, int maxLength);
public static string GetUserImage(string username = null)
{
var sb = new StringBuilder(1000);
GetUserTilePath(username, 0x80000000, sb, sb.Capacity);
return sb.ToString();
}[/CODE]

InteropService ile Windows API'den çekme işlemi yapılmış.
 
Peki bunu nasıl resim olarak kullanacağım.
 
Nasıl yazmalıyım ki?
[CODE lang="csharp" highlight="15"][DllImport("shell32.dll", EntryPoint = "#261",
CharSet = CharSet.Unicode, PreserveSig = false)]
public static extern void GetUserTilePath(
string username,
UInt32 whatever,
StringBuilder picpath, int maxLength);
public static string GetUserImage(string username = null)
{
var sb = new StringBuilder(1000);
GetUserTilePath(username, 0x80000000, sb, sb.Capacity);
return sb.ToString();
}
private void DemoEssentialWindow_Loaded(object sender, System.Windows.RoutedEventArgs e)
{
ProfilePicture.ImageSource = Image.FromFile(sb);
string userName = Environment.UserName;
UserProfile.Content = userName;
}[/CODE]
 
Image.FromFile() kısmında sb yerine GetUserImage() yazmalısınız. sb diye bir değişken yok çünkü bu değişken bu metodun içinde tanımlanmış.
 
Tamam.
C#:
ProfilePicture.ImageSource = System.Drawing.Image.FromFile(GetUserImage());
Bu kod neden çalıştırılmıyor.
 
Tamam.
C#:
ProfilePicture.ImageSource = System.Drawing.Image.FromFile(GetUserImage());
Bu kod neden çalıştırılmıyor.
Çalıştırılmıyordan kastınız nedir? Kod derlenmiyor mu, çalıştırılırken hata mı veriyor? Aldığınız hatayı söyleyebilir misiniz?
 
Çalıştırılmıyordan kastınız nedir? Kod derlenmiyor mu çalıştırılırken hata mı veriyor? Aldığınız hatayı söyleyebilir misiniz?
Hata veriyor.
Error CS0029 Cannot implicitly convert type 'System.Drawing.Image' to 'System.Windows.Media.ImageSource'
 

Bu konuyu görüntüleyen kullanıcılar

Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…