Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA w 2025? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 1 maja 2025, o 09:14


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 28 lut 2014, o 00:47 
    Offline
    Użytkownik

    Dołączył(a): 26 lip 2012
    Posty: 291
    Lokalizacja: okolice Opola
    Pomógł: 20

    Witam

    Mam problem z dodawaniem klucz do rejestru, a mianowicie chcę dodać jakiś tam klucz do autostartu (domyślnie będzie to ścieżka mojej aplikacji) i robię to w ten sposób:
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    I kiedy ten kod dodam w evencie jakiegoś przycisku to wszystko działa idealnie, natomiast problem zaczyna się kiedy ten sam kod odpalam z funkcji main w programie konsolowym, wtedy klucz się nie dodaje (chyba że zamiast LocalMachine dam CurrentUser) oczywiście program uruchamiany z uprawnieniami administratora.

    Nie wiem jak rozwiązać ten problem, a w internecie nic sensownego nie znalazłem dlatego mam nadzieję na pomoc od was.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lut 2014, o 01:54 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 05 sty 2013
    Posty: 272
    Pomógł: 3

    A co się dzieje? Rzuca wyjątkiem czy nagle komputer się zawiesza? Troszkę informacji :D

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lut 2014, o 02:26 
    Offline
    Użytkownik

    Dołączył(a): 26 lip 2012
    Posty: 291
    Lokalizacja: okolice Opola
    Pomógł: 20

    Nic, normalnie przechodzi to jedynie kiedy nie nadam uprawnień administratora to wyrzuca wyjątek. Najdziwniejsze jest to że z aplikacji foremkowej działa gdzie bym tego nie włożył.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lut 2014, o 10:40 
    Offline
    Użytkownik

    Dołączył(a): 25 sty 2014
    Posty: 185
    Lokalizacja: Działoszyn
    Zbananowany użytkownik

    Pomógł: 8

    to nie win95 , tu musisz miec uprawnienia , np tak dodajesz przed
    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    i w 4.0 , 4.5 assembly jakos innaczej sie zapisuje nie chcialo mi sie tego sprawdzac
    msdn jest lepsze do takich pytań niz tu na forum ,



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lut 2014, o 19:57 
    Offline
    Użytkownik

    Dołączył(a): 26 lip 2012
    Posty: 291
    Lokalizacja: okolice Opola
    Pomógł: 20

    Kurcze wszystko działa ale nie działa :D
    Mianowicie kiedy skompiluję program jako 64-bitowy wszystko działa i klucz dodaje się do rejestru (nie trzeba dodawać uprawnień tak jak napisałeś wystarczy jako drugi parametr OpenSubKey podać wartość true) natomiast kiedy skompiluje jako 32-bitowy to wartość się dodaje ale jakby "niejawnie" czyli kiedy odczytuję ja z poziomu programu poprzez GetValue() to jest widoczna natomiast z normalnego przeglądu rejestru już nie.
    Może ma ktoś co do tego jakieś sensowne wytłumaczenie, ponieważ program z założenia ma być uniwersalny?
    Oraz dlaczego zapis do klucza CurrentUser działa normalnie na aplikacji 32-bitowej i jest widoczny w rejestrze.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lut 2014, o 20:52 
    Offline
    Nowy
    Avatar użytkownika

    Dołączył(a): 24 lut 2014
    Posty: 16
    Pomógł: 1

    Dlatego pewnie że od Win7 mamy UAC i trzeba niestety pod 64bit pisać z nim w zgodzie, na 32 bitowych systemach niema tego problemu gdyż i ochrony żadnej też niema ani rejestru ani kont.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lut 2014, o 21:53 
    Offline
    Użytkownik

    Dołączył(a): 26 lip 2012
    Posty: 291
    Lokalizacja: okolice Opola
    Pomógł: 20

    Zauważyłem właśnie że klucze pod apką 32-bit dodawały się nie do podanej ścieżki tylko do HKEY_LOCAL_MACHINE\Software\Win6432Node\... więc czy istnieje jakiś sposób aby dodawało do określonej ścieżki, niby można na początku sprawdzać jaki jest system i wchodzić do określonej ścieżki ale to takie "ukraińskie" rozwiązanie.

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lut 2014, o 22:09 
    Offline
    Użytkownik

    Dołączył(a): 04 paź 2011
    Posty: 8615
    Pomógł: 338

    Oczywiście że można , miałem to nawet opisać , ale chwilowo nie mam weny twórczej ... podobno piszę o kant :)

    zainteresuj się tym :

    http://social.msdn.microsoft.com/Forums ... arpgeneral


    można też użyć manifestu by dostać pozwolenie ....
    np dopisując w manifeście linijkę w elemencie <requestedExecutionLevel>

    Składnia: [ Pobierz ] [ Ukryj ]
    język xml
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    ale to tylko połowa sukcesu .... niemniej osadzenie manifestu w pliku exe spowoduje zawsze uruchomienie programu z z uprawnieniami administratora.

    informacje szczegółowe znajdziesz tu: http://msdn.microsoft.com/en-us/library/bb756929.aspx

    pamiętaj że w pliku manifest w tagu : requestedExecutionLevel

    możesz sobie ustawić poziom trzech wartości :

    Składnia: [ Pobierz ] [ Ukryj ]
    język xml
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    poniekąd można tez ręcznie sprawdzać :

    Składnia: [ Pobierz ] [ Ukryj ]
    język csharp
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    temat rzeka ... ale działa na W7 64 i poniekąd na W8

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 28 lut 2014, o 22:58 
    Offline
    Użytkownik

    Dołączył(a): 26 lip 2012
    Posty: 291
    Lokalizacja: okolice Opola
    Pomógł: 20

    O manifeście oczywiście wiem i używam, bez tego przy próbie dostępu wywalało błąd dostępu, chyba, że dałem kod zapisywania klucza do bloku try{}

    Ale to już rozwiązałem, i najbardziej interesuje mnie jak zmusić frameworka do aby nie dodawał kluczy z apki 32-bitowej do Software\Win6432Node tylko do normalnej ścieżki. Może rozwiązaniem byłoby zapożyczenie kilku funkcji od WinAPI, szkoda tylko bo obsługa rejestru w .NET jest po prostu bajeczna :D

    _________________
    sig off ;(



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO