JOS Delphi lakkaa toimimasta, koska windowsin yhteensopivuusavustaja rikkoo Delphi, näin korjaat !

Anonyymi

JOS Delphi32.exe:n (Tässä tapauksessa Delphi 7 / Delphi7) kanssa tulee ongelmia,
joiden aiheuttaja on
engl. "Program Compatibility Assistant" = suomeksi:
windowsin yhteensopivuusavustaja,
ongelman saa korjattua poistamalla allamainitut rekisteriavaimet:

Itse sain ongelman aikaiseksi sisällyttämällä projektin (*.dpr) nimeen sanan Setup.

Windowsissahan on tällainen automatiikka:

JOS ohjelman nimi sisältää merkkijonon "Setup" niin silloin käynnistyksen yhteydessä windows pyytää lupaa suorittaa ohjelma järjestelmänvalvojan oikeuksin (engl. administrator rights).

Tein Delphillä ohjelman, joka kirjoittaa USB -muistitikulle ".iso" -levykuvan,
ja tämähän edellyttää
1) oman luokan periyttämistä THandleStream -luokasta ja

2) CreateFile -kutsua , jolle parametriksi PChar(Filename), jossa Filename on:

Filename := '\\.\PHYSICALDRIVE' IntToStr(DriveNumber);

Teknisesti USB -muistitikku rinnastuu kiintolevyyn, joten tuollainen ohjelma, joka kirjoittaa suoraan levyasemalle ohi tiedostojärjestelmän, ei toimi ilman järjestelmänvalvojan oikeuksia.

MUTTA:

Sanan Setup sisällyttäminen projektin (dpr) nimeen on virhe !

Se johtaa hulluun tilanteeseen: kun yrität debugata ohjelmaa Delphin integroidulla debuggerilla, niin Delphi32.exe (joka toimii normaalioikeuksin) yrittää debugata korotettua ohjelmaa (oma projektisi), ja tämä ei voi toimia, syynä Windowsin UIPI (User Interface - Provilege isolation).

Oikea tapa korjata tilanne on ITSE suorittaa myös Delphi UDE korotetuin oikeuksin.

JOS sallii tuon Windowsin "Program Compatibility Assistant":in korottaa Delphi32.exe, niin siitä seuraa vakavia ongelmia, ja mikä pahinta. kun tuo luo automaattisesti rekisteriavainmerkintöjä, niin edes Delphin lopetus ja uudelleenkäynnistys ja/tai koko windowsin uudelleenkäynnistys EI korjaa ongelmaa !

Tyypillinen ongelma on se että joko Delphi ei enää kykene kääntämään lähdekoodia EXEksi tai sitten Delphi ei kykene enää toimimaan debuggerina toiselle ohjelmalle.

HUOM:

JOS näitä (allaolevia rekisteriavaimia) ei löydy "HKEY_CURRENT_USER" alta, niistä on olemassa myös GLOBAALI versio, joka on muuten sama,
mutta ne löytyvät pääavaimen "HKEY_LOCAL_MACHINE" alta.

Eli alussa voi olla

JOKO: HKEY_CURRENT_USER
TAI: HKEY_LOCAL_MACHINE

muuten sama.

Eli yleensä HKEY_CURRENT_USER mutta voi olla myös HKEY_LOCAL_MACHINE.



Avaimen nimi:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

Arvon (REG_SZ) nimi:
C:\ProgFile\Borland\Delphi7\Bin\delphi32.exe

Data:
ELEVATECREATEPROCESS

-----------------------------

Poista ylläoleva rekisteriavain (regedit.exe) niin ongelman korjautuu.

HUOM:

JOS päätät itse tehdä ohjelmia, jotka kirjoittavat levylle ohi tiedostojärjestelmän, niin suosittelen Windows WMI:n käyttöä, jolloin saat näkyviin kiintolevyasemien ja USB -muistitikkujen tekniset nimet, esim.

"Kingston DataTraveler 32 Gt"

tai

"Toshiba hard disk, 750 Gt"

... näin vältyt vahingossa ylikirjoittamasta kiintolevyä kun tarkoitus oli ylikirjoittaa USB -muistitikku. Teknologiahan on molemmissa sama.

17

