C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■1684  Re[3]: ActiveReportについて
□投稿者/ じゃんぬ -(2005/10/21(Fri) 16:25:11)
>

    分類:[その他の言語] 

    No1682に返信(きりんさんの記事)
    > Excelが出た時点で帳票完成!にしたいのですが、
    > VB側の処理でどうにかなるものですか?
    > 改行文字を消してみたりいろいろしてみたのですが、
    > VBも初心者なので・・・。

    CR でも AR でも、Excel の出力ってそういうもんですよね。
    自分で出しちゃった方が早いと思います。
記事No.1651 のレス /0過去ログ2より / 関連記事表示
削除チェック/

■57528  Re[4]: Win32API SetPrinter 用紙サイズの変更
□投稿者/ ひろし -(2011/03/03(Thu) 11:25:17)
    おはようございます。

    >>以下、ソースになります。
    > VBA からの API 呼び出しと、VB.NET からの API 呼び出しを混同されている印象を受けます。

     サンプルコードから流用していたので...意識していませんでした。
     API の宣言は http://www.codegod.de/WebAppCodeGod/Win32APIViewer.aspx を参考にしていました。

    > > 戻り値しかみていませんでした。早速、試してみたところ両方とも「5」を返していました。
    > 『アクセスが拒否されました。』の意味です。

     同様の事例?がないか調べてみたところ、http://qanda.rakuten.ne.jp/qa5629663.html にありました。
     最初にご指摘いただいた API の宣言のところに問題があるようですね。
     http://hanatyan.sakura.ne.jp/freesoft/win32api.htm を参考に API の宣言を見直ししたところ
     正常動作が確認できました。

    魔界の仮面弁士さんにご指摘いただいた全てを理解できたわけではないので、もう少し自分で調べてから
    解決にしようと思います。お付き合いいただきありがとうございます。

    参考までに後でちょんプロを記載しておきます。とりあえず、自分の環境下では問題なく動作しました。
記事No.57499 のレス /過去ログ96より / 関連記事表示
削除チェック/

