Configurare program

Cum se rezolvă erorile „Application Control” și „Run-time error 401” în aplicațiile medicale

Atunci când rulați aplicații de tip ERP sau software medical (cum este InfoWorld / Hipocrate), vă puteți lovi de o întrerupere bruscă a programului, însoțită de două mesaje de eroare consecutive: „Automation error -2147020345 (The operation was blocked by Application Control)” urmată de „Run-time error ‘401’: Can’t show non-modal form when modal form is displayed”.

Problema nu este cauzată de o defecțiune a bazei de date, ci de o politică restrictivă de securitate din sistemul de operare Windows:Eroarea Automation (-2147020345): Sistemul de securitate al rețelei (Windows Defender Application Control – WDAC sau AppLocker) blochează încărcarea unei componente esențiale a programului (în acest caz, fișierul ActiveX/controalele de tip Menu_Loader_Ocx).Run-time error ‘401’: Este un efect în lanț.

Deoarece prima componentă a fost blocată de Windows, codul aplicației se întrerupe în timp ce încerca să deschidă o fereastră de meniu, generând acest conflict vizual în memoria RAM.

Soluții de remediereÎn funcție de drepturile de acces pe care le aveți pe calculator, aplicați următorii pași:

Soluția 1:

Rularea cu drepturi de Administrator (Remediere rapidă). Uneori, componentele de tip .ocx sau .dll au nevoie de permisiuni ridicate pentru a fi înregistrate corect în regiștrii Windows la pornire.

  • Închideți complet aplicația
  • Dați click dreapta pe scurtătura (shortcut-ul) programului medical
  • Selectați Run as administrator (Executare ca administrator) și verificați dacă eroarea dispare.

Soluția 2:

Adăugarea unei excepții în Windows Security / Antivirus.  Dacă aveți acces la setările de securitate ale PC-ului:

  • Deschideți Windows Security (Securitate Windows)
  • Mergeți la App & browser control (Control aplicații și browsere) -> Exploit protection
  • Verificați secțiunea Protection history (Istoric protecție) pentru a identifica fișierul blocat (de regulă executabilul principal sau fișierul .ocx din folderul aplicației)
  • Configurați o regulă de excepție (Allow/Permite) pentru folderul sau componentele aplicației afectate.

Soluția 3:

Modificarea politicilor de grup (Pentru Administratorii IT)

Deoarece acest software este utilizat frecvent în clinici și spitale, regulile de securitate sunt impuse centralizat. Dacă soluțiile de mai sus nu funcționează, este necesară intervenția departamentului IT pentru : AppLocker / WDAC: Adăugarea unei reguli de tip Path Rule (Regulă de cale) sau Publisher Rule (Regulă de editor) în serverul de Active Directory (Group Policy) pentru a permite executarea tuturor componentelor din directorul programului medical.

Reînregistrarea manuală a OCX-ului: Deschiderea unui Command Prompt (CMD) cu drepturi de administrator și rularea comenzii:   regsvr32.exe cale_catre_fisier\Menu_Loader_Ocx.ocx

[mai mult...]

Remediere: VBA runtime error 1004

Eroarea VBA Runtime Error 1004 apare cel mai des în Excel, când o macrocomandă încearcă să facă o acțiune pe care Excel nu o poate executa: selectare greșită, sheet inexistent, fișier blocat, range invalid, workbook protejat etc.

Cele mai frecvente cauze și remedieri

1. Macro-ul încearcă să selecteze un sheet care nu este activ

Exemplu problematic:

Worksheets("Sheet1").Range("A1").Select

Dacă Sheet1 nu este activ, poate da eroare.

Remediere:

Worksheets("Sheet1").Activate
Worksheets("Sheet1").Range("A1").Select

Sau mai bine, fără Select:

Worksheets("Sheet1").Range("A1").Value = "Test"

2. Numele sheet-ului este greșit

Verifică dacă sheet-ul există exact cu același nume.

Exemplu:

Worksheets("Date").Range("A1").Value = "OK"

Dacă foaia se numește de fapt Data, DATE sau Date cu spațiu la final, apare eroarea.

Remediere:

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Date")
ws.Range("A1").Value = "OK"

3. Range-ul este invalid

Exemplu problematic:

Range("A0").Select

sau:

Range("A1:A").Select

Remediere:

Range("A1").Select
Range("A1:A100").Select

Pentru ultimul rând:

Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Range("A1:A" & lastRow).Select

4. Workbook-ul sau sheet-ul este protejat

Dacă foaia este protejată, macro-ul nu poate modifica celule.

Remediere:

Worksheets("Date").Unprotect Password:="parola"
Worksheets("Date").Range("A1").Value = "Test"
Worksheets("Date").Protect Password:="parola"

Dacă nu are parolă:

Worksheets("Date").Unprotect

5. Fișierul este deschis Read-Only

Verifică dacă fișierul Excel este deschis în mod Read-Only sau dacă este pe un share unde nu ai drepturi de scriere.

Remedieri:

- salvează fișierul local;
- verifică drepturile pe folder;
- închide fișierul de pe alte calculatoare;
- verifică dacă nu este blocat de OneDrive / SharePoint / antivirus.

6. Macro-ul folosește ActiveWorkbook în loc de ThisWorkbook

Dacă ai mai multe fișiere Excel deschise, ActiveWorkbook poate indica alt fișier.

Problematic:

ActiveWorkbook.Worksheets("Date").Range("A1").Value = "Test"

Mai sigur:

ThisWorkbook.Worksheets("Date").Range("A1").Value = "Test"

7. Copiere / lipire eșuată

Eroarea 1004 apare des la:

Selection.PasteSpecial Paste:=xlPasteValues

Remediere mai stabilă:

Worksheets("Sursa").Range("A1:A10").Copy
Worksheets("Destinatie").Range("A1").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False

Sau fără clipboard:

Worksheets("Destinatie").Range("A1:A10").Value = _
Worksheets("Sursa").Range("A1:A10").Value
[mai mult...]

Remediere Java Runtime Environment not found

Eroarea “Java Runtime Environment Not Found” apare când aplicația nu găsește Java instalat sau caută o versiune greșită de Java.

Remediere rapidă pe Windows

1. Verifică dacă Java este instalat

Deschide Command Prompt și scrie:

java -version

Dacă primești mesaj de tip:

'java' is not recognized...

înseamnă că Java nu este instalat sau nu este pus în PATH.

2. Instalează Java

Pentru aplicații obișnuite care cer doar Java Runtime, poți instala Java 8 Runtime de pe pagina oficială Java. Oracle menționează că Java 8 este pentru utilizatorii care au nevoie să ruleze aplicații desktop/laptop bazate pe Java.

Caută:

Java 8 download Windows

sau intră pe pagina oficială Java / Oracle.

Pentru aplicații mai noi, poți instala un JDK/JRE modern, de exemplu Eclipse Temurin, unde poți alege versiunea și tipul de pachet JDK/JRE.

Recomandare practică:

Pentru aplicații vechi: Java 8, 32-bit sau 64-bit în funcție de aplicație.
Pentru aplicații noi: Java 17 sau Java 21.

3. Verifică dacă aplicația cere Java 32-bit sau 64-bit

Asta este foarte important.

Dacă aplicația este veche, de multe ori cere Java 32-bit, chiar dacă Windows-ul este 64-bit.

Instalări tipice:

Java 64-bit:
C:\Program Files\Java\

Java 32-bit:
C:\Program Files (x86)\Java\

Dacă aplicația caută Java 32-bit și tu ai instalat doar 64-bit, eroarea poate continua.

4. Setează JAVA_HOME

După instalare, verifică unde este instalat Java. Exemplu:

C:\Program Files\Java\jre1.8.0_491

sau:

C:\Program Files\Eclipse Adoptium\jdk-17...

Apoi:

Start → search: Environment Variables → Edit the system environment variables

Intră la:

Environment Variables

La System variables, adaugă:

Variable name: JAVA_HOME
Variable value: C:\Program Files\Java\jre1.8.0_491

sau calea unde ai Java instalat.

Apoi la variabila Path, adaugă:

%JAVA_HOME%\bin

Închide și redeschide aplicația.

5. Testează din nou

În Command Prompt:

java -version

Ar trebui să apară ceva de genul:

java version "1.8.0_491"

sau versiunea instalată.

6. Dacă eroarea apare într-o aplicație veche

Instalează ambele variante, dacă nu știi ce cere aplicația:

Java 8 32-bit
Java 8 64-bit

Apoi repornește PC-ul.

[mai mult...]