mirror of
				https://github.com/pbatard/rufus.git
				synced 2024-08-14 23:57:05 +00:00 
			
		
		
		
	[fido] improve UI handling
* Center dialog on open * Close dialog on main application exit * Display ISO short name & size on status bar during download * Display ISO download progress on taskbar * Also fix improper detection of EAGET Mass Storage USB Device as HDD
This commit is contained in:
		
							parent
							
								
									9d1a2bc25e
								
							
						
					
					
						commit
						65f886141b
					
				
					 9 changed files with 165 additions and 149 deletions
				
			
		|  | @ -223,7 +223,7 @@ t MSG_084 "This ISO image seems to use an obsolete version of '%s'.\n" | |||
| 	"If you don't know what to do, you should select 'Yes'.\n\n" | ||||
| 	"Note: The new file will be downloaded in the current directory and once a " | ||||
| 	"'%s' exists there, it will be reused automatically." | ||||
| t MSG_085 "Downloading '%s'" | ||||
| t MSG_085 "Downloading %s" | ||||
| t MSG_086 "No image selected" | ||||
| # This message appears in Advanced format options → Check device for bad blocks → dropdown menu | ||||
| # %s will be replaced with SLC, MLC or TLC, which is a type of NAND (or flash memory). In other | ||||
|  | @ -710,7 +710,7 @@ t MSG_081 "صورة غير مدعومة" | |||
| t MSG_082 "هذه الصورة إما لا يمكن الإقلاع منها وإما تستعمل طريقة إقلاع أو ضغط غير مدعومة في روفوس..." | ||||
| t MSG_083 "إستبدال %s؟" | ||||
| t MSG_084 "صورة الـISO يبدو استخدامها لإصدار قديم من '%s'. \nقوائم التمهيد قد لا يتم عرضها بشكل صحيح بهذا السبب.\n\nلإصلاح الخلل يمكنك تحميل إصدار جديد من قبل روفوس:\n- إختر ‘نعم’ للإتصال بالإنترنت وتحميل الملف\n- إختر ‘لا’ لترك ملف الISO دون تعديل\nإذا كنت لا تعرف ما عليك فعله, عليك اختيار ‘نعم’.\n\nملاحظة: سيتم تحميل ملف جديد في الدليل الحالي وبعد العثور على ‘%s’ هناك, سوف يتم إعادة إستخدامه تلقائياً." | ||||
| t MSG_085 "تحميل '%s'" | ||||
| t MSG_085 "تحميل %s" | ||||
| t MSG_086 "لم يتم إختيار الصورة" | ||||
| t MSG_087 "ل %s NAND" | ||||
| t MSG_088 "ملف الصورة (الإيميج) كبير جداً" | ||||
|  | @ -1072,7 +1072,7 @@ t MSG_084 "Bu ISO faylı '%s'in köhnə bir versiyanı istifadə edir kimi gör | |||
| 	"Nə edəcəyinizi bilmirsinizsə, 'Bəli'i seçməlisiniz.\n\n" | ||||
| 	"Qeyd: Yeni Fayl mövcud göstəriciyə yüklənəcək və  " | ||||
| 	"'%s'  Orda mövcud olduqda, avtomatik olaraq istifadə ediləcək." | ||||
| t MSG_085 "'%s' yüklənir" | ||||
| t MSG_085 "%s yüklənir" | ||||
| t MSG_086 "Fayl seçilmədi" | ||||
| t MSG_088 "Fayl çox böyükdür" | ||||
| t MSG_089 "Fayl seçilən hədəf üçün çox böyükdür." | ||||
|  | @ -1466,7 +1466,7 @@ t MSG_081 "Неподдържан образ" | |||
| t MSG_082 "Този образ не е зареждащ или използва зареждащ или компресиращ метод който не се поддържа от  Rufus.." | ||||
| t MSG_083 "Заместване на %s ?" | ||||
| t MSG_084 "Изглежда, че този ISO образ използва стара версия на '%s'.\nПоради тази причина стартиращите менюта може да не бъдат изобразени правилно.\n\nПо-нова версия може да бъде изтеглена от Rufus, за да отстрани този проблем:\n- Изберете 'Yes', за да се свържете с интернет и да изтеглите необходимият файл\n- Изберете 'No', за да продължите с настоящият ISO файл\nАко не знаете какво да правите, е препоръчително да изберете 'Yes'.\n\nБележка: Този файл ще бъде изтеглен в настоящата директория и щом '%s' е наличен, процесът ще продължи автоматично." | ||||
| t MSG_085 "Изтегляне на '%s'" | ||||
| t MSG_085 "Изтегляне на %s" | ||||
| t MSG_086 "Не е избран образ" | ||||
| t MSG_087 "за %s NAND" | ||||
| t MSG_088 "Образът е твърде голям" | ||||
|  | @ -1808,7 +1808,7 @@ t MSG_081 "不支持的镜像" | |||
| t MSG_082 "本镜像是不可引导的,或者使用了不被 Rufus 所支持的引导或压缩方式...\n本版本 Rufus 仅支持基于 bootmgr, EFI, Grub4DOS, GRUB 2, isolinux 或 WinPE 的启动 ISO 镜像。" | ||||
| t MSG_083 "替换 %s?" | ||||
| t MSG_084 "这个 ISO 镜像似乎使用一个过时的 '%s' 版本。\n引导菜单可能因此而无法正常显示。\n\nRufus 可以下载更新的版本来修复这个问题:\n- 选择【是】连接网络并下载文件\n- 选择【否】保留现有的 ISO 文件不变\n如果不知道如何选择,请选择【是】。\n\n注意:新文件将会下载到当前目录,一旦 '%s' 存在则会被自动选用。" | ||||
| t MSG_085 "下载 '%s' 中" | ||||
| t MSG_085 "下载 %s 中" | ||||
| t MSG_086 "未选择镜像" | ||||
| t MSG_087 "对 %s 闪存" | ||||
| t MSG_088 "镜像文件过大" | ||||
|  | @ -2144,7 +2144,7 @@ t MSG_081 "不支援的 ISO 映像檔" | |||
| t MSG_082 "此映像檔無法開機,或是使用 Rufus 不支援的開機、壓縮方式..." | ||||
| t MSG_083 "取代 %s?" | ||||
| t MSG_084 "此 ISO 映像檔似乎使用較舊版本的 '%s',\n開機選單可能因此無法正常運作。\n\nRufus 可協助下載較新版本來修正問題:\n- 選「是」,立即連上網路下載\n- 選「否」,保留原始 ISO 內容\n如果你看不懂或不知該如何抉擇,強烈建議選「是」\n\n注意: 一經下載後,Rufus 未來會自動套用新版 '%s'" | ||||
| t MSG_085 "下載中 '%s'" | ||||
| t MSG_085 "下載中 %s" | ||||
| t MSG_086 "未選取任何映像檔" | ||||
| t MSG_087 "給 %s NAND" | ||||
| t MSG_088 "映像檔之檔案大小過大" | ||||
|  | @ -2503,7 +2503,7 @@ t MSG_084 "Ova ISO slika koristi staru verziju '%s'.\n" | |||
| 	"- Odaberite 'Ne' da nastavite bez preuzimanja\n" | ||||
| 	"Preporuka je da odabarete 'Da'.\n\n" | ||||
| 	"Nova datoteka preuzima se u mapu gdje je Rufus." | ||||
| t MSG_085 "Preuzimam '%s'" | ||||
| t MSG_085 "Preuzimam %s" | ||||
| t MSG_086 "Nema odabira" | ||||
| t MSG_088 "Slika je prevelika" | ||||
| t MSG_089 "Ime mora biti kraće za odabrani medij." | ||||
|  | @ -2889,7 +2889,7 @@ t MSG_081 "Nepodporovaný obraz" | |||
| t MSG_082 "Obraz není bootovací, nebo používá metodu spuštění nebo kompresi, která není podporován Rufusem..." | ||||
| t MSG_083 "Nahradit %s?" | ||||
| t MSG_084 "Zdá se, že tento ISO obraz používá zastaralou verzi '%s'.\nNabídka boot systému se proto nemusí zobrazovat správně.\n\nRufus může odstranit tento problém stažením nové verze:\n- Zvolte 'Ano' pro připojení na Internet a stažení souboru\n- Zvolte 'Ne' pro ponechání stávajícího ISO souboru beze změny\nPokud nevíte, co máte udělat, zvolte 'Ano'.\n\nPoznámka: Nový soubor %s bude stažen do aktuální složky pro opětovné automatické použití." | ||||
| t MSG_085 "Stahuji '%s'" | ||||
| t MSG_085 "Stahuji %s" | ||||
| t MSG_086 "Nebyl zvolen žádný obraz disku" | ||||
| t MSG_088 "Obraz disku je příliš velký" | ||||
| t MSG_089 "Obraz disku je příliš velký pro zvolený cíl." | ||||
|  | @ -3222,7 +3222,7 @@ t MSG_081 "ISO-filen er ikke understøttet" | |||
| t MSG_082 "Denne ISO er enten ikke-bootbar eller er baseret på boot eller kompression metode, der er ikke støttet af Rufus..." | ||||
| t MSG_083 "Erstat %s?" | ||||
| t MSG_084 "Dette ISO-image lader til at bruge en forældet version af '%s'.\nPå grund af dette bliver Boot-menuer måske ikke vist korrekt.\n\nRufus kan hente en nyere version for at fikse dette problem:\n- Vælg 'Ja' for at oprette forbindelse til internettet og hente filen\n- Vælg 'Nej' for at lade ISO-filen forblive uændret\nHvis du er i tvivl om, hvad du skal vælge, bør du vælge 'Ja'.\n\nBemærk: '%s' bliver gemt i den nuværende mappe og bliver efterfølgende automatisk genanvendt, hvis den er der." | ||||
| t MSG_085 "Downloader '%s'" | ||||
| t MSG_085 "Downloader %s" | ||||
| t MSG_086 "Ingen image-fil er valgt" | ||||
| t MSG_087 "til %s NAND" | ||||
| t MSG_088 "Image-filen er for stor" | ||||
|  | @ -3555,7 +3555,7 @@ t MSG_081 "Niet-ondersteunde image" | |||
| t MSG_082 "Deze image is ofwel niet opstartbaar, of het gebruikt een opstart- of compressiemethode die niet ondersteund wordt door Rufus..." | ||||
| t MSG_083 "%s vervangen?" | ||||
| t MSG_084 "Deze ISO-image lijkt een verouderde versie te gebruiken van '%s'.\nOpstartmenu's worden hierdoor mogelijk niet goed weergegeven.\n\nEen nieuwere versie kan gedownload worden door Rufus om dit probleem op te lossen:\n- Kies 'Ja' om met het internet te verbinden en het bestand te downloaden\n- Kies 'Nee' om het bestaande ISO-bestand ongewijzigd te laten.\nAls u niet weet wat u moet doen, selecteert u best 'Ja'.\n\nOpmerking: Het nieuwe bestand wordt naar de huidige map gedownload en eens er een '%s' bestaat, zal deze automatisch opnieuw gebruikt worden." | ||||
| t MSG_085 "'%s' downloaden" | ||||
| t MSG_085 "%s downloaden" | ||||
| t MSG_086 "Geen image geselecteerd" | ||||
| t MSG_087 "voor %s NAND" | ||||
| t MSG_088 "Image is te groot" | ||||
|  | @ -3894,7 +3894,7 @@ t MSG_081 "Levykuvaa ei tueta" | |||
| t MSG_082 "Valittu levykuva ei ole boottava tai se käyttää käynnistys- tai pakkausmenetelmää jota Rufus ei tue..." | ||||
| t MSG_083 "Korvataanko %s?" | ||||
| t MSG_084 "Tämä ISO-levykuva vaikuttaisi käyttävän vanhentunutta '%s'-versiota.\nTämän vuoksi käynnistysvalikot saattavat näkyä väärin.\n\nRufus voi ladata uudemman version ongelman korjaamiseksi:\n- Valitse 'Kyllä' yhdistääksesi internetiin ja ladataksesi tiedoston\n- Valitse 'Ei' jättääksesi ISO-levykuvan alkuperäiseen muotoonsa\nJos et ole varma, sinun kannattaa valita 'Kyllä'.\n\nHuomio: Uusi tiedosto ladataan nykyiseen sijaintiin ja kun  '%s' löytyy sijainnista, sitä käytetään automaattisesti." | ||||
| t MSG_085 "Ladataan '%s'" | ||||
| t MSG_085 "Ladataan %s" | ||||
| t MSG_086 "ISO-levykuvaa ei valittu" | ||||
| t MSG_087 "%s NAND-muistille" | ||||
| t MSG_088 "Levykuva on liian suuri" | ||||
|  | @ -4234,7 +4234,7 @@ t MSG_081 "Image non supportée" | |||
| t MSG_082 "Cette image n'est pas démarrable, ou bien elle utilise une méthode de démarrage ou de compression qui n'est pas compatible avec Rufus..." | ||||
| t MSG_083 "Remplacer %s ?" | ||||
| t MSG_084 "Cette image ISO utilise une version obsolète du fichier '%s'.\nLes menus de démarrage peuvent de pas fonctionner à cause de cela.\n\nRufus peut télécharger une nouvelle version du fichier pour résoudre ce problème :\n- Choisissez 'Oui' pour télécharger le fichier depuis Internet\n- Choisissez 'Non' pour garder le fichier de l'image ISO\nSi vous ne savez pas quoi faire, sélectionnez 'Oui'.\n\nNote : Le nouveau fichier sera téléchargé dans le répertoire courant. Si un '%s' existe à cet endroit, il sera réutilisé automatiquement." | ||||
| t MSG_085 "Téléchargement de '%s'" | ||||
| t MSG_085 "Téléchargement de %s" | ||||
| t MSG_086 "Aucune image sélectionnée" | ||||
| t MSG_087 "pour NAND %s" | ||||
| t MSG_088 "Image trop large" | ||||
|  | @ -4580,7 +4580,7 @@ t MSG_081 "Nicht unterstützte Abbild-Datei" | |||
| t MSG_082 "Dieses Abbild ist nicht startfähig oder benutzt eine nicht unterstützte Startart und/oder Kompression." | ||||
| t MSG_083 "Ersetze %s?" | ||||
| t MSG_084 "Diese ISO-Abbild-Datei verwendet eine veraltete Version von '%s'.\nBootmenüs werden deswegen möglicherweise fehlerhaft dargestellt.\n\nEine neuere Version kann von Rufus heruntergeladen werden, um diese Problem zu vermeiden:\n- Wählen Sie 'Ja', um die Datei herunterzuladen\n- Wählen Sie 'Nein', um das ISO-Abbild nicht zu verändern\nWenn Sie unsicher sind, wählen Sie 'Ja'.\n\nHinweis: Die neue Datei wird in das aktuelle Verzeichnis heruntergeladen und falls '%s' bereits vorhanden ist, wird sie automatisch wiederverwendet." | ||||
| t MSG_085 "Download '%s'" | ||||
| t MSG_085 "Download %s" | ||||
| t MSG_086 "Keine Abbild-Datei gewählt" | ||||
| t MSG_087 "für %s Flash" | ||||
| t MSG_088 "Abbild ist zu groß" | ||||
|  | @ -4910,7 +4910,7 @@ t MSG_081 "Μη υποστηριζόμενο είδωλο" | |||
| t MSG_082 "Αυτό το είδωλο είτε δεν διαθέτει δυνατότητα εκκίνησης ή δεν χρησιμοποιεί κάποια από τις μεθόδους συμπίεσης/εκκίνησης υποστηριζόμενη απο το Rufus..." | ||||
| t MSG_083 "Αντικατάσταση %s?" | ||||
| t MSG_084 "Αυτό το είδωλο ISO φαίνεται να χρησιμοποιεί μία ξεπερασμένη έκδοση του '%s'.\nΤο μενού εκκίνησης μπορεί να μην εμφανίζεται σωστά εξαιτίας αυτού.\n\nΤο Rufus είναι σε θέση να κάνει λήψη μίας νεότερης έκδοσης για να διορθωθεί αυτό το πρόβλημα:\n- Επιλέξτε το 'Ναι' για να συνδεθείτε στο διαδίκτυο και να κάνετε λήψη του αρχείου\n- Επιλέξτε το 'Όχι' για να αφήσετε το αρχείο ISO αμετάβλητο.\nΣε περίπτωση που δεν γνωρίζετε τι να κάνετε, θα ήταν καλό να επιλέξετε το 'Ναι'.\n\nΣημείωση: Η λήψη του νέου αρχείου θα γίνει στον τρέχοντα κατάλογο και εφόσον το'%s' υπάρχει εκεί, θα επαναχρησιμοποιηθεί αυτόματα." | ||||
| t MSG_085 "Λήψη '%s'" | ||||
| t MSG_085 "Λήψη %s" | ||||
| t MSG_086 "Δεν έχει επιλεχθεί κάποιο είδωλο" | ||||
| t MSG_087 "για %s NAND" | ||||
| t MSG_088 "Το είδωλο έχει πολύ μεγάλο μέγεθος" | ||||
|  | @ -5251,7 +5251,7 @@ t MSG_081 "קובץ לא נתמך" | |||
| t MSG_082 "קובץ זה לא ניתן לאתחול, או שהוא משתמש בשיטת כיווץ או אתחול שלא נתמכת על ידי Rufus..." | ||||
| t MSG_083 "האם להחליף את %s?" | ||||
| t MSG_084 "נראה שקובץ ה־ISO הזה משתמש בגרסה מיושנת של '%s'.\nלפיכך, יתכן שתפריטי האתחול לא יוצגו כראוי.\n\nRufus יכול להוריד גרסה חדשה כדי לתקן בעיה זו:\n- יש לבחור 'כן' כדי להתחבר לאינטרנט ולהוריד את הקובץ\n- יש לבחור 'לא' כדי להשאיר את קובץ ה־ISO ללא שינויים\nאם לא ברור לך מה לעשות, כדאי לבחור באפשרות 'כן'.\n\nהערה: הקובץ החדש יירד לספרייה בה ממוקם היישום וכל עוד ש־'%s' קיים שם, Rufus ישתמש בו באופן אוטומטי במידת הצורך." | ||||
| t MSG_085 "מוריד את '%s'" | ||||
| t MSG_085 "מוריד את %s" | ||||
| t MSG_086 "לא נבחר קובץ תמונה" | ||||
| t MSG_087 "עבור %s NAND" | ||||
| t MSG_088 "קובץ התמונה גדול מדי" | ||||
|  | @ -5611,7 +5611,7 @@ t MSG_084 "Ez az ISO fájl valószínűleg a(z) '%s' elavult verzióját haszná | |||
| 	"Ha nem tudod, mit kell tenned, nyomj 'Igen' gombot.\n\n" | ||||
| 	"Megjegyzés: Az új fájl a jelenlegi mappába lesz letöltve, és ha egy " | ||||
| 	"'%s' létezik, akkor az automatikusan újra lesz használva." | ||||
| t MSG_085 "'%s' letöltése" | ||||
| t MSG_085 "%s letöltése" | ||||
| t MSG_086 "Nincs képfájl kiválasztva" | ||||
| t MSG_088 "A képfájl túl nagy" | ||||
| t MSG_089 "A képfájl túl nagy a kiválasztott célhoz" | ||||
|  | @ -5997,7 +5997,7 @@ t MSG_081 "Image tidak didukung" | |||
| t MSG_082 "Image ini kemungkinan non-bootable, atau menggunakan metode boot atau kompresi yang tidak didukung oleh Rufus..." | ||||
| t MSG_083 "Ganti %s?" | ||||
| t MSG_084 "ISO image ini tampaknya menggunakan versi lawas dari '%s'.\nMenu Boot mungkin tidak ditampilkan dengan baik karena masalah ini.\n\nVersi yang lebih baru dapat diunduh oleh Rufus untuk menyelesaikan masalah ini:\n- Pilih 'Ya' untuk menyambungkan ke internet dan mengunduh berkas\n- Pilih 'Tidak' untuk membiarkan berkas ISO yang ada tidak termodifikasi\nJika Anda tidak mengetahui apa yang harus dilakukan, sebaiknya pilih 'Ya'.\n\nCatatan: Berkas baru akan diunduh di direktori saat ini dan karena '%s' sudah ada disana, berkas tersebut akan digunakan kembali secara otomatis." | ||||
| t MSG_085 "Mengunduh '%s'" | ||||
| t MSG_085 "Mengunduh %s" | ||||
| t MSG_086 "Tidak ada image terpilih" | ||||
| t MSG_087 "untuk %s NAND" | ||||
| t MSG_088 "Image terlalu besar" | ||||
|  | @ -6328,7 +6328,7 @@ t MSG_081 "Formato immagine non supportato" | |||
| t MSG_082 "Questa immagine non è avviabile, o usa un metodo di boot o di compressione non supportato da Rufus..." | ||||
| t MSG_083 "Sostituire %s?" | ||||
| t MSG_084 "Questa immagine sembra che usi una versione obsoleta di '%s'.\nA causa di ciò il menu di avvio potrebbe non essere visualizzato correttamente.\n\nUna nuova versione può essere scaricata da Rufus per correggere questo problema:\n- Seleziona 'Sì' per collegarsi a internet e scaricare il file\n- Seleziona 'No' per lasciare inalterato il file immagine ISO\nIn caso di dubbi, è preferibile selezionare 'Sì'.\n\nNota: il nuovo file verrà scaricato nella cartella attuale e una volta scaricato '%s', verrà riusato automaticamente." | ||||
| t MSG_085 "Download '%s'" | ||||
| t MSG_085 "Download %s" | ||||
| t MSG_086 "Nessuna immagine selezionata" | ||||
| t MSG_087 "per NAND %s" | ||||
| t MSG_088 "Immagine troppo grande" | ||||
|  | @ -6667,7 +6667,7 @@ t MSG_081 "非対応のイメージです。" | |||
| t MSG_082 "このイメージはブート非対応あるいはRufusでサポートされていないブート方式、圧縮方式を使用しています。" | ||||
| t MSG_083 "%sを置き換えますか?" | ||||
| t MSG_084 "このISOは“%s”の古いバージョンを使用するようです。\nブートメニューが正しく表示できないかもしれません。\n\nこの問題を解決するために新しいバージョンをダウンロードできます。\n- インターネットに接続し、ファイルをダウンロードするには [はい] をクリックしてください。\n- 既存のISOを変更しない場合は [いいえ] をクリックしてください。\nどうしたらよいかわからない場合は [はい] をクリックすることを推奨します。\n\n注意: 新しいファイルは現在のフォルダーにダウンロードされます。すでに“%s”のファイルがある場合は自動的に再利用します。" | ||||
| t MSG_085 "“%s”をダウンロード中" | ||||
| t MSG_085 "%s をダウンロード中" | ||||
| t MSG_086 "イメージが選択されていません。" | ||||
| t MSG_087 "(%s NAND用)" | ||||
| t MSG_088 "イメージが大きすぎます。" | ||||
|  | @ -7005,7 +7005,7 @@ t MSG_081 "지원되지 않는 이미지" | |||
| t MSG_082 "이 이미지는 부팅할 수 없거나, Rufus가 지원하지 않는 부팅 또는 압축 방법을 사용하고 있습니다." | ||||
| t MSG_083 "%s 교체?" | ||||
| t MSG_084 "이 ISO 이미지는 '%s'의 이전 버전을 사용하고 있는 것 같습니다.\n이것 때문에 부팅 메뉴가 제대로 표시되지 않을 수 있습니다.\n\n\nRufus가 최신 버전을 다운로드하여 이 문제를 해결할 수 있습니다.:\n- 인터넷에 연결해 파일을 내려받으려면 '예'를 선택하십시오.\n- 기존 ISO 파일을 수정하지 않고 그대로 두려면 '아니오'를 선택하십시오.\n만약 무엇을 선택해야 할지 모른다면 '예'를 선택하십시오.\n\n알림: 새 파일은 현재 디렉토리에 내려받게 되며 이미 '%s'가 있다면 자동으로 재사용됩니다." | ||||
| t MSG_085 "'%s' 다운로드 중..." | ||||
| t MSG_085 "%s 다운로드 중..." | ||||
| t MSG_086 "선택된 ISO 이미지가 없습니다" | ||||
| t MSG_087 "%s 낸드" | ||||
| t MSG_088 "이미지가 너무 큽니다" | ||||
|  | @ -7345,7 +7345,7 @@ t MSG_081 "Neatbalstāms virtuālā attēla formāts" | |||
| t MSG_082 "Izvēlētais virtuālais attēls nav ielādes, jeb izmanto Rufus nezināmu ielādes metodi vai saspiešanas formātu." | ||||
| t MSG_083 "Aizvietot %s?" | ||||
| t MSG_084 "Šis ISO virtuālais attēls izmanto novecojušas versijas '%s'.\nIelādes komandkarte var attēloties nekorekti.\n\nŠīs kļūdas novēršanai jāielādē jaunāka Rufus versija:\n- Izvēlieties 'Jā' lai pieslēgtos pie interneta un ielādētu jaunāku versiju\n- Izvēlieties 'Nē' lai ISO fails paliktu nemainīts\nJa nezināt ko darīt, izvēlieties 'Jā'.\n\nPiezīme: Jaunais fails tiks lejupielādēts tekošajā mapē, un eksistējošais '%s' automātiski tiks samainīts." | ||||
| t MSG_085 "Lejuplādēts '%s'" | ||||
| t MSG_085 "Lejuplādēts %s" | ||||
| t MSG_086 "Nav izvēlēts virtuālais attēls" | ||||
| t MSG_087 "no %s NAND" | ||||
| t MSG_088 "Virtuālais attēls pārāk liels" | ||||
|  | @ -7684,7 +7684,7 @@ t MSG_081 "Nepalaikomas atvaizdas" | |||
| t MSG_082 "Arba tai ne įkelties atvaizdas, arba jis naudoja įkelties ar glaudinimo metodą, kurio nepalaiko Rufus..." | ||||
| t MSG_083 "Pakeisti %s?" | ||||
| t MSG_084 "Atrodo, šis ISO atvaizdas naudoja pasenusią „%s“ versiją.\nĮkelties meniu dėl to gali būti vaizduojamas blogai.\n\nGalima atsisiųsti naujesnę Rufus versiją išspręsti problemai:\n- Pasirinkite 'Taip' norėdami prisijungti prie interneto ir atsisiųsti failą\n- Pasirinkite 'Ne' norėdami palikti esamą ISO failą nepakeistą\nJei nežinote ką daryti, reikėtų pasirinkti 'Taip'.\n\nPastaba: naujas failas bus atsiųstas į dabartinį katalogą ir jei „%s“ ten jau yra, jis bus panaudotas iš naujo automatiškai." | ||||
| t MSG_085 "Siunčiama: „%s“" | ||||
| t MSG_085 "Siunčiama: %s" | ||||
| t MSG_086 "Atvaizdas nepasirinktas" | ||||
| t MSG_087 "su %s NAND" | ||||
| t MSG_088 "Atvaizdas per didelis" | ||||
|  | @ -8022,7 +8022,7 @@ t MSG_081 "Imej tidak disokong" | |||
| t MSG_082 "Imej ini sama ada tidak boleh boot, atau ia menggunakan kaedah boot atau mampatan yang tidak disokong oleh Rufus..." | ||||
| t MSG_083 "Gantikan %s?" | ||||
| t MSG_084 "Imej ISO ini menggunakan versi '%s' yang telah lapuk.\nOleh sebab ini, menu boot mungkin tidak dipaparkan dengan betul.\n\nVersi yang lebih baharu boleh dimuat turun oleh Rufus untuk memperbaiki isu ini:\n- Pilih 'Ya' untuk menyambung ke internet dan muat turun fail tersebut\n- Pilih 'Tidak' untuk tidak mengubahsuai fail ISO yang digunakan\nJika anda tidak pasti apa yang perlu dilakukan,  pilih 'Ya'.\n\nPerhatian: Fail yang dimuat turun akan disimpan di dalam direktori bersamaan dengan Rufus dan apabila terdapat '%s' , ia akan digunakan secara automatik." | ||||
| t MSG_085 "Memuat turun '%s'" | ||||
| t MSG_085 "Memuat turun %s" | ||||
| t MSG_086 "Tiada imej yang dipilih" | ||||
| t MSG_087 "untuk %s NAND" | ||||
| t MSG_088 "Imej terlalu besar" | ||||
|  | @ -8383,7 +8383,7 @@ t MSG_084 "Dette ISO-bildet ser ut til å inneholde en foreldet versjon av '%s'. | |||
| 	"Hvis du ikke vet hva du skal gjøre, bør du velge 'Ja'.\n\n" | ||||
| 	"OBS: Den nye filen vil bli lastet ned i den gjeldende mappen, og når" | ||||
| 	"'%s' er der, vil den bli brukt automatisk." | ||||
| t MSG_085 "Laster ned '%s'" | ||||
| t MSG_085 "Laster ned %s" | ||||
| t MSG_086 "Intet bilde valgt" | ||||
| t MSG_088 "Bildet er for stort" | ||||
| t MSG_089 "Bildet er for stort for det valgte målet." | ||||
|  | @ -8782,7 +8782,7 @@ t MSG_081 "فایل ایمیج انتخابشده پشتیبانی نمی | |||
| t MSG_082 "فایل ایمیج (Image) انتخابشده، قابلیت راهاندازی سیستمعامل را ندارد (none-bootable) یا ساختاری دارد که Rufus آن را پشتیبانی نمیکند." | ||||
| t MSG_083 "%s جایگزین شود؟" | ||||
| t MSG_084 "انگار این فایل ISO از نسخه قدیمی «%s» استفاده میکند.\nبه همین دلیل، ممکن است منوی راهاندازی (Boot Menu) بهدرستی نمایش داده نشود.\n\nبرای از بین بردن این مشکل، Rufus میتواند نسخه جدید آن را دانلود کند.\n-برای اتصال به اینترنت و دانلود این فایل «بله» را انتخاب کنید\n-اگر نمیخواهید این فایل را دانلود کنید، «خیر» را انتخاب کنید.\n\nنکته: این فایل در پوشه نرمافزار دانلود میشود و در دفعات بعد بهصورت خودکار از آن استفاده خواهد شد." | ||||
| t MSG_085 "در حال دانلود کردن '%s'" | ||||
| t MSG_085 "در حال دانلود کردن %s" | ||||
| t MSG_086 "فایل ایمیج انتخاب نشده است" | ||||
| t MSG_087 "برای نوع %s" | ||||
| t MSG_088 "فایل ایمیج بیش از اندازه بزرگ است" | ||||
|  | @ -9119,7 +9119,7 @@ t MSG_081 "Niewspierany obraz" | |||
| t MSG_082 "Ten obraz nie jest bootowalny lub używa kompresji sektora rozruchowego niewspieranej przez Rufusa..." | ||||
| t MSG_083 "Zastąpić %s?" | ||||
| t MSG_084 "Ten plik ISO wydaje się być przestarzałą wersją '%s'.\nZ tego powodu menu bootowania może nie wyświetlać się poprawnie.\n\nNowsza wersja może być pobrana przez Rufusz aby naprawić ten błąd:\n- Wybierz 'Tak' aby połączyć się z internetem i pobrać plik\n- Wybierz 'Nie' aby zostawić istniejący plik ISO niezmieniony\nJeśli nie wiesz co zrobić, powinieneś wybrać 'Tak'.\n\nInformacja: Nowy plik będzie pobrany do aktualnej lokalizacji i gdy '%s' jest tutaj, zostanie użyte automatycznie." | ||||
| t MSG_085 "Pobieranie '%s'" | ||||
| t MSG_085 "Pobieranie %s" | ||||
| t MSG_086 "Nie wybrano obrazu" | ||||
| t MSG_087 "dla NAND %s" | ||||
| t MSG_088 "Obraz jest zbyt duży" | ||||
|  | @ -9451,7 +9451,7 @@ t MSG_081 "Imagem não suportada" | |||
| t MSG_082 "Esta imagem não é inicializável ou utiliza um método de inicialização ou compressão não suportado pelo Rufus..." | ||||
| t MSG_083 "Substituir %s?" | ||||
| t MSG_084 "Parece que esta imagem ISO usa uma versão obsoleta do arquivo '%s'.\nIsso pode fazer com que os menus de inicialização não sejam exibidos corretamente.\n\nO Rufus pode baixar uma versão mais recente para resolver esse problema:\n- Selecione 'Sim' para se conectar à Internet e baixar o arquivo\n- Selecione 'Não' para deixar o arquivo ISO tal como está\nSe não sabe o que fazer, é recomendado selecionar 'Sim'.\n\nNota: O novo arquivo será baixado na pasta atual e, caso exista um arquivo\n '%s' nela, ele será reutilizado automaticamente." | ||||
| t MSG_085 "Baixando '%s'" | ||||
| t MSG_085 "Baixando %s" | ||||
| t MSG_086 "Nenhuma imagem ISO foi selecionada" | ||||
| t MSG_087 "para %s NAND" | ||||
| t MSG_088 "Imagem ISO muito grande" | ||||
|  | @ -9786,7 +9786,7 @@ t MSG_081 "Tipo de imagem não suportada" | |||
| t MSG_082 "Esta imagem não é inicializável ou então usa um método de arranque ou compressão não suportado." | ||||
| t MSG_083 "Substituir %s?" | ||||
| t MSG_084 "Esta imagem ISO usa uma versão obsoleta do ficheiro '%s'.\nIsto pode fazer com que o menu de arranque não seja exibido corretamente.\n\nRufus pode transferir uma versão mais recente para resolver este problema:\n- Selecione 'Sim' para ligar-se à Internet e transferir o ficheiro\n- Selecione 'Não' para deixar o ficheiro ISO tal como está\nSe não sabe o que fazer, é recomendado selecionar 'Sim'.\n\nNota: O novo ficheiro será transferido para a pasta atual, e se o ficheiro\n '%s' já existir, será substituído automaticamente." | ||||
| t MSG_085 "A transferir '%s'" | ||||
| t MSG_085 "A transferir %s" | ||||
| t MSG_086 "Nenhuma imagem selecionada" | ||||
| t MSG_087 "para %s TIPO" | ||||
| t MSG_088 "Imagem demasiado grande" | ||||
|  | @ -10128,7 +10128,7 @@ t MSG_081 "Imaginea nu este acceptată" | |||
| t MSG_082 "Această imagine nu este boot-abilă sau folosește o metodă de boot sau de compresie nesuportată de Rufus..." | ||||
| t MSG_083 "Înlocuire %s?" | ||||
| t MSG_084 "Acest lucru arată ca utilizați o versiune învechită a '%s'.\nDin acest motiv, meniul de boot nu este vizualizat corect.\n\nO versiune nouă poate fi descărcată de la Rufus, pentru a corecta această problemă:\n- Selectați 'Da' pentru a vă conecta la Internet și a descărca fișierul\n- Selectați 'Nu' pentru a lăsa neschimbat fișierul din imaginea ISO\nDacă nu știi ce să faci, este recomandat să alegi 'Da'.\n\nNotă: Noul fișier va fi descărcat în folderul curent și odată descărcat '%s', va fi reutilizat automat." | ||||
| t MSG_085 "Descărcare '%s'" | ||||
| t MSG_085 "Descărcare %s" | ||||
| t MSG_086 "Nici o imagine selectată" | ||||
| t MSG_087 "pentru %s NAND" | ||||
| t MSG_088 "Imagine prea mare" | ||||
|  | @ -10472,7 +10472,7 @@ t MSG_081 "Неподдерживаемый образ" | |||
| t MSG_082 "Выбранный образ либо незагрузочный, либо использует метод загрузки или сжатия, который не поддерживается Rufus..." | ||||
| t MSG_083 "Переместить %s?" | ||||
| t MSG_084 "Выбранный ISO-образ использует устаревшие '%s'.\nИз-за этого загрузочного меню может отображаться неправильно.\n\nНовые версии можно скачать с помощью Rufus:\n- Выберите 'Да', чтобы скачать файл из интернета\n- Выберите 'Нет', чтобы не модифицировать ISO-образ\nЕсли вы не знаете что делать, то выберите 'Да'.\n\nФайл будет загружен в текущую директорию, а в случае наличия '%s' - заменен автоматически." | ||||
| t MSG_085 "Загружено '%s'" | ||||
| t MSG_085 "Загружено %s" | ||||
| t MSG_086 "Не выбран образ" | ||||
| t MSG_087 "для %s NAND" | ||||
| t MSG_088 "Образ слишком большой" | ||||
|  | @ -10810,7 +10810,7 @@ t MSG_081 "Nepodržana datoteka" | |||
| t MSG_082 "Ova slika nije podržana, ili koristi metodu kompresije koju Rufus ne podržava..." | ||||
| t MSG_083 "Zameni %s?" | ||||
| t MSG_084 "Ova ISO datoteka koristi zastarjelu verziju '%s'.\nZbog toga, moguće je da se meniji pri podizanju sistema ne prikažu valjano.\n\nRufus može preuzeti noviju verziju da ne dođe do problema:\n- Odaberite 'Da' kako bi ste datoteka preuzela\n- Odaberite 'Ne' da ostavite postojeću ISO datoteku\nUkoliko niste sigurni šta da odaberete, odaberite 'Da'.\n\nNapomena: Nova datoteka će biti sačuvana u istom direktorijumu kao i Rufus, i kad datoteka '%s' postoji tamo, automatski će biti korišćena." | ||||
| t MSG_085 "Preuzimam '%s'" | ||||
| t MSG_085 "Preuzimam %s" | ||||
| t MSG_086 "Nije odabrana datoteka" | ||||
| t MSG_087 "za %s NAND" | ||||
| t MSG_088 "Datoteka je prevelika" | ||||
|  | @ -11149,7 +11149,7 @@ t MSG_081 "Nepodporovaný obraz" | |||
| t MSG_082 "Tento obraz už viac nie je bootovateľný alebo používa boot alebo kompresnú metódu, ktorá nie je podporovaná programom Rufus..." | ||||
| t MSG_083 "Nahradenie modulu %s?" | ||||
| t MSG_084 "Zdá sa, že tento ISO obraz používa zastaralú verziu modulu %s.\nBootovacie menu sa preto nemusí zobrazovať správne.\n\nNová verzia modulu bude automaticky stiahnutá programom Rufus\na môže jednoducho odstrániť tento problém:\n- Stlačte „Áno\" pre pripojenie na internet a stiahnutie súboru\n- Stlačte „Nie\" a nechajte existujúci ISO súbor nezmenený\nAk neviete, čo máte robiť, vyberte tlačidlo „Áno\".\n\nPoznámka: Nový súbor „%s\" bude stiahnutý do aktuálneho priečinka programu a potom bude automaticky použitý." | ||||
| t MSG_085 "Sťahovanie '%s'" | ||||
| t MSG_085 "Sťahovanie %s" | ||||
| t MSG_086 "Nie je vybraný žiadny obraz disku" | ||||
| t MSG_087 "pre %s NAND" | ||||
| t MSG_088 "Obraz disku je príliš veľký" | ||||
|  | @ -11512,7 +11512,7 @@ t MSG_084 "Zdi se, da ta ISO slika uporablja zastarelo verzijo \"%s\".\n" | |||
| 	"Če ne veste, kaj storiti, izberite \"Da\".\n\n" | ||||
| 	"Opomba: nova datoteka bo prenesena v trenutni imenik in ko datoteka " | ||||
| 	"\"%s\" tam enkrat obstaja, bo samodejno uporabljena tudi v bodoče." | ||||
| t MSG_085 "Prenašam '%s'" | ||||
| t MSG_085 "Prenašam %s" | ||||
| t MSG_086 "Izbrana ni nobena slika" | ||||
| t MSG_088 "Slika je prevelika" | ||||
| t MSG_089 "Ta slika je prevelika za izbrani cilj." | ||||
|  | @ -11891,7 +11891,7 @@ t MSG_081 "Tipo de imagen no soportada" | |||
| t MSG_082 "Esta imagen ISO, o no es autoarrancable, o usa un método de arranque o compresión que no es soportado por Rufus..." | ||||
| t MSG_083 "¿Reemplazar %s?" | ||||
| t MSG_084 "Esta imagen ISO parece que usa una versión obsoleta del archivo '%s'.\nEsto puede hacer que los menús de arranque no se muestren correctamente.\n\nRufus puede descargar una versión más reciente para resolver este problema:\n- Seleccione 'Sí' para conectarse al Internet y descargar el archivo\n- Seleccione 'No' para dejar el archivo ISO tal como está\nSi no sabe qué hacer, se recomienda seleccionar 'Sí'.\n\nNota: El nuevo archivo se descargará en el directorio actual, en el momento que un archivo\n '%s' exista ahí, será usado automáticamente." | ||||
| t MSG_085 "Descargando '%s'" | ||||
| t MSG_085 "Descargando %s" | ||||
| t MSG_086 "No hay imagen ISO seleccionada" | ||||
| t MSG_087 "para NAND %s" | ||||
| t MSG_088 "Imagen ISO demasiado grande" | ||||
|  | @ -12223,7 +12223,7 @@ t MSG_081 "Avbilden stöds ej" | |||
| t MSG_082 "Denna avbild är antingen icke startbar, eller så använder den en start- eller kompression-metod som Rufus inte stöder..." | ||||
| t MSG_083 "Ersätt %s?" | ||||
| t MSG_084 "Denna ISO-avbild verkar använda en gammal version av '%s'.\nStartmenyn visas kanske inte på ett korrekt sätt på grund av detta.\n\nLadda ner en nyare version av Rufus så löser det problemet:\n- Välj 'Ja' för att ansluta till internet och ladda ner filen\n- Välj 'Nej' för att låta befintlig ISO-fil vara omodifierad\nVet du inte vad du ska välja, så ska du välja 'Ja'.\n\nObs: Filen kommer att laddas ner i nuvarande katalog och när '%s' sedan finns där, kommer den automatiskt att återanvändas." | ||||
| t MSG_085 "Laddar ner '%s'" | ||||
| t MSG_085 "Laddar ner %s" | ||||
| t MSG_086 "Ingen avbild vald" | ||||
| t MSG_087 "för %s-NAND" | ||||
| t MSG_088 "Avbilden är för stor" | ||||
|  | @ -12556,7 +12556,7 @@ t MSG_081 "อิมเมจไฟล์ไม่รองรับ" | |||
| t MSG_082 "อิมเมจไฟล์นี้ไม่สามารถบูตได้ หรืออาจใช้วิธีการบูตอื่นๆ ที่ Rufus ไม่รองรับ" | ||||
| t MSG_083 "แทนที่ %s?" | ||||
| t MSG_084 "ISO อิมเมจนี้อาจเป็นเวอร์ชั่นที่ล้าสมัยของ '%s'\nอาจทำให้เมนูการบูตไม่สามารถแสดงได้ถูกต้อง\n\nRufus สามารถดาวน์โหลดเวอร์ชั่นที่ใหม่กว่าให้คุณได้:\n- เลือก 'ใช่' เพื่อดาวน์โหลดไฟล์\n- เลือก 'ไม่ใช่' เพื่อใช้อิมเมจไฟล์อันเดิม\nหากไม่รู้จะเลือกวิธีใด ให้เลือก 'ใช่'\n\nหมายเหตุ: ไฟล์ใหม่จะถูกจัดเก็บในโฟลเดอร์ปัจจุบัน และเมื่อไฟล์ '%s มีแล้ว ไฟล์จะถูกเลือกใช้โดยอัตโนมัติ" | ||||
| t MSG_085 "กำลังดาวน์โหลด '%s'" | ||||
| t MSG_085 "กำลังดาวน์โหลด %s" | ||||
| t MSG_086 "ยังไม่ได้เลือกอิมเมจไฟล์" | ||||
| t MSG_087 "สำหรับ %s NAND" | ||||
| t MSG_088 "อิมเมจไฟล์มีขนาดใหญ่เกินไป" | ||||
|  | @ -12888,7 +12888,7 @@ t MSG_081 "Desteklenmeyen Yansıma" | |||
| t MSG_082 "Bu yansıma ya önyüklenebilir değil ya da Rufus tarafından desteklenmeyen bir önyükleme veya bir sıkıştırma yöntemi kullanıyor..." | ||||
| t MSG_083 "%s yerdeğiştirilsin mi?" | ||||
| t MSG_084 "Bu ISO yansıması '%s'in eski bir sürümünü kullanıyor gibi görünüyor.\nAçılış menüsü bundan dolayı düzgün görüntülenmeyebilir.\n\nBu durumu düzeltmek için yeni sürümü Rufus tarafından indirilebilir:\n- İnternete bağlanıp dosyayı indirmek için 'Evet'i ssçin\n- Varolan ISO dosyasını olduğu gibi bırakmak için 'Hayır'ı seçin\nNe yapacağınızı bilmiyorsanız, 'Evet'i seçmelisiniz.\n\nNot: Yeni dosya mevcut dizine indirilecek ve  '%s'  orda varolunca, otomatik olarak kullanılacak." | ||||
| t MSG_085 "'%s' indiriliyor" | ||||
| t MSG_085 "%s indiriliyor" | ||||
| t MSG_086 "Yansıma seçilmedi" | ||||
| t MSG_087 "%s NAND için" | ||||
| t MSG_088 "Yansıma çok büyük" | ||||
|  | @ -13232,7 +13232,7 @@ t MSG_081 "Непідтримуваний ISO-образ" | |||
| t MSG_082 "Обраний образ або незавантажувальний або використовує метод завантаження чи стиснення, який не підтримується Rufus..." | ||||
| t MSG_083 "Перемістити %s?" | ||||
| t MSG_084 "Обраний ISO-образ використовує застарілу версію '%s'.\nЧерез це завантажувальне меню може відображатися неправильно.\n\nНову версію можна завантажити за допомогою Rufus:\n- Оберіть 'Так', щоб завантажити файл з інтернету\n- Оберіть 'Ні', щоб не модифікувати ISO-образ\nЯкщо ви не знаєте що робити, то оберіть 'Так'.\n\nФайл буде завантажений в поточну директорію, а в разі наявності '%s' - замінений автоматично." | ||||
| t MSG_085 "Завантаженя '%s'" | ||||
| t MSG_085 "Завантаженя %s" | ||||
| t MSG_086 "Образ не обрано" | ||||
| t MSG_087 "для %s NAND" | ||||
| t MSG_088 "Образ занадто великий" | ||||
|  | @ -13567,7 +13567,7 @@ t MSG_081 "Ảnh không được hỗ trợ" | |||
| t MSG_082 "Ảnh này không có khả năng khởi động hoặc sử dụng một phương thức khởi động hoặc nén không được Rufus hỗ trợ..." | ||||
| t MSG_083 "Thay thế %s?" | ||||
| t MSG_084 "Ảnh ISO này là phiên bản cũ của '%s'.\nMenu khởi động có thể không hiện chính xác vì điều này.\n\nMột phiên bản mới có thể được tải xuống bởi Rufus để khắc phục vấn đề này:\n- Chọn 'Có' để kết nối với Internet và tải tập tin xuống\n- Chọn 'Không' để không thay đổi tập tin ISO đang có\nNếu bạn không biết phải làm gì, bạn nên chọn 'Có'.\n\nGhi chú: Tập tin mới sẽ được tải xuống vào thư mục hiện tại và một khi '%s' có trong đó, nó sẽ được tự động tái sử dụng." | ||||
| t MSG_085 "Đang tải xuống '%s'" | ||||
| t MSG_085 "Đang tải xuống %s" | ||||
| t MSG_086 "Chưa chọn ảnh" | ||||
| t MSG_087 "cho %s NAND" | ||||
| t MSG_088 "Ảnh quá lớn" | ||||
|  |  | |||
|  | @ -4,7 +4,7 @@ | |||
|  * Copyright © 1998-2001 Free Software Foundation, Inc. | ||||
|  * Copyright © 2004 g10 Code GmbH | ||||
|  * Copyright © 2002-2015 Wei Dai & Igor Pavlov | ||||
|  * Copyright © 2015-2016 Pete Batard <pete@akeo.ie> | ||||
|  * Copyright © 2015-2019 Pete Batard <pete@akeo.ie> | ||||
|  * | ||||
|  * This program is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  | @ -827,7 +827,7 @@ INT_PTR CALLBACK ChecksumCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM | |||
| 			SetWindowTextU(hDlg, &image_path[i+1]); | ||||
| 		// Set focus on the OK button
 | ||||
