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

710

    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. Kiitos nainen

      Kuitenkin. Olet sitten ajanmerkkinä. Tuskin enää sinua näen ja huomasitko, että olit siinä viimeisen kerran samassa paik
      Tunteet
      18
      5243
    2. MTV: Kirkossa saarnan pitänyt Jyrki 69 koki yllätyksen - Paljastaa: "Se mikä oli hyvin erikoista..."

      Jyrki Linnankivi alias Jyrki 69 on rokkari ja kirkonmies. Teologiaa opiskeleva Linnankivi piti elämänsä ensimmäisen saar
      Maailman menoa
      116
      2730
    3. Tykkään sinusta ikuisesti

      Olet niin mukava ja ihana ihminen rakas. ❤️
      Ikävä
      10
      2274
    4. Hyväksytkö sinä sen että päättäjämme ei rakenna rauhaa Venäjän kanssa?

      Vielä kun sota ehkäpä voitaisiin välttää rauhanponnisteluilla niin millä verukkeella voidaan sanoa että on hyvä asia kun
      Maailman menoa
      588
      2012
    5. Kirjoita yhdellä sanalla

      Joku meihin liittyvä asia, mitä muut ei tiedä. Sen jälkeen laitan sulle wappiviestin
      Ikävä
      122
      1739
    6. Olet hyvin erilainen

      Herkempi, ajattelevaisempi. Toisaalta taas hyvin varma siitä mitä haluat. Et anna yhtään periksi. Osaat myös ilkeillä ja
      Ikävä
      70
      1322
    7. Yksi syy nainen miksi sinusta pidän

      on se, että tykkään luomusta. Olet luonnollinen, ihana ja kaunis. Ja luonne, no, en ole tavannut vielä sellaista, joka s
      Ikävä
      41
      1309
    8. Paljastavat kuvat Selviytyjät Suomi kulisseista - 1 päivä vs 36 päivää viidakossa - Katso tästä!

      Ohhoh! Yli kuukausi viidakossa voi muuttaa ulkonäköä perusarkeen aika rajusti. Kuka mielestäsi muuttui eniten: Mia Mill
      Suomalaiset julkkikset
      3
      1088
    9. Hyvää Joulua mies!

      Toivottavasti kaikki on hyvin siellä. Anteeksi että olen hieman lisännyt taakkaasi ymmärtämättä kunnolla tilannettasi, o
      Ikävä
      64
      1047
    10. Veda uskonto vs. muut uskonnot

      Mitenkähän tuo Veda(Krisha)uskonto loppujen lopuksi eroaa muista niin sanotuista ilmoitus uskonnoista? Siinäkin vedotaan
      Ateismi
      382
      1041
    Aihe