■57529  Re[5]: Win32API SetPrinter 用紙サイズの変更
□投稿者/ ひろし -(2011/03/03(Thu) 11:25:52)
     Imports System.Runtime.InteropServices
     
     Public Class Form1
     
      'Public Const DMPAPER_A4 = 9
      Public Const DC_PAPERS As Integer = 2
      Public Const DC_PAPERNAMES As Integer = 16
      Public Const STANDARD_RIGHTS_REQUIRED As Integer = &HF0000
      Public Const PRINTER_ACCESS_ADMINISTER As Integer = &H4
      Public Const PRINTER_ACCESS_USE As Integer = &H8
      Public Const PRINTER_ALL_ACCESS As Integer = (STANDARD_RIGHTS_REQUIRED Or PRINTER_ACCESS_ADMINISTER Or PRINTER_ACCESS_USE)
     
      <DllImport("winspool.drv", CharSet:=CharSet.Auto)> _
      Private Shared Function OpenPrinter( _
      ByVal pPrinterName As String, _
      ByRef hPrinter As IntPtr, _
      ByRef pDefault As PRINTER_DEFAULTS) As Boolean
      End Function
     
      <DllImport("winspool.drv", CharSet:=CharSet.Auto)> _
      Private Shared Function GetPrinter( _
      ByVal hPrinter As IntPtr, _
      ByVal dwLevel As Integer, _
      ByVal pPrinter As IntPtr, _
      ByVal cbBuf As Integer, _
      ByRef pcbNeeded As Integer) As Boolean
      End Function
     
      <DllImport("winspool.drv", CharSet:=CharSet.Auto)> _
      Private Shared Function SetPrinter( _
      ByVal hPrinter As IntPtr, _
      ByVal dwLevel As Integer, _
      ByVal pPrinter As IntPtr, _
      ByVal Command As Integer) As Boolean
      End Function
     
      <DllImport("winspool.drv", CharSet:=CharSet.Auto)> _
      Private Shared Function ClosePrinter( _
      ByVal hPrinter As IntPtr) As Boolean
      End Function
     
      Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" ( _
      ByVal pDevice As String, _
      ByVal pPort As String, _
      ByVal fwCapability As Short, _
      ByVal pOutput() As Short, _
      ByVal pDevMode As IntPtr) As Integer
     
      Declare Function DeviceCapabilities Lib "winspool.drv" Alias "DeviceCapabilitiesA" ( _
      ByVal pDevice As String, _
      ByVal pPort As String, _
      ByVal fwCapability As Short, _
      ByVal pOutput As String, _
      ByVal pDevMode As IntPtr) As Integer
     
      Friend Structure PRINTER_DEFAULTS
      Public pDatatype As IntPtr
      Public pDevMode As IntPtr
      Public DesiredAccess As Integer
      End Structure
     
      <Serializable(), StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
      Friend Structure PRINTER_INFO_2
      Public pServerName As String
      Public pPrinterName As String
      Public pShareName As String
      Public pPortName As String
      Public pDriverName As String
      Public pComment As String
      Public pLocation As String
      Public pDevMode As IntPtr
      Public pSepFile As String
      Public pPrintProcessor As String
      Public pDatatype As String
      Public pParameters As String
      Public pSecurityDescriptor As IntPtr
      Public Attributes As System.UInt32
      Public Priority As System.UInt32
      Public DefaultPriority As System.UInt32
      Public StartTime As System.UInt32
      Public UntilTime As System.UInt32
      Public Status As System.UInt32
      Public cJobs As System.UInt32
      Public AveragePPM As System.UInt32
      End Structure
     
      <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _
      Friend Structure DevMode
      <VBFixedString(32), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=32)> _
      Public dmDeviceName As String
      Public dmSpecVersion As Short
      Public dmDriverVersion As Short
      Public dmSize As Short
      Public dmDriverExtra As Short
      Public dmFields As Integer
      Public dmOrientation As Short
      Public dmPaperSize As Short
      Public dmPaperLength As Short
      Public dmPaperWidth As Short
      Public dmScale As Short
      Public dmCopies As Short
      Public dmDefaultSource As Short
      Public dmPrintQuality As Short
      Public dmColor As Short
      Public dmDuplex As Short
      Public dmYResolution As Short
      Public dmTTOption As Short
      Public dmCollate As Short
      <VBFixedString(32), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=32)> _
      Public dmFormName As String
      Public dmUnusedPadding As Short
      Public dmBitsPerPel As Short
      Public dmPelsWidth As Integer
      Public dmPelsHeight As Integer
      Public dmDisplayFlags As Integer
      Public dmDisplayFrequency As Integer
      End Structure
     
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      Try
      ' バッファサイズを取り出す。
      Dim nameCount As Integer
      nameCount = DeviceCapabilities("TEC B-858-R", String.Empty, DC_PAPERNAMES, vbNullString, IntPtr.Zero)
     
      ' 用紙名を取り出す。
      Dim paperNames As String = New String(" "c, nameCount * 64)
      Dim paperIndex As Integer = 0
      Dim hEncoding As System.Text.Encoding = System.Text.Encoding.GetEncoding("Shift-JIS")
      Dim paperName As String
      DeviceCapabilities("TEC B-858-R", String.Empty, DC_PAPERNAMES, paperNames, IntPtr.Zero)
      For i As Integer = 0 To nameCount - 1
      paperName = hEncoding.GetString(hEncoding.GetBytes(paperNames), i * 64, 64)
      If paperName.Trim.CompareTo("USER") = 0 Then
      paperIndex = i
      Exit For
      End If
      Next
     
      ' バッファサイズを取り出す。
      Dim numberCount As Integer
      numberCount = DeviceCapabilities("TEC B-858-R", String.Empty, DC_PAPERS, 0, IntPtr.Zero)
     
      ' 用紙番号を取り出す。
      Dim paperNumbers(numberCount - 1) As Short
      DeviceCapabilities("TEC B-858-R", String.Empty, DC_PAPERS, paperNumbers, IntPtr.Zero)
     
      ' アクセス権を設定する。
      Dim pDefault As New PRINTER_DEFAULTS
      With pDefault
      .DesiredAccess = PRINTER_ALL_ACCESS
      End With
     
      ' プリンターを開く。
      Dim hPrinter As IntPtr
      Dim returnValue As Boolean
      returnValue = OpenPrinter("TEC B-858-R", _
      hPrinter, pDefault)
      Debug.Print("OpenPrinter:" & returnValue)
     
      ' バッファサイズを取り出す。
      Dim byteNeeded As Integer
      returnValue = GetPrinter(hPrinter, _
      2, IntPtr.Zero, 0, byteNeeded)
     
      ' メモリの割当て。
      Dim pPrinter As IntPtr
      pPrinter = Marshal.AllocHGlobal(byteNeeded)
     
      ' プリンター情報を読み取りする。
      returnValue = GetPrinter(hPrinter, _
      2, pPrinter, byteNeeded, byteNeeded)
      Debug.Print("GetPrinter:" & returnValue)
     
      ' 構造体にメモリのデータをコピーする。
      Dim infoPrinter As PRINTER_INFO_2
      Dim modeDev As DevMode
      infoPrinter = CType(Marshal.PtrToStructure(pPrinter, GetType(PRINTER_INFO_2)), PRINTER_INFO_2)
      modeDev = CType(Marshal.PtrToStructure(infoPrinter.pDevMode, GetType(DevMode)), DevMode)
     
      ' 用紙サイズを変更する。
      modeDev.dmPaperSize = paperNumbers(paperIndex)
     
      ' メモリに構造体のデータをコピー する。
      Marshal.StructureToPtr(modeDev, infoPrinter.pDevMode, True)
      Marshal.StructureToPtr(infoPrinter, pPrinter, True)
     
      ' プリンター情報を書き込みする。
      returnValue = SetPrinter(hPrinter, _
      2, pPrinter, 0)
      Debug.Print("SetPrinter:" & returnValue)
     
      ' プリンターを閉じる。
      returnValue = ClosePrinter(hPrinter)
      Debug.Print("ClosePrinter:" & returnValue)
     
      ' メモリを開放する。
      Marshal.FreeHGlobal(pPrinter)
     
      Exit Sub
      Catch ex As Exception
      Debug.Print(ex.ToString)
      End Try
      End Sub
     End Class
記事No.57499 のレス /過去ログ96より / 関連記事表示
削除チェック/

■91191  Re[5]: Javaスクリプトの実行順序
□投稿者/ 伊達 -(2019/06/05(Wed) 22:10:52)

    >その「「submitが実行し終わる」というのは、ブラウザからサーバーに GET なり POST
    なりの要求が出ることだと理解しています。
    認識あってます。



    >要求が出る前に「画面はクローズされてしまいました」と言ってます?
    仰ったとおりです。

    >どうやって確認したのですか?
    サーバ側の最後にコンソールにログが出るはずです。ログが出ない状態でブラウザがクローズされてしまいました。

    >(スクリプトが間違っていると要求は出ないでしょうが、正しく要求が出るスクリプトが
    書かれているとしての話ですが)
    認識あってます。
    window.close();のコードを削除したら想定通り動いました。
記事No.91159 のレス /過去ログ157より / 関連記事表示
削除チェック/

■91193  Re[6]: Javaスクリプトの実行順序
□投稿者/ WebSurfer -(2019/06/05(Wed) 22:34:47)
    No91191 (伊達 さん) に返信

    > >要求が出る前に「画面はクローズされてしまいました」と言ってます?
    > 仰ったとおりです。
    >
    > >どうやって確認したのですか?
    > サーバ側の最後にコンソールにログが出るはずです。ログが出ない状態でブラウザがクローズされてしまいました。

    そのログって何だか書いてないので分かりませんが、何にせよサーバー側のログの話で
    すよね?

    要求は出たということですのでクライアント側での JavaScript の処理は終わっている
    はず。どうやったのか分かりませんが、そこは確認して間違いないのですよね。

    サーバー側とクライアント側で行われる処理が、質問者さんの頭の中でゴッチャになっ
    ているのでは?

    タイトルの「Javaスクリプトの実行順序」からすると、そもそもがクライアント側だけ
    の話に思えますけど、であれば実行順序はあなたが書いたコードの上から順番では?
記事No.91159 のレス /過去ログ157より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -