[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:
Pete Batard 2019-03-07 16:29:43 +00:00
parent 9d1a2bc25e
commit 65f886141b
No known key found for this signature in database
GPG Key ID: 38E0CF5E69EDD671
9 changed files with 165 additions and 149 deletions

View File

@ -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"

View File

@ -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)) {

View File

@ -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
/*

View File

@ -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
View File

@ -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);
}

View File

@ -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();

View File

@ -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);

View File

@ -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"

View File

@ -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);