413

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      Olisikohan jo aika päivittää vähän uudemmaksi niin ei tulisi harmeja.

    • Anonyymi

      Tuli lukiessa sellainen tunne että olen joskus tapellut noiden luku-, kirjoitus- ja suoritusoikeuksien kanssa, kun olen yrittänyt saada Borland Database Engine (BDE) tietokantaajureita rekisteröidyksi johonkin kansioon, on vaan yksityiskohdat päässeet unohtumaan.

      • Anonyymi

        Vanhemmat Delphit (esim. juurikin Delphi 7) on tehty aikana, jolloin oletus oli se, että kaikki ohjelmat toimivat pääkäyttäjäoikeuksin.

        Niinpä esim. Delphi7:n delphi32.exe haluaa kirjoitella samaan hakemistoon, jossa ko. exe itse sijaitsee. Voi hyvin olla, että sama ongelma koskee myös BDE:tä.

        Nyky-windowseissa: JOS ohjelma asennetaan "Program Files" kansioon (tai mahdollisesti sen alikansioon) niin windows ei salli muiden kuin pääkäyttäjän kirjoitella ko. kansioon.

        Siksipä: JOS yrität asentaa Delphi7:n tuonne oletukseen eli Program Files, niin syntyy ongelma, kun Delphi yrittää kirjoittaa ko. kansioon, mutta se ei ole sallittua.

        Tuon ongelman kiertämiseen saattaa hakukoneella löytyä muitakin tapoja, mutta yksi tapa on se, että asentaa Delphin muualle kuin "Program Files" kansioon, niin kunhan käyttäjällä on kirjoitusoikeudet ko. kansioon, niin Delphi7 pitäisi saada toimimaan myös Windows 10:ssä.


      • Anonyymi
        Anonyymi kirjoitti:

        Vanhemmat Delphit (esim. juurikin Delphi 7) on tehty aikana, jolloin oletus oli se, että kaikki ohjelmat toimivat pääkäyttäjäoikeuksin.

        Niinpä esim. Delphi7:n delphi32.exe haluaa kirjoitella samaan hakemistoon, jossa ko. exe itse sijaitsee. Voi hyvin olla, että sama ongelma koskee myös BDE:tä.

        Nyky-windowseissa: JOS ohjelma asennetaan "Program Files" kansioon (tai mahdollisesti sen alikansioon) niin windows ei salli muiden kuin pääkäyttäjän kirjoitella ko. kansioon.

        Siksipä: JOS yrität asentaa Delphi7:n tuonne oletukseen eli Program Files, niin syntyy ongelma, kun Delphi yrittää kirjoittaa ko. kansioon, mutta se ei ole sallittua.

        Tuon ongelman kiertämiseen saattaa hakukoneella löytyä muitakin tapoja, mutta yksi tapa on se, että asentaa Delphin muualle kuin "Program Files" kansioon, niin kunhan käyttäjällä on kirjoitusoikeudet ko. kansioon, niin Delphi7 pitäisi saada toimimaan myös Windows 10:ssä.

        Muistelen että tuon lisäksi, noihin aikoihin tuli Windowsiin käyttöön nämä pitkät tiedostonimet ja polut joissa sai olla myös välilyöntejä.

        Delphi on ajoilta jolloin elettiin 8 3 merkin mittaisilla tiedoston nimillä, eikä siirtyminen sujunut ilman ongelmia.


      • Anonyymi
        Anonyymi kirjoitti:

        Vanhemmat Delphit (esim. juurikin Delphi 7) on tehty aikana, jolloin oletus oli se, että kaikki ohjelmat toimivat pääkäyttäjäoikeuksin.

        Niinpä esim. Delphi7:n delphi32.exe haluaa kirjoitella samaan hakemistoon, jossa ko. exe itse sijaitsee. Voi hyvin olla, että sama ongelma koskee myös BDE:tä.

        Nyky-windowseissa: JOS ohjelma asennetaan "Program Files" kansioon (tai mahdollisesti sen alikansioon) niin windows ei salli muiden kuin pääkäyttäjän kirjoitella ko. kansioon.

        Siksipä: JOS yrität asentaa Delphi7:n tuonne oletukseen eli Program Files, niin syntyy ongelma, kun Delphi yrittää kirjoittaa ko. kansioon, mutta se ei ole sallittua.

        Tuon ongelman kiertämiseen saattaa hakukoneella löytyä muitakin tapoja, mutta yksi tapa on se, että asentaa Delphin muualle kuin "Program Files" kansioon, niin kunhan käyttäjällä on kirjoitusoikeudet ko. kansioon, niin Delphi7 pitäisi saada toimimaan myös Windows 10:ssä.

        "Vanhemmat Delphit (esim. juurikin Delphi 7) on tehty aikana, jolloin oletus oli se, että kaikki ohjelmat toimivat pääkäyttäjäoikeuksin."

        Itseasiassa ei ollut noin.

        Windows XP aikainen ohjelma ja Windows XP:ssä oletus oli se, että ohjelmat tarvitsevat asennettaessa pääkäyttäjäoikeudet. Eli ohjelmat meni sinne "Program Files" -kansioon asumaan ja niille tehtiin pikakuvakkeet, mutta niiden käytön piti onnistua tavallisella käyttäjätilillä. Käyttäjätilejä tehtäessä tavallisilla käyttäjillä ei ollut niitä oikeuksia näpelöidä Program Files -kansiota.

        Siihen aikaan oli vaan todella paljon bugisia ohjelmia ja Microsoft sai niistä tarpeekseen Windows Vistassa, että teki UAC:n huutelemaan mahdollisimman ärsyttävästi, että sai ohjattua ohjelmat toimimaan kuten oli tarkoitettu.

        Käytännöt muuttui Windows 8:ssa uudestaan, että sovellukset menevät asumaan nyt käyttäjien omiin kotikansioihin, että asennettaessa ei tarvitse niitä pääkäyttäjän oikeuksia. Osa sovelluksista, vähän raskaammat sellaiset, on sitten siellä Program Filesissä, että saa saman asennuksen jaettua kaikille käyttäjille.

        Noiden Delphien kanssa tulee hauskaa kyllä kun Windows läppäreitä myydään kohta marketissa sikin sokin x86 sekä ARM arkkitehtuureilla. Ehkä tekevät jonkun emulaattorin sinne.


      • Anonyymi
        Anonyymi kirjoitti:

        Muistelen että tuon lisäksi, noihin aikoihin tuli Windowsiin käyttöön nämä pitkät tiedostonimet ja polut joissa sai olla myös välilyöntejä.

        Delphi on ajoilta jolloin elettiin 8 3 merkin mittaisilla tiedoston nimillä, eikä siirtyminen sujunut ilman ongelmia.

        Pitkät tiedostonimet tulivat Windows 95:ssa jo, ja silloin tuli myös se Program Files kansio.

        Delphi 7 tuli 7-vuotta myöhemmin ja nähtävästi ei edes ollut ihan ajanmukainen kun käyttäjätilit oli Windows NT vehkeissä olleet myös. Ohjelmat jotka eivät toimineet tavallisella käyttäjätilillä olivat yksinkertaisesti paskoja.


      • Anonyymi
        Anonyymi kirjoitti:

        Muistelen että tuon lisäksi, noihin aikoihin tuli Windowsiin käyttöön nämä pitkät tiedostonimet ja polut joissa sai olla myös välilyöntejä.

        Delphi on ajoilta jolloin elettiin 8 3 merkin mittaisilla tiedoston nimillä, eikä siirtyminen sujunut ilman ongelmia.

        Toimiiks mun visual basic win kympissä


    • Anonyymi

      Delphi 7 - 2002...

      • Anonyymi

        Microsoft voisi tehdä palveluksen ja estää näiden ikivanhojen paskojen (Delphit, VB6...) toimimisen tarkoituksella, niin ehkä se motivoisi muut paitsi paatuneimmat hörhöt päivittämään osaamistaan


      • Anonyymi
        Anonyymi kirjoitti:

        Microsoft voisi tehdä palveluksen ja estää näiden ikivanhojen paskojen (Delphit, VB6...) toimimisen tarkoituksella, niin ehkä se motivoisi muut paitsi paatuneimmat hörhöt päivittämään osaamistaan

        "Microsoft voisi tehdä palveluksen ja estää näiden ikivanhojen"

        Ja taas jonkun fanaattisen Delphi -vihaajan kirjoitus.

        Ensinnäkin: Microsoftilla ei ole mitään keinoa estää vanhan Delphin toimintaa ilman, että myös uusimman Delphin toiminta estyy siinä samalla. Ja jos Microsoft tahallisesti estää sen uusimmankin Delphin toiminnan, niin kilpailuviranomaisilla on taatusti sanansa sanottavana kilpailijan tuotteen toiminnan tahallisesta sabotoimisesta.

        Kyllä myös amerikan yhdysvalloissa on olemassa laki, jolla pyritään edistämään yritysten välistä kilpailua ja siksi tekemään kilpailua rajoittavista toimenpiteistä laittomia.

        Joten JOS Microsoft tahallisesti estää sen uusimmankin Delphin toiminnan, niin toivottavasti kilpailuviranomaiset määräävät Microsoftille niin isot sakot kilpailun rajoittamisesta, että niihin verrattuna tähän mennessä suurimmat maksettavaksi määrätyt sakot kilpailun rajoittamisesta ovat pikkurahaa uusiin sakkoihin verrattuna.


      • Anonyymi
        Anonyymi kirjoitti:

        "Microsoft voisi tehdä palveluksen ja estää näiden ikivanhojen"

        Ja taas jonkun fanaattisen Delphi -vihaajan kirjoitus.

        Ensinnäkin: Microsoftilla ei ole mitään keinoa estää vanhan Delphin toimintaa ilman, että myös uusimman Delphin toiminta estyy siinä samalla. Ja jos Microsoft tahallisesti estää sen uusimmankin Delphin toiminnan, niin kilpailuviranomaisilla on taatusti sanansa sanottavana kilpailijan tuotteen toiminnan tahallisesta sabotoimisesta.

        Kyllä myös amerikan yhdysvalloissa on olemassa laki, jolla pyritään edistämään yritysten välistä kilpailua ja siksi tekemään kilpailua rajoittavista toimenpiteistä laittomia.

        Joten JOS Microsoft tahallisesti estää sen uusimmankin Delphin toiminnan, niin toivottavasti kilpailuviranomaiset määräävät Microsoftille niin isot sakot kilpailun rajoittamisesta, että niihin verrattuna tähän mennessä suurimmat maksettavaksi määrätyt sakot kilpailun rajoittamisesta ovat pikkurahaa uusiin sakkoihin verrattuna.

        "Ensinnäkin: Microsoftilla ei ole mitään keinoa estää vanhan Delphin toimintaa ilman, että myös uusimman Delphin toiminta estyy siinä samalla."

        Kyllä on. Muuttaa sellaista rajapintakutsua mitä molemmat käyttää.

        "Microsoft tahallisesti estää sen uusimmankin Delphin toiminnan, niin kilpailuviranomaisilla on taatusti sanansa sanottavana kilpailijan tuotteen toiminnan tahallisesta sabotoimisesta."

        Ei tarvitse olla kyse kilpailijan tuotteen sabotoinnista vaan oikeudesta muuttaa omaa tuotettaan.

        Delphin tekijät voivat sitten vapaasti korjata oman tuotteensa yhteensopivaksi Microsoftin tuotteen kanssa. Tästähän siinä Delphissä yleensäkin maksetaan että pitävät sen toiminnassa luvatun ajan.


    • Anonyymi

      Huh, onneksi nykyään tulee koodailtua Linux-ympäristössä.

    • Anonyymi

      jos Delphi lakkaa toimimasta...

      emme jää kaipaamaan

      • Anonyymi

        Puhu vain itsestäsi, me muut jäämme kaipaamaan, sillä delphi on ollut ja on edelleen mailman paras koodaus ympäristö.


    • Anonyymi

      Delphin vastine Linux ympäristössä (Lazarus), soveltuu erinomaisesti graafisen liittymän tekoon Bash Shell ja Python koodille. Vähällä vaivalla erittäin hienoja sovelluksia, joiden suorituskyky on huippuluokkaa.

      • Anonyymi

        "Delphin vastine Linux ympäristössä (Lazarus), soveltuu erinomaisesti"

        Juu, niin periaatetasolla soveltuukin.

        Mutta asiassa on myös muutama ongelma:

        1) Lazaruksen kelvoton debuggeri (se on kelvoton siksi, kun se perustuu GDB:n käyttöön, ja GDB on debuggerien pohjanoteeraus, eli ohjelmistojen paarialuokkaa !)

        Jos löytyisi jokin vaihtoehtoinen tapa debugata tekemäänsä Lazarus -ohjelmaa, niin olisi todella hieno juttu kun pääsisi eroon tuosta kelvottomasta GDB:stä.

        2) Delphi -ohjelmissa usein käytetään TWebBrowser -komponenttia.

        Lazaruksessa ei normaalisti edes ole ko. TWebBrowser -komponenttia.

        Jostain "User Contributions" -kansiosta sellainen saattaa löytyäkin, mutta se toimii vain Windows -käyttöjärjestelmässä.

        Muistan joskus vuosia sitten nähneeni jonkin version Basic -ohjelmointikielestä linuxille, jossa oli jokin vastaava viritys. En muista ko. Basicista edes nimeä, enkä näinollen tiedä, onko Basic -työvälineen tekijät päivittäneet työkalunsa nykylinuxien kanssa toimivaksi, vai onko jäänyt unholaan eli tekniikan museoon.

        Jos haluat ohjelmallisesti käyttää web -sivua tai web -palvelua, jonka omistaja et itse ole, niin tuo TWebBrowser -komponentti on erittäin hyödyllinen !

        Muitakin keinoja on olemassa, mutta nuo muut keinot ovat siitä ikäviä, että jos sivuston omistaja tekee sivustolleen pienenkin muutoksen, niin työmäärä tilanteen korjaamiseksi jos on tehnyt oman ratkaisunsa noilla muilla keinoilla, voi olla valtava !

        TWebBrowser -komponenttia käyttämällä taas reagointi web -sivun rakenteen muutokseen on paljon helpompaa (työtä sekin vaatii, mutta selvästi vähemmän).


    • Anonyymi

      Kauheata paskaa. Onneksi tuollaisia ei tarvitse missään.

    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Cynthia Woods

      😋😍😋😍😋😍😋😍😋 💋 ­­­N­­y­m­­­f­o­­m­­a­­a­­­n­i -> https://x18.fun/girl04372247#CynthiaWoods 🔞💋❤️💋❤️💋🔞�
      YIT-Yhtymä
      2
      14871
    2. Aimee Dvorak

      😍😋😍😋😍😋😍😋😍 💋 ­­N­­­y­­­m­­f­o­m­a­a­n­­­i -> https://x18.fun/girl02740429#AimeeDvorak 🔞❤️❤️❤️❤️❤️🔞💋💋
      0
      3059
    3. Stephanie Love

      😋😋😋😋😋😋😋😋😋😋 ❤️ ­­N­y­­­m­f­­o­­m­­­a­a­­n­­­i -> https://x18.fun/girl01692207#StephanieLove 🔞❤️💋❤️💋❤️
      Lappi
      0
      3056
    4. Molly Graham

      😍😋😍😋😍😋😍😋😍 😍 ­­N­­­y­­m­­­f­­­o­­m­­a­a­n­i -> https://x18.fun/girl02277975#MollyGraham 🔞❤️💋❤️💋❤️🔞❤️
      Puhelimet
      0
      3055
    5. Rachelle Reynolds

      😋😍😋😍😋😍😋😍😋 🔞 ­N­­­y­­m­f­­­o­­m­­­a­­a­n­i -> https://x18.fun/girl03175674#RachelleReynolds 🔞❤️💋❤️💋❤️
      Etelä-Savo
      0
      3055
    6. Becky Steele

      🍑🍑🍑🍑🍑🍑🍑🍑🍑🍑🍑🍑 💋 ­­N­y­­­m­­f­­­o­­­m­­a­a­­­n­­i -> https://x18.fun/girl05250014#BeckySteele 🔞❤️💋❤️
      Arkkitehtuuri
      0
      3055
    7. Allison Queen

      🍒🍑🍒🍑🍒🍑🍒🍑🍒 ❤️ ­N­­­y­m­­­f­­­o­­m­a­a­­­n­­­i -> https://x18.fun/girl07854217#AllisonQueen 🔞❤️❤️❤️❤️❤️🔞
      Vedonlyönti
      0
      3054
    8. Pamela Orr

      😋😋😋😋😋😋😋😋😋😋 🍒 ­­­N­y­­m­f­­o­­­m­a­­­a­­­n­­­i -> https://x18.fun/girl06055581#PamelaOrr 🔞❤️💋❤️💋❤️🔞
      Star Wars
      0
      3054
    9. Lakeisha Coleman

      🍑🍒🍑🍒🍑🍒🍑🍒🍑 💋 ­­N­y­­­m­f­­o­­m­a­­­a­n­­i -> https://x18.fun/girl08105348#LakeishaColeman 🔞💋❤️💋❤️💋🔞
      Synnytys
      0
      3050
    10. Nancy Taylor

      😍😍😍😋😋😋😋😍😍😍 ❤️ ­­­N­­­y­m­­­f­o­m­­­a­­­a­n­­­i -> https://x18.fun/girl01560856#NancyTaylor 🔞💋❤️💋❤️💋
      Kauris
      0
      3044
    Aihe