| 		SendMessage(hDlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(hDlg, IDOK), TRUE); | ||||
| 		CenterDialog(hDlg); | ||||
| 		CenterDialog(hDlg, NULL); | ||||
| 		break; | ||||
| 	case WM_COMMAND: | ||||
| 		switch (LOWORD(wParam)) { | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| /*
 | ||||
|  * Rufus: The Reliable USB Formatting Utility | ||||
|  * Device detection and enumeration | ||||
|  * Copyright © 2014-2018 Pete Batard <pete@akeo.ie> | ||||
|  * Copyright © 2014-2019 Pete Batard <pete@akeo.ie> | ||||
|  * | ||||
|  * This program is free software: you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  | @ -311,8 +311,8 @@ BOOL GetOpticalMedia(IMG_SAVE* img_save) | |||
| //#define FORCED_DEVICE
 | ||||
| #ifdef FORCED_DEVICE | ||||
| #define FORCED_VID 0x067B | ||||
| #define FORCED_PID 0x2731 | ||||
| #define FORCED_NAME "SD Card Reader USB Device" | ||||
| #define FORCED_PID 0x2733 | ||||
| #define FORCED_NAME "EAGET Mass Storage USB Device" | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  |  | |||
|  | @ -1,7 +1,7 @@ | |||
| /*
 | ||||
|  * Rufus: The Reliable USB Formatting Utility | ||||
|  * SMART HDD vs Flash detection - isHDD() tables | ||||
|  * Copyright © 2013-2014 Pete Batard <pete@akeo.ie> | ||||
|  * Copyright © 2013-2019 Pete Batard <pete@akeo.ie> | ||||
|  * | ||||
|  * Based in part on drivedb.h from Smartmontools: | ||||
|  * http://svn.code.sf.net/p/smartmontools/code/trunk/smartmontools/drivedb.h
 | ||||
|  | @ -257,6 +257,7 @@ static vidpid_score_t vidpid_score[] = { | |||
| 	{ 0x067b, 0x2517, -20 },	// 1 GB UFD
 | ||||
| 	{ 0x067b, 0x2528, -20 },	// 8 GB UFD
 | ||||
| 	{ 0x067b, 0x2731, -20 },	// SD/TF Card Reader
 | ||||
| 	{ 0x067b, 0x2733, -20 },	// EAGET Mass Storage USB Device
 | ||||
| 	{ 0x067b, 0x3400, -10 },	// Hi-Speed Flash Disk with TruePrint AES3400
 | ||||
| 	{ 0x067b, 0x3500, -10 },	// Hi-Speed Flash Disk with TruePrint AES3500
 | ||||
| 	// Freecom exceptions
 | ||||
|  |  | |||
							
								
								
									
										106
									
								
								src/net.c
									
										
									
									
									
								
							
							
						
						
									
										106
									
								
								src/net.c
									
										
									
									
									
								
							|  | @ -226,6 +226,38 @@ const char* WinInetErrorString(void) | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| static char* GetShortName(const char* url) | ||||
| { | ||||
| 	static char short_name[128]; | ||||
| 	char *p; | ||||
| 	size_t i, len = safe_strlen(url); | ||||
| 	if (len < 5) | ||||
| 		return NULL; | ||||
| 
 | ||||
| 	for (i = len - 1; i > 0; i--) { | ||||
| 		if (url[i] == '/') { | ||||
| 			i++; | ||||
| 			break; | ||||
| 		} | ||||
| 	} | ||||
| 	static_strcpy(short_name, &url[i]); | ||||
| 	// If the URL is followed by a query, remove that part
 | ||||
| 	// Make sure we detect escaped queries too
 | ||||
| 	p = strstr(short_name, "%3F"); | ||||
| 	if (p != NULL) | ||||
| 		*p = 0; | ||||
| 	p = strstr(short_name, "%3f"); | ||||
| 	if (p != NULL) | ||||
| 		*p = 0; | ||||
| 	for (i = 0; i < strlen(short_name); i++) { | ||||
| 		if ((short_name[i] == '?') || (short_name[i] == '#')) { | ||||
| 			short_name[i] = 0; | ||||
| 			break; | ||||
| 		} | ||||
| 	} | ||||
| 	return short_name; | ||||
| } | ||||
| 
 | ||||
| // Open an Internet session
 | ||||
| static HINTERNET GetInternetSession(BOOL bRetry) | ||||
| { | ||||
|  | @ -275,7 +307,7 @@ out: | |||
|  * to the dialog in question, with WPARAM being set to nonzero for EXIT on success | ||||
|  * and also attempt to indicate progress using an IDC_PROGRESS control | ||||
|  */ | ||||
| static uint64_t DownloadToFileOrBuffer(const char* url, const char* file, BYTE** buffer, HWND hProgressDialog) | ||||
| static uint64_t DownloadToFileOrBuffer(const char* url, const char* file, BYTE** buffer, HWND hProgressDialog, BOOL bTaskBarProgress) | ||||
| { | ||||
| 	const char* accept_types[] = {"*/*\0", NULL}; | ||||
| 	const char* short_name; | ||||
|  | @ -377,8 +409,12 @@ static uint64_t DownloadToFileOrBuffer(const char* url, const char* file, BYTE** | |||
| 		goto out; | ||||
| 	} | ||||
| 	total_size = (uint64_t)atoll(strsize); | ||||
| 	if (hProgressDialog != NULL) | ||||
| 	if (hProgressDialog != NULL) { | ||||
| 		char msg[128]; | ||||
| 		uprintf("File length: %s", SizeToHumanReadable(total_size, FALSE, FALSE)); | ||||
| 		static_sprintf(msg, "%s (%s)", GetShortName(url), SizeToHumanReadable(total_size, FALSE, FALSE)); | ||||
| 		PrintStatus(0, MSG_085, msg); | ||||
| 	} | ||||
| 
 | ||||
| 	if (file != NULL) { | ||||
| 		hFile = CreateFileU(file, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); | ||||
|  | @ -406,7 +442,9 @@ static uint64_t DownloadToFileOrBuffer(const char* url, const char* file, BYTE** | |||
| 		if (!pfInternetReadFile(hRequest, buf, sizeof(buf), &dwDownloaded) || (dwDownloaded == 0)) | ||||
| 			break; | ||||
| 		if (hProgressDialog != NULL) { | ||||
| 			SendMessage(hProgressBar, PBM_SETPOS, (WPARAM)(MAX_PROGRESS*((1.0f*size) / (1.0f*total_size))), 0); | ||||
| 			SendMessage(hProgressBar, PBM_SETPOS, (WPARAM)((1.0f * MAX_PROGRESS * size) / (1.0f * total_size)), 0); | ||||
| 			if (bTaskBarProgress) | ||||
| 				SetTaskbarProgressValue((ULONGLONG)((1.0f * MAX_PROGRESS * size) / (1.0f * total_size)), MAX_PROGRESS); | ||||
| 			PrintInfo(0, MSG_241, (100.0f*size) / (1.0f*total_size)); | ||||
| 		} | ||||
| 		if (file != NULL) { | ||||
|  | @ -480,10 +518,10 @@ DWORD DownloadSignedFile(const char* url, const char* file, HWND hProgressDialog | |||
| 	strcpy(url_sig, url); | ||||
| 	strcat(url_sig, ".sig"); | ||||
| 
 | ||||
| 	buf_len = (DWORD)DownloadToFileOrBuffer(url, NULL, &buf, hProgressDialog); | ||||
| 	buf_len = (DWORD)DownloadToFileOrBuffer(url, NULL, &buf, hProgressDialog, FALSE); | ||||
| 	if (buf_len == 0) | ||||
| 		goto out; | ||||
| 	sig_len = (DWORD)DownloadToFileOrBuffer(url_sig, NULL, &sig, NULL); | ||||
| 	sig_len = (DWORD)DownloadToFileOrBuffer(url_sig, NULL, &sig, NULL, FALSE); | ||||
| 	if ((sig_len != RSA_SIGNATURE_SIZE) || (!ValidateOpensslSignature(buf, buf_len, sig, sig_len))) { | ||||
| 		uprintf("FATAL: Download signature is invalid ✗"); | ||||
| 		DownloadStatus = 403;	// Forbidden
 | ||||
|  | @ -750,7 +788,7 @@ static DWORD WINAPI CheckForUpdatesThread(LPVOID param) | |||
| 
 | ||||
| 		// Now download the signature file
 | ||||
| 		static_sprintf(sigpath, "%s/%s.sig", server_url, urlpath); | ||||
| 		dwDownloaded = (DWORD)DownloadToFileOrBuffer(sigpath, NULL, &sig, NULL); | ||||
| 		dwDownloaded = (DWORD)DownloadToFileOrBuffer(sigpath, NULL, &sig, NULL, FALSE); | ||||
| 		if ((dwDownloaded != RSA_SIGNATURE_SIZE) || (!ValidateOpensslSignature(buf, dwTotalSize, sig, dwDownloaded))) { | ||||
| 			uprintf("FATAL: Version signature is invalid ✗"); | ||||
| 			goto out; | ||||
|  | @ -828,12 +866,12 @@ BOOL CheckForUpdates(BOOL force) | |||
|  */ | ||||
| static DWORD WINAPI DownloadISOThread(LPVOID param) | ||||
| { | ||||
| 	char cmdline[512], locale_str[1024], iso_name[128], pipe[64] = "\\\\.\\pipe\\"; | ||||
| 	char cmdline[512], locale_str[1024], pipe[64] = "\\\\.\\pipe\\"; | ||||
| 	char powershell_path[MAX_PATH], icon_path[MAX_PATH] = "", script_path[MAX_PATH] = ""; | ||||
| 	char *p, *url = NULL, sig_url[128]; | ||||
| 	char *url = NULL, sig_url[128]; | ||||
| 	BYTE *sig = NULL; | ||||
| 	HANDLE hFile, hPipe; | ||||
| 	DWORD i, dwSize, dwAvail, dwPipeSize = 4096; | ||||
| 	DWORD dwSize, dwAvail, dwPipeSize = 4096; | ||||
| 	GUID guid; | ||||
| 
 | ||||
| 	IGNORE_RETVAL(CoInitializeEx(NULL, COINIT_APARTMENTTHREADED)); | ||||
|  | @ -847,6 +885,7 @@ static DWORD WINAPI DownloadISOThread(LPVOID param) | |||
| 	ExtractAppIcon(icon_path, TRUE); | ||||
| 
 | ||||
| //#define FORCE_URL "https://github.com/pbatard/rufus/raw/master/res/loc/test/windows_to_go.iso"
 | ||||
| //#define FORCE_URL "https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-9.8.0-amd64-netinst.iso"
 | ||||
| #if !defined(FORCE_URL) | ||||
| #if defined(RUFUS_TEST) | ||||
| 	// In test mode, just use our local script
 | ||||
|  | @ -854,11 +893,11 @@ static DWORD WINAPI DownloadISOThread(LPVOID param) | |||
| #else | ||||
| 	// If we don't have the script, download it
 | ||||
| 	if (fido_len == 0) { | ||||
| 		fido_len = (DWORD)DownloadToFileOrBuffer(fido_url, NULL, &fido_script, hMainDialog); | ||||
| 		fido_len = (DWORD)DownloadToFileOrBuffer(fido_url, NULL, &fido_script, hMainDialog, FALSE); | ||||
| 		if (fido_len == 0) | ||||
| 			goto out; | ||||
| 		static_sprintf(sig_url, "%s.sig", fido_url); | ||||
| 		dwSize = (DWORD)DownloadToFileOrBuffer(sig_url, NULL, &sig, NULL); | ||||
| 		dwSize = (DWORD)DownloadToFileOrBuffer(sig_url, NULL, &sig, NULL, FALSE); | ||||
| 		if ((dwSize != RSA_SIGNATURE_SIZE) || (!ValidateOpensslSignature(fido_script, fido_len, sig, dwSize))) { | ||||
| 			uprintf("FATAL: Signature is invalid ✗"); | ||||
| 			free(sig); | ||||
|  | @ -918,57 +957,32 @@ static DWORD WINAPI DownloadISOThread(LPVOID param) | |||
| #endif | ||||
| 			IMG_SAVE img_save = { 0 }; | ||||
| 			url[dwSize] = 0; | ||||
| 			for (i = dwSize - 1; i != 0; i--) { | ||||
| 				if (url[i] == '/') | ||||
| 					break; | ||||
| 			} | ||||
| 			static_strcpy(iso_name, &url[i + 1]); | ||||
| 			// There's extra stuff after the ISO name, which we need to account for
 | ||||
| 			p = strstr(iso_name, ".iso"); | ||||
| 			if (p != NULL) { | ||||
| 				p[4] = 0; | ||||
| 			} else for (i = 0; i < strlen(iso_name); i++) { | ||||
| 				if (iso_name[i] == '?') { | ||||
| 					iso_name[i] = 0; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			EXT_DECL(img_ext, iso_name, __VA_GROUP__("*.iso"), __VA_GROUP__(lmprintf(MSG_036))); | ||||
| 			EXT_DECL(img_ext, GetShortName(url), __VA_GROUP__("*.iso"), __VA_GROUP__(lmprintf(MSG_036))); | ||||
| 			img_save.Type = IMG_SAVE_TYPE_ISO; | ||||
| 			img_save.ImagePath = FileDialog(TRUE, NULL, &img_ext, 0); | ||||
| 			if (img_save.ImagePath == NULL) { | ||||
| 				goto out; | ||||
| 			} | ||||
| 			// Download the ISO and report errors if any
 | ||||
| 			SendMessage(hProgress, PBM_SETSTATE, (WPARAM)PBST_NORMAL, 0); | ||||
| 			SetTaskbarProgressState(TASKBAR_NORMAL); | ||||
| 			SetTaskbarProgressValue(0, MAX_PROGRESS); | ||||
| 			SendMessage(hProgress, PBM_SETPOS, 0, 0); | ||||
| 			SendMessage(hMainDialog, UM_PROGRESS_INIT, 0, 0); | ||||
| 			FormatStatus = 0; | ||||
| 			format_op_in_progress = TRUE; | ||||
| 			SendMessage(hMainDialog, UM_TIMER_START, 0, 0); | ||||
| 			if (DownloadToFileOrBuffer(url, img_save.ImagePath, NULL, hMainDialog) == 0) { | ||||
| 			if (DownloadToFileOrBuffer(url, img_save.ImagePath, NULL, hMainDialog, TRUE) == 0) { | ||||
| 				SendMessage(hMainDialog, UM_PROGRESS_EXIT, 0, 0); | ||||
| 				if (SCODE_CODE(FormatStatus) == ERROR_CANCELLED) { | ||||
| 					uprintf("Download cancelled by user"); | ||||
| 					SendMessage(hProgress, PBM_SETSTATE, (WPARAM)PBST_PAUSED, 0); | ||||
| 					SetTaskbarProgressState(TASKBAR_PAUSED); | ||||
| 					PrintInfo(0, MSG_211); | ||||
| 					Notification(MSG_INFO, NULL, NULL, lmprintf(MSG_211), lmprintf(MSG_041)); | ||||
| 					PrintInfo(0, MSG_211); | ||||
| 				} else { | ||||
| 					FormatStatus = GetLastError(); | ||||
| 					SendMessage(hProgress, PBM_SETSTATE, (WPARAM)PBST_ERROR, 0); | ||||
| 					SetTaskbarProgressState(TASKBAR_ERROR); | ||||
| 					Notification(MSG_ERROR, NULL, NULL, lmprintf(MSG_194, GetShortName(url)), lmprintf(MSG_043, WinInetErrorString())); | ||||
| 					PrintInfo(0, MSG_212); | ||||
| 					MessageBeep(MB_ICONERROR); | ||||
| 					FlashTaskbar(dialog_handle); | ||||
| 					SetLastError(FormatStatus); | ||||
| 					Notification(MSG_ERROR, NULL, NULL, lmprintf(MSG_194, iso_name), lmprintf(MSG_043, WinInetErrorString())); | ||||
| 				} | ||||
| 			} else { | ||||
| 				// Download was successful => Select and scan the ISO
 | ||||
| 				image_path = safe_strdup(img_save.ImagePath); | ||||
| 				PostMessage(hMainDialog, UM_SELECT_ISO, 0, 0); | ||||
| 			} | ||||
| 			// Download was successful => Select and scan the ISO
 | ||||
| 			image_path = safe_strdup(img_save.ImagePath); | ||||
| 			PostMessage(hMainDialog, UM_SELECT_ISO, 0, 0); | ||||
| 			format_op_in_progress = FALSE; | ||||
| 			safe_free(img_save.ImagePath); | ||||
| 		} | ||||
|  |  | |||
							
								
								
									
										44
									
								
								src/rufus.c
									
										
									
									
									
								
							
							
						
						
									
										44
									
								
								src/rufus.c
									
										
									
									
									
								
							|  | @ -77,6 +77,7 @@ static char uppercase_select[2][64], uppercase_start[64], uppercase_close[64], u | |||
| 
 | ||||
| extern BOOL enable_iso, enable_joliet, enable_rockridge; | ||||
| extern BYTE* fido_script; | ||||
| extern HWND hFidoDlg; | ||||
| extern uint8_t* grub2_buf; | ||||
| extern long grub2_len; | ||||
| extern char* szStatusMessage; | ||||
|  | @ -1692,10 +1693,7 @@ static void SaveVHD(void) | |||
| 		img_save.DeviceSize = SelectedDrive.DiskSize; | ||||
| 		if (img_save.ImagePath != NULL) { | ||||
| 			// Reset all progress bars
 | ||||
| 			SendMessage(hProgress, PBM_SETSTATE, (WPARAM)PBST_NORMAL, 0); | ||||
| 			SetTaskbarProgressState(TASKBAR_NORMAL); | ||||
| 			SetTaskbarProgressValue(0, MAX_PROGRESS); | ||||
| 			SendMessage(hProgress, PBM_SETPOS, 0, 0); | ||||
| 			SendMessage(hMainDialog, UM_PROGRESS_INIT, 0, 0); | ||||
| 			FormatStatus = 0; | ||||
| 			format_op_in_progress = TRUE; | ||||
| 			free_space.QuadPart = 0; | ||||
|  | @ -1759,11 +1757,7 @@ static void SaveISO(void) | |||
| 	img_save.ImagePath = FileDialog(TRUE, NULL, &img_ext, 0); | ||||
| 	if (img_save.ImagePath == NULL) | ||||
| 		return; | ||||
| 	// Reset all progress bars
 | ||||
| 	SendMessage(hProgress, PBM_SETSTATE, (WPARAM)PBST_NORMAL, 0); | ||||
| 	SetTaskbarProgressState(TASKBAR_NORMAL); | ||||
| 	SetTaskbarProgressValue(0, MAX_PROGRESS); | ||||
| 	SendMessage(hProgress, PBM_SETPOS, 0, 0); | ||||
| 	SendMessage(hMainDialog, UM_PROGRESS_INIT, 0, 0); | ||||
| 	FormatStatus = 0; | ||||
| 	format_op_in_progress = TRUE; | ||||
| 	// Disable all controls except cancel
 | ||||
|  | @ -1875,7 +1869,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | |||
| 	RECT rc, DialogRect, DesktopRect; | ||||
| 	HDC hDC; | ||||
| 	PAINTSTRUCT ps; | ||||
| 	int nDeviceIndex, i, nWidth, nHeight, nb_devices, selected_language, offset; | ||||
| 	int nDeviceIndex, i, nWidth, nHeight, nb_devices, selected_language, offset, tb_state, tb_flags; | ||||
| 	char tmp[128]; | ||||
| 	wchar_t* wbuffer = NULL; | ||||
| 	loc_cmd* lcmd = NULL; | ||||
|  | @ -2207,11 +2201,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | |||
| 			StrArrayClear(&BlockingProcess); | ||||
| 			format_op_in_progress = TRUE; | ||||
| 			no_confirmation_on_cancel = FALSE; | ||||
| 			// Reset all progress bars
 | ||||
| 			SendMessage(hProgress, PBM_SETSTATE, (WPARAM)PBST_NORMAL, 0); | ||||
| 			SetTaskbarProgressState(TASKBAR_NORMAL); | ||||
| 			SetTaskbarProgressValue(0, MAX_PROGRESS); | ||||
| 			SendMessage(hProgress, PBM_SETPOS, 0, 0); | ||||
| 			SendMessage(hMainDialog, UM_PROGRESS_INIT, 0, 0); | ||||
| 			selection_default = (int)ComboBox_GetItemData(hBootType, ComboBox_GetCurSel(hBootType)); | ||||
| 			// Create a thread to validate options and download files as needed (so that we can update the UI).
 | ||||
| 			// On exit, this thread sends message UM_FORMAT_START back to this dialog.
 | ||||
|  | @ -2236,11 +2226,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | |||
| 				FormatStatus = 0; | ||||
| 				format_op_in_progress = TRUE; | ||||
| 				no_confirmation_on_cancel = TRUE; | ||||
| 				// Reset all progress bars
 | ||||
| 				SendMessage(hProgress, PBM_SETSTATE, (WPARAM)PBST_NORMAL, 0); | ||||
| 				SetTaskbarProgressState(TASKBAR_NORMAL); | ||||
| 				SetTaskbarProgressValue(0, MAX_PROGRESS); | ||||
| 				SendMessage(hProgress, PBM_SETPOS, 0, 0); | ||||
| 				SendMessage(hMainDialog, UM_PROGRESS_INIT, 0, 0); | ||||
| 				// Disable all controls except cancel
 | ||||
| 				EnableControls(FALSE); | ||||
| 				InitProgress(FALSE); | ||||
|  | @ -2513,7 +2499,7 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | |||
| 			return (INT_PTR)TRUE; | ||||
| 		} | ||||
| 		if (message == WM_CLOSE) { | ||||
| 			// We must use PostQuitMessage() on VM_CLOSE, to prevent notification sound...
 | ||||
| 			// We must use PostQuitMessage() on WM_CLOSE, to prevent notification sound...
 | ||||
| 			PostQuitMessage(0); | ||||
| 		} else { | ||||
| 			// ...but we must simulate Cancel on shutdown requests, else the app freezes.
 | ||||
|  | @ -2532,14 +2518,24 @@ static INT_PTR CALLBACK MainCallback(HWND hDlg, UINT message, WPARAM wParam, LPA | |||
| 		break; | ||||
| 
 | ||||
| 	case UM_PROGRESS_EXIT: | ||||
| 		tb_state = PBST_NORMAL; | ||||
| 		tb_flags = TASKBAR_NORMAL; | ||||
| 		if (isMarquee) { | ||||
| 			SendMessage(hProgress, PBM_SETMARQUEE, FALSE, 0); | ||||
| 			SetTaskbarProgressValue(0, MAX_PROGRESS); | ||||
| 		} else if (!IS_ERROR(FormatStatus)) { | ||||
| 			SetTaskbarProgressValue(MAX_PROGRESS, MAX_PROGRESS); | ||||
| 		} else if (SCODE_CODE(FormatStatus) == ERROR_CANCELLED) { | ||||
| 			tb_state = PBST_PAUSED; | ||||
| 			tb_flags = TASKBAR_PAUSED; | ||||
| 		} else { | ||||
| 			tb_state = PBST_ERROR; | ||||
| 			tb_flags = TASKBAR_ERROR; | ||||
| 			MessageBeep(MB_ICONERROR); | ||||
| 			FlashTaskbar(dialog_handle); | ||||
| 		} | ||||
| 		SendMessage(hProgress, PBM_SETSTATE, (WPARAM)PBST_NORMAL, 0); | ||||
| 		SetTaskbarProgressState(TASKBAR_NORMAL); | ||||
| 		SendMessage(hProgress, PBM_SETSTATE, (WPARAM)tb_state, 0); | ||||
| 		SetTaskbarProgressState(tb_flags); | ||||
| 		break; | ||||
| 
 | ||||
| 	case UM_NO_UPDATE: | ||||
|  | @ -3387,6 +3383,8 @@ relaunch: | |||
| 			DispatchMessage(&msg); | ||||
| 		} | ||||
| 	} | ||||
| 	if (hFidoDlg != NULL) | ||||
| 		SendMessage(hFidoDlg, WM_CLOSE, 0, 0); | ||||
| 	if (relaunch) { | ||||
| 		relaunch = FALSE; | ||||
| 		reinit_localization(); | ||||
|  |  | |||
|  | @ -484,7 +484,7 @@ extern char* SizeToHumanReadable(uint64_t size, BOOL copy_to_log, BOOL fake_unit | |||
| extern char* TimestampToHumanReadable(uint64_t ts); | ||||
| extern HWND MyCreateDialog(HINSTANCE hInstance, int Dialog_ID, HWND hWndParent, DLGPROC lpDialogFunc); | ||||
| extern INT_PTR MyDialogBox(HINSTANCE hInstance, int Dialog_ID, HWND hWndParent, DLGPROC lpDialogFunc); | ||||
| extern void CenterDialog(HWND hDlg); | ||||
| extern void CenterDialog(HWND hDlg, HWND hParent); | ||||
| extern void ResizeMoveCtrl(HWND hDlg, HWND hCtrl, int dx, int dy, int dw, int dh, float scale); | ||||
| extern void ResizeButtonHeight(HWND hDlg, int id); | ||||
| extern void CreateStatusBar(void); | ||||
|  |  | |||
							
								
								
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							
							
						
						
									
										10
									
								
								src/rufus.rc
									
										
									
									
									
								
							|  | @ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL | |||
| IDD_DIALOG DIALOGEX 12, 12, 232, 326 | ||||
| STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | ||||
| EXSTYLE WS_EX_ACCEPTFILES | ||||
| CAPTION "Rufus 3.5.1453" | ||||
| CAPTION "Rufus 3.5.1454" | ||||
| FONT 9, "Segoe UI Symbol", 400, 0, 0x0 | ||||
| BEGIN | ||||
|     LTEXT           "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP | ||||
|  | @ -394,8 +394,8 @@ END | |||
| // | ||||
| 
 | ||||
| VS_VERSION_INFO VERSIONINFO | ||||
|  FILEVERSION 3,5,1453,0 | ||||
|  PRODUCTVERSION 3,5,1453,0 | ||||
|  FILEVERSION 3,5,1454,0 | ||||
|  PRODUCTVERSION 3,5,1454,0 | ||||
|  FILEFLAGSMASK 0x3fL | ||||
| #ifdef _DEBUG | ||||
|  FILEFLAGS 0x1L | ||||
|  | @ -413,13 +413,13 @@ BEGIN | |||
|             VALUE "Comments", "https://akeo.ie" | ||||
|             VALUE "CompanyName", "Akeo Consulting" | ||||
|             VALUE "FileDescription", "Rufus" | ||||
|             VALUE "FileVersion", "3.5.1453" | ||||
|             VALUE "FileVersion", "3.5.1454" | ||||
|             VALUE "InternalName", "Rufus" | ||||
|             VALUE "LegalCopyright", "© 2011-2019 Pete Batard (GPL v3)" | ||||
|             VALUE "LegalTrademarks", "https://www.gnu.org/copyleft/gpl.html" | ||||
|             VALUE "OriginalFilename", "rufus-3.5.exe" | ||||
|             VALUE "ProductName", "Rufus" | ||||
|             VALUE "ProductVersion", "3.5.1453" | ||||
|             VALUE "ProductVersion", "3.5.1454" | ||||
|         END | ||||
|     END | ||||
|     BLOCK "VarFileInfo" | ||||
|  |  | |||
							
								
								
									
										61
									
								
								src/stdlg.c
									
										
									
									
									
								
							
							
						
						
									
										61
									
								
								src/stdlg.c
									
										
									
									
									
								
							|  | @ -51,8 +51,7 @@ static char* szMessageText = NULL; | |||
| static char* szMessageTitle = NULL; | ||||
| static char **szDialogItem; | ||||
| static int nDialogItems; | ||||
| static HWND hBrowseEdit; | ||||
| extern HWND hUpdatesDlg; | ||||
| static HWND hBrowseEdit, hUpdatesDlg; | ||||
| static WNDPROC pOrgBrowseWndproc; | ||||
| static const SETTEXTEX friggin_microsoft_unicode_amateurs = {ST_DEFAULT, CP_UTF8}; | ||||
| static BOOL notification_is_question; | ||||
|  | @ -60,8 +59,8 @@ static const notification_info* notification_more_info; | |||
| static const char* notification_dont_display_setting; | ||||
| static WNDPROC update_original_proc = NULL; | ||||
| static HWINEVENTHOOK ap_weh = NULL; | ||||
| static char *fp_title_str = "Microsoft Windows", *fp_button_str = "Format disk"; | ||||
| static char *cp_title_str = "Windows Security Warning"; | ||||
| static char title_str[3][128], button_str[128]; | ||||
| HWND hFidoDlg = NULL; | ||||
| BOOL close_fido_cookie_prompts = FALSE; | ||||
| 
 | ||||
| static int update_settings_reposition_ids[] = { | ||||
|  | @ -442,16 +441,16 @@ void CreateStatusBar(void) | |||
| 
 | ||||
| /*
 | ||||
|  * Center a dialog with regards to the main application Window or the desktop | ||||
|  * See http://msdn.microsoft.com/en-us/library/windows/desktop/ms644996.aspx#init_box
 | ||||
|  * See https://docs.microsoft.com/en-gb/windows/desktop/dlgbox/using-dialog-boxes#initializing-a-dialog-box
 | ||||
|  */ | ||||
| void CenterDialog(HWND hDlg) | ||||
| void CenterDialog(HWND hDlg, HWND hParent) | ||||
| { | ||||
| 	HWND hParent; | ||||
| 	RECT rc, rcDlg, rcParent; | ||||
| 
 | ||||
| 	if ((hParent = GetParent(hDlg)) == NULL) { | ||||
| 	if (hParent == NULL) | ||||
| 		hParent = GetParent(hDlg); | ||||
| 	if (hParent == NULL) | ||||
| 		hParent = GetDesktopWindow(); | ||||
| 	} | ||||
| 
 | ||||
| 	GetWindowRect(hParent, &rcParent); | ||||
| 	GetWindowRect(hDlg, &rcDlg); | ||||
|  | @ -530,7 +529,7 @@ INT_PTR CALLBACK LicenseCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM | |||
| 	case WM_INITDIALOG: | ||||
| 		hLicense = GetDlgItem(hDlg, IDC_LICENSE_TEXT); | ||||
| 		apply_localization(IDD_LICENSE, hDlg); | ||||
| 		CenterDialog(hDlg); | ||||
| 		CenterDialog(hDlg, NULL); | ||||
| 		ResizeButtonHeight(hDlg, IDCANCEL); | ||||
| 		// Suppress any inherited RTL flags
 | ||||
| 		style = GetWindowLongPtr(hLicense, GWL_EXSTYLE); | ||||
|  | @ -576,7 +575,7 @@ INT_PTR CALLBACK AboutCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lP | |||
| 		// Execute dialog localization
 | ||||
| 		apply_localization(IDD_ABOUTBOX, hDlg); | ||||
| 		SetTitleBarIcon(hDlg); | ||||
| 		CenterDialog(hDlg); | ||||
| 		CenterDialog(hDlg, NULL); | ||||
| 		// Resize the 'License' button
 | ||||
| 		hCtrl = GetDlgItem(hDlg, IDC_ABOUT_LICENSE); | ||||
| 		GetWindowRect(hCtrl, &rc); | ||||
|  | @ -704,7 +703,7 @@ INT_PTR CALLBACK NotificationCallback(HWND hDlg, UINT message, WPARAM wParam, LP | |||
| 		separator_brush = CreateSolidBrush(GetSysColor(COLOR_3DLIGHT)); | ||||
| 		buttonface_brush = CreateSolidBrush(GetSysColor(COLOR_BTNFACE)); | ||||
| 		SetTitleBarIcon(hDlg); | ||||
| 		CenterDialog(hDlg); | ||||
| 		CenterDialog(hDlg, NULL); | ||||
| 		// Change the default icon
 | ||||
| 		if (Static_SetIcon(GetDlgItem(hDlg, IDC_NOTIFICATION_ICON), hMessageIcon) == 0) { | ||||
| 			uprintf("Could not set dialog icon\n"); | ||||
|  | @ -897,7 +896,7 @@ INT_PTR CALLBACK SelectionCallback(HWND hDlg, UINT message, WPARAM wParam, LPARA | |||
| 		background_brush = CreateSolidBrush(GetSysColor(COLOR_WINDOW)); | ||||
| 		separator_brush = CreateSolidBrush(GetSysColor(COLOR_3DLIGHT)); | ||||
| 		SetTitleBarIcon(hDlg); | ||||
| 		CenterDialog(hDlg); | ||||
| 		CenterDialog(hDlg, NULL); | ||||
| 		// Change the default icon and set the text
 | ||||
| 		Static_SetIcon(GetDlgItem(hDlg, IDC_SELECTION_ICON), LoadIcon(NULL, IDI_QUESTION)); | ||||
| 		SetWindowTextU(hDlg, szMessageTitle); | ||||
|  | @ -1030,7 +1029,7 @@ INT_PTR CALLBACK ListCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa | |||
| 		background_brush = CreateSolidBrush(GetSysColor(COLOR_WINDOW)); | ||||
| 		separator_brush = CreateSolidBrush(GetSysColor(COLOR_3DLIGHT)); | ||||
| 		SetTitleBarIcon(hDlg); | ||||
| 		CenterDialog(hDlg); | ||||
| 		CenterDialog(hDlg, NULL); | ||||
| 		// Change the default icon and set the text
 | ||||
| 		Static_SetIcon(GetDlgItem(hDlg, IDC_LIST_ICON), LoadIcon(NULL, IDI_EXCLAMATION)); | ||||
| 		SetWindowTextU(hDlg, szMessageTitle); | ||||
|  | @ -1413,7 +1412,7 @@ INT_PTR CALLBACK UpdateCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM l | |||
| 		apply_localization(IDD_UPDATE_POLICY, hDlg); | ||||
| 		PositionControls(hDlg); | ||||
| 		SetTitleBarIcon(hDlg); | ||||
| 		CenterDialog(hDlg); | ||||
| 		CenterDialog(hDlg, NULL); | ||||
| 		hFrequency = GetDlgItem(hDlg, IDC_UPDATE_FREQUENCY); | ||||
| 		hBeta = GetDlgItem(hDlg, IDC_INCLUDE_BETAS); | ||||
| 		IGNORE_RETVAL(ComboBox_SetItemData(hFrequency, ComboBox_AddStringU(hFrequency, lmprintf(MSG_013)), -1)); | ||||
|  | @ -1636,7 +1635,7 @@ INT_PTR CALLBACK NewVersionCallback(HWND hDlg, UINT message, WPARAM wParam, LPAR | |||
| 		apply_localization(IDD_NEW_VERSION, hDlg); | ||||
| 		download_status = 0; | ||||
| 		SetTitleBarIcon(hDlg); | ||||
| 		CenterDialog(hDlg); | ||||
| 		CenterDialog(hDlg, NULL); | ||||
| 		// Subclass the callback so that we can change the cursor
 | ||||
| 		update_original_proc = (WNDPROC)SetWindowLongPtr(hDlg, GWLP_WNDPROC, (LONG_PTR)update_subclass_callback); | ||||
| 		hNotes = GetDlgItem(hDlg, IDC_RELEASE_NOTES); | ||||
|  | @ -1949,7 +1948,7 @@ static BOOL CALLBACK AlertPromptCallback(HWND hWnd, LPARAM lParam) | |||
| 
 | ||||
| 	if (GetWindowTextU(hWnd, str, sizeof(str)) == 0) | ||||
| 		return TRUE; | ||||
| 	if (safe_strcmp(str, fp_button_str) == 0) | ||||
| 	if (safe_strcmp(str, button_str) == 0) | ||||
| 		*found = TRUE; | ||||
| 	return TRUE; | ||||
| } | ||||
|  | @ -1963,15 +1962,19 @@ static void CALLBACK AlertPromptHook(HWINEVENTHOOK hWinEventHook, DWORD Event, H | |||
| 		if (GetWindowLongPtr(hWnd, GWL_STYLE) & WS_POPUPWINDOW) { | ||||
| 			str[0] = 0; | ||||
| 			GetWindowTextU(hWnd, str, sizeof(str)); | ||||
| 			if (strcmp(str, fp_title_str) == 0) { | ||||
| 			if (strcmp(str, title_str[0]) == 0) { | ||||
| 				found = FALSE; | ||||
| 				EnumChildWindows(hWnd, AlertPromptCallback, (LPARAM)&found); | ||||
| 				if (found) { | ||||
| 					SendMessage(hWnd, WM_COMMAND, (WPARAM)IDCANCEL, (LPARAM)0); | ||||
| 					uprintf("Closed Windows format prompt"); | ||||
| 				} | ||||
| 			} else if (close_fido_cookie_prompts && strcmp(str, cp_title_str) == 0) { | ||||
| 			} else if (close_fido_cookie_prompts && strcmp(str, title_str[1]) == 0) { | ||||
| 				SendMessage(hWnd, WM_COMMAND, (WPARAM)IDCANCEL, (LPARAM)0); | ||||
| 			} else if ((strcmp(str, title_str[2]) == 0) && (hWnd != hFidoDlg)) { | ||||
| 				// A wild Fido dialog appeared! => Keep track of its handle and center it
 | ||||
| 				hFidoDlg = hWnd; | ||||
| 				CenterDialog(hWnd, hMainDialog); | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|  | @ -1981,7 +1984,6 @@ BOOL SetAlertPromptHook(void) | |||
| { | ||||
| 	HMODULE mui_lib; | ||||
| 	char mui_path[MAX_PATH]; | ||||
| 	static char title_str[2][128], button_str[128]; | ||||
| 
 | ||||
| 	if (ap_weh != NULL) | ||||
| 		return TRUE;	// No need to set again if active
 | ||||
|  | @ -1993,26 +1995,27 @@ BOOL SetAlertPromptHook(void) | |||
| 		// 4097 = "You need to format the disk in drive %c: before you can use it." (dialog text)
 | ||||
| 		// 4125 = "Microsoft Windows" (dialog title)
 | ||||
| 		// 4126 = "Format disk" (button)
 | ||||
| 		if (LoadStringU(mui_lib, 4125, title_str[0], sizeof(title_str[0])) > 0) | ||||
| 			fp_title_str = title_str[0]; | ||||
| 		else | ||||
| 		if (LoadStringU(mui_lib, 4125, title_str[0], sizeof(title_str[0])) <= 0) { | ||||
| 			static_strcpy(title_str[0], "Microsoft Windows"); | ||||
| 			uprintf("Warning: Could not locate localized format prompt title string in '%s': %s", mui_path, WindowsErrorString()); | ||||
| 		if (LoadStringU(mui_lib, 4126, button_str, sizeof(button_str)) > 0) | ||||
| 			fp_button_str = button_str; | ||||
| 		else | ||||
| 		} | ||||
| 		if (LoadStringU(mui_lib, 4126, button_str, sizeof(button_str)) <= 0) { | ||||
| 			static_strcpy(button_str, "Format disk"); | ||||
| 			uprintf("Warning: Could not locate localized format prompt button string in '%s': %s", mui_path, WindowsErrorString()); | ||||
| 		} | ||||
| 		FreeLibrary(mui_lib); | ||||
| 	} | ||||
| 	static_sprintf(mui_path, "%s\\%s\\urlmon.dll.mui", system_dir, GetCurrentMUI()); | ||||
| 	mui_lib = LoadLibraryU(mui_path); | ||||
| 	if (mui_lib != NULL) { | ||||
| 		// 2070 = "Windows Security Warning" (yes, that's what MS uses for a stupid cookie!)
 | ||||
| 		if (LoadStringU(mui_lib, 2070, title_str[1], sizeof(title_str[1])) > 0) | ||||
| 			cp_title_str = title_str[1]; | ||||
| 		else | ||||
| 		if (LoadStringU(mui_lib, 2070, title_str[1], sizeof(title_str[1])) <= 0) { | ||||
| 			static_strcpy(title_str[1], "Windows Security Warning"); | ||||
| 			uprintf("Warning: Could not locate localized cookie prompt title string in '%s': %s", mui_path, WindowsErrorString()); | ||||
| 		} | ||||
| 		FreeLibrary(mui_lib); | ||||
| 	} | ||||
| 	static_strcpy(title_str[2], lmprintf(MSG_143)); | ||||
| 
 | ||||
| 	ap_weh = SetWinEventHook(EVENT_SYSTEM_FOREGROUND, EVENT_SYSTEM_FOREGROUND, NULL, | ||||
| 		AlertPromptHook, 0, 0, WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNPROCESS); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue