3030
3131#include < qt_windows.h>
3232
33+ using namespace Qt ::StringLiterals;
34+
3335static QString getUserRights ()
3436{
3537 HANDLE hToken {};
@@ -76,25 +78,24 @@ static QString getUserRights()
7678QStringList Diagnostics::packages (const QStringList &names, bool withName)
7779{
7880 QStringList packages;
79- for (const QString &group: {QStringLiteral ( " HKEY_LOCAL_MACHINE" ), QStringLiteral ( " HKEY_CURRENT_USER" ) })
81+ for (const QString &group: {u " HKEY_LOCAL_MACHINE" _s, u " HKEY_CURRENT_USER" _s })
8082 {
81- QString path = QStringLiteral (" %1\\ SOFTWARE\\ Microsoft\\ Windows\\ CurrentVersion\\ Uninstall" ).arg (group);
8283 static const QVector<QSettings::Format> formats = []() -> QVector<QSettings::Format> {
83- if (QSysInfo::currentCpuArchitecture ().contains (QStringLiteral ( " 64" ) ))
84+ if (QSysInfo::currentCpuArchitecture ().contains (" 64" _L1 ))
8485 return {QSettings::Registry32Format, QSettings::Registry64Format};
8586 return {QSettings::Registry32Format};
8687 }();
8788 for (QSettings::Format format: formats)
8889 {
89- QSettings s (path , format);
90+ QSettings s (u" %1 \\ SOFTWARE \\ Microsoft \\ Windows \\ CurrentVersion \\ Uninstall " _s. arg (group) , format);
9091 for (const QString &key: s.childGroups ())
9192 {
9293 s.beginGroup (key);
93- QString name = s.value (QStringLiteral ( " /DisplayName" ) ).toString ();
94- QString version = s.value (QStringLiteral ( " /DisplayVersion" ) ).toString ();
95- QString type = s.value (QStringLiteral ( " /ReleaseType" ) ).toString ();
96- if (!type.contains (QStringLiteral ( " Update" ) , Qt::CaseInsensitive) &&
97- !name.contains (QStringLiteral ( " Update" ) , Qt::CaseInsensitive) &&
94+ QString name = s.value (" /DisplayName" _L1 ).toString ();
95+ QString version = s.value (" /DisplayVersion" _L1 ).toString ();
96+ QString type = s.value (" /ReleaseType" _L1 ).toString ();
97+ if (!type.contains (" Update" _L1 , Qt::CaseInsensitive) &&
98+ !name.contains (" Update" _L1 , Qt::CaseInsensitive) &&
9899 name.contains (QRegularExpression (names.join (' |' ).prepend (' ^' ), QRegularExpression::CaseInsensitiveOption)))
99100 packages.append (packageName (name, version, withName));
100101 s.endGroup ();
@@ -142,19 +143,14 @@ void Diagnostics::run()
142143 QByteArray path = qgetenv (" PATH" );
143144 qputenv (" PATH" , path
144145 + " ;C:\\ Program Files\\ Open-EID"
145- + " ;C:\\ Program Files\\ TeRa Client"
146146 + " ;C:\\ Program Files\\ EstIDMinidriver Minidriver"
147147 + " ;C:\\ Program Files (x86)\\ Open-EID"
148- + " ;C:\\ Program Files (x86)\\ TeRa Client"
149148 + " ;C:\\ Program Files (x86)\\ EstIDMinidriver Minidriver" );
150149 SetDllDirectory (LPCWSTR (qApp->applicationDirPath ().utf16 ()));
151150 static const QStringList dlls{
152- " digidoc" , " digidocpp" , " qdigidoc4.exe" , " qdigidocclient.exe" , " qesteidutil.exe" , " id-updater.exe" , " qdigidoc_tera_gui.exe" ,
153- " esteidcm" , " esteidcm64" , " EstIDMinidriver" , " EstIDMinidriver64" , " onepin-opensc-pkcs11" , " EsteidShellExtension" ,
154- " esteid-plugin-ie" , " esteid-plugin-ie64" , " chrome-token-signing.exe" , " web-eid.exe" ,
155- " libcrypto-3" , " libssl-3" , " libcrypto-3-x64" , " libssl-3-x64" , " libcrypto-1_1" , " libssl-1_1" , " libcrypto-1_1-x64" , " libssl-1_1-x64" ,
156- " zlib1" , " xerces-c_3_1" , " xerces-c_3_2" , " xalan-c_1_12" , " xalanmessages_1_12" , " xsec_1_7" , " xsec_2_0" , " libxml2" ,
157- " advapi32" , " crypt32" , " winscard" };
151+ " digidocpp" , " qdigidoc4.exe" , " EsteidShellExtension" , " id-updater.exe" ,
152+ " EstIDMinidriver" , " EstIDMinidriver64" , " web-eid.exe" ,
153+ " zlib1" , " libxml2" , " libxmlsec1" , " libxmlsec1-openssl" };
158154 for (const QString &lib: dlls)
159155 {
160156 DWORD infoHandle {};
@@ -168,7 +164,7 @@ void Diagnostics::run()
168164 UINT len {};
169165 if ( !VerQueryValueW ( data.constData (), L" \\ " , (LPVOID*)&info, &len ) )
170166 continue ;
171- s << QStringLiteral ( " %1 (%2.%3.%4.%5)" ) .arg (lib)
167+ s << u " %1 (%2.%3.%4.%5)" _s .arg (lib)
172168 .arg ( HIWORD (info->dwFileVersionMS ) )
173169 .arg ( LOWORD (info->dwFileVersionMS ) )
174170 .arg ( HIWORD (info->dwFileVersionLS ) )
@@ -181,53 +177,35 @@ void Diagnostics::run()
181177 emit update ( info );
182178 info.clear ();
183179
184- enum {
185- Running,
186- Stopped,
187- NotFound
188- } atrfiltr = NotFound, certprop = NotFound;
180+ QString atrfiltr = tr (" Not found" );
181+ QString certprop = tr (" Not found" );
189182 if (SC_HANDLE h = OpenSCManager (nullptr , nullptr , SC_MANAGER_CONNECT))
190183 {
191184 if ( SC_HANDLE s = OpenService ( h, L" atrfiltr" , SERVICE_QUERY_STATUS ) )
192185 {
193186 SERVICE_STATUS status {};
194187 QueryServiceStatus ( s, &status );
195- atrfiltr = ( status.dwCurrentState == SERVICE_RUNNING) ? Running : Stopped ;
188+ atrfiltr = status.dwCurrentState == SERVICE_RUNNING ? tr ( " Running" ) : tr ( " Not running " ) ;
196189 CloseServiceHandle ( s );
197190 }
198191 if ( SC_HANDLE s = OpenService ( h, L" CertPropSvc" , SERVICE_QUERY_STATUS ))
199192 {
200193 SERVICE_STATUS status {};
201194 QueryServiceStatus ( s, &status );
202- certprop = ( status.dwCurrentState == SERVICE_RUNNING) ? Running : Stopped ;
195+ certprop = status.dwCurrentState == SERVICE_RUNNING ? tr ( " Running" ) : tr ( " Not running " ) ;
203196 CloseServiceHandle ( s );
204197 }
205198 CloseServiceHandle ( h );
206199 }
207- s << " <br /><b>" << tr (" ATRfiltr service status: " ) << " </b>" << " " ;
208- switch ( atrfiltr )
209- {
210- case NotFound: s << tr (" Not found" ); break ;
211- case Stopped: s << tr (" Not running" ); break ;
212- case Running: s << tr (" Running" ); break ;
213- }
214- s << " <br /><b>" << tr (" Certificate Propagation service status: " ) << " </b>" << " " ;
215- switch ( certprop )
216- {
217- case NotFound: s << tr (" Not found" ); break ;
218- case Stopped: s << tr (" Not running" ); break ;
219- case Running: s << tr (" Running" ); break ;
220- }
221- s << " <br />" ;
200+ s << " <br /><b>" << tr (" ATRfiltr service status: " ) << " </b " << atrfiltr
201+ << " <br /><b>" << tr (" Certificate Propagation service status: " ) << " </b> " << certprop << " <br />" ;
222202
223203 generalInfo ( s );
224204 emit update ( info );
225205 info.clear ();
226206
227- QStringList browsers = packages ({" Mozilla Firefox" , " Google Chrome" , " Microsoft EDGE" });
228- QSettings reg (QStringLiteral (" HKEY_LOCAL_MACHINE\\ SOFTWARE\\ Microsoft\\ Internet Explorer" ), QSettings::NativeFormat);
229- browsers << QStringLiteral (" Internet Explorer (%1)" ).arg (reg.value (" svcVersion" , reg.value (" Version" )).toString ());
230- s << " <br /><br /><b>" << tr (" Browsers:" ) << " </b><br />" << browsers.join (QStringLiteral (" <br />" )) << " <br /><br />" ;
207+ s << " <br /><br /><b>" << tr (" Browsers:" ) << " </b><br />"
208+ << packages ({" Mozilla Firefox" , " Google Chrome" , " Microsoft EDGE" }).join (" <br />" _L1) << " <br /><br />" ;
231209 emit update ( info );
232210 info.clear ();
233211}
0 commit comments