doskias
Goto Top

QR-Code Generator: Wie geht es weiter nach Download von Github?

Hallo zusammen,

ich habe bislang nur einige Skripte von Github genutzt, aber noch nie ganze Module. Entweder bin ich einfach Blind, blöd oder ich verstehe es einfach nicht, wie ich jetzt weiter machen muss. Ganz genau geht es um folgendes. Es sollen demnächst einige QR-Codes generiert werden. dazu haben ich folgendes Modul gefunden, welches vielversprechend klingt:

https://github.com/gpduck/QrCodes

Also wollte ich das Modul installieren. Da ich das noch nie gemacht habe, hat es aber etwas gedauert. Aber ich denke, ich habe es am Ende geschafft. Zunächst habe ich mittels https://www.powershellgallery.com/packages/InstallModuleFromGitHub/0.3
Install-Module -Name InstallModuleFromGitHub -RequiredVersion 0.3
das Modul installiert mit dem ich nun von Github installieren kann. Anschließend habe ich mittels
Install-ModuleFromGitHub -GitHubRepo gpduck/QrCodes
das Modul von Github heruntergeladen. Das Ding liegt nun unter C:\Users\Doskias\QrCodes-master. So weit, so gut. Ich kann erkennen, dass es das richtige ist, denn die Dateien stimmen sowohl von Namen, vom Inhalt und auch vom Datum mit github überein. Und wie geht es jetzt weiter? face-smile

Ich hab leider keine Anleitung gefunden, wie ich damit umgehen muss. ich hatte mir erhofft, dass ich einfach den Text eingeben kann und mit weiteren Befehl den Text in den QRCode umwandeln kann. Die readme sagt leider nur

Use Out-BarcodeImage to generate an image file containing a barcode. ConvertTo-QRCode can be used to convert a string to a QRCode and then pipe to Format-QRCode to display the code on screen.

aber sowohl Out-barcodeimage als auch convertTo-qrCode enden mit der Meldung, dass der jeweilige Befehl nicht als Name eines Cmdlet gefunden wurde. Also habe ich gefacht ich müsste mit import-module das Modul erst laden. Aber import-module QrCodes noch import-module qrcodes-master noch mit der Pfadangabe finden ein entsprechendes Modul.

Unter
Get-Module -ListAvailable
finde ich das entsprechende Modul ebenfalls nicht. Also irgendwas muss ich falsch machen, aber was?

Gruß und Dank im Voraus
Doskias

Content-ID: 661689

Url: https://administrator.de/contentid/661689

Ausgedruckt am: 23.11.2024 um 10:11 Uhr

147669
Lösung 147669 11.03.2021 aktualisiert um 16:50:56 Uhr
Goto Top
Das Module musst du wohl erst bauen mit der "build.ps1"
https://github.com/gpduck/QrCodes/blob/master/build.ps1

Ich persönlich nutze stattdessen immer das hier
https://www.nuget.org/packages/QRCoder
bzw.
https://github.com/codebude/QRCoder/

Das besteht aus einer simplen 100kb c# Code DLL die du mit Add-Type laden kannst ...

Einen QR Code kannst du dann damit so bauen
Add-Type -A "D:\QRCoder.dll"  
$text = "https://administrator.de"  
$qrcode = New-Object QRCoder.QRCode ((New-Object QRCoder.QRCodeGenerator).CreateQrCode($text,[QRCoder.QRCodeGenerator+ECCLevel]::M,$true))
$qrimage = $qrcode.GetGraphic(20)
$qrimage.Save("$env:USERPROFILE\Desktop\qrcode.png")  
start "$env:USERPROFILE\Desktop\qrcode.png"  

Gruß SK
Doskias
Doskias 12.03.2021 um 08:18:47 Uhr
Goto Top
Danke für die schnelle Antwort, aber so wirklich komme ich nicht weiter. Auch nach einer Mütze Schlaf sieht es nicht bessert aus face-smile

Habe mir aus dem QrCodes das jetzt mal angesehen
Zitat von @147669:
Das Module musst du wohl erst bauen mit der "build.ps1"
https://github.com/gpduck/QrCodes/blob/master/build.ps1

Build.ps1 kann ich nicht ausführen, da Invoke-Build.ps1 nicht als Name eines cmdlet gefunden wurde.
Führe ich die dort hinterlegte Invoke-Build.ps1 händisch aus, dann bekomme ich die Nachricht "Missing default skript"
Es gibt dann noch eine Module.build.ps1 und eine module.buildsettings.ps1. Dort wird jedoch mit Task etwas aufgerufen und Task wird dann wieder nicht als cmdlet erkannt.

Nagut, hab ich mir gedacht. Ich bin ja flexibel, also schau ich mir deinen QrCoder an. Also los gehts:

Install-ModuleFromGitHub codebude/QRCoder

Und zack liegt der richtige Code auch wieder auf c:\users\Doskias\QrCoder-master. Und auch hier weiß ich dann mal wieder nicht weiter. Get-Module -ListAvailable zeigt erneut den QRCoder nicht an und in dem Verzeichnis selbst ich auch keine QRCoder.dll. Die muss ja irgendwo sein, denn
Add-Type -A "D:\QRCoder.dll"  
kann ich nicht verwenden, da ich kein Laufwerk D:\ habe. Der Pfad muss ja angepasst werden, aber eine QRCoder.dll wird auf keinem meiner Laufwerke gefunden. Also irgendwas muss ich da ja dann falsch gemacht haben. Also habe ich mich auf die Suche begeben und habe dabei rausgefunden, dass
 Install-Module -Name QrCodeSt 
das modul korrekt aus der Powershellgallery installiert und zwar dieses hier https://www.powershellgallery.com/packages/QRCodeSt/1.0.1. Dort steht wiederrum
Copyright
2019 Markus Schanche, MIT License, based on work done by Raffael Herrmann and Dr. Tobias Weltner released under MIT license. Use at own risk. No warranties
und Raffael Herrmann ist der dessen Code du benutzt nämlich https://github.com/codebude/QRCoder/.

Also Lösung:
Install-Module -Name QrCodeSt
und anschließend geht mit
 New-QRCodeSt "www.Administrator.de" -width 20 P:\QR-Test.png  
die Erstellung eines QR-Codes als Einzeiler ohne, dass eine DLL registriert werden muss

Ich habe jetzt eine Lösung, aber mich würde dennoch interessieren was ich tun muss um via Install-ModuleFromGitHub heruntergeladene Module zum laufen zu bekommen.

Danke auf jeden Fall erstmal für deinen Input.

Gruß
Doskias
147669
147669 12.03.2021 aktualisiert um 10:17:34 Uhr
Goto Top
die Erstellung eines QR-Codes als Einzeiler ohne, dass eine DLL registriert werden muss
Das macht das Modul halt im Hintergrund, installieren musst du daher das Modul, kommt also Effektiv auf das Selbe drauf raus, ich liebe es halt portable ohne extra Module installieren zu müssen face-wink. Ich zieh mir die DLLs immer bei Nuget aus dem Package.

via Install-ModuleFromGitHub heruntergeladene Module zum laufen zu bekommen.
Das ist je nach Modul unterschiedlich das entscheidet derjenige der den Code bereitstellt, da gibt es kein allgemeingültiges Rezept. Meistens steht es in den DOCs oder man sieht sich mal selbst kurz im Code um oder geht auf die Webseite des